개요 Jenkins는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴로 CI (Continuous Integration) 툴이라고 불린다. 빌드 자동화, 테스트 자동화, 코드 품질 분석, 배포 자동화 등의 기능을 제공하며, 이를 통해 소프트웨어 개발 및 배포를 자동화하여 생산성을 높일 수 있다. jenkins는 다양한 플러그인을 지원하며 다양한 어플리케이션과 연동이 가능하며 대부분의 운영체제와 다양한 클라우드 서비스에도 제공되고 있다. 설치 방법 jenkins는 https://get.jenkins.io/war-stable/ 에서 다양한 버전을 받을 수 있다. java 버전에 따라 jenkins버전 확인이 필요하다.! jenkins version 1.612
api와 api 사이에 http 통신을 할때 지금 회사에서는 httpClient를 만들어서 httpGet이나 httpPost객체를 만들어 execute하는 방식이었다. 그리고 통신 후 받는 model(Vo)들은 전부 Map으로 받아 Map으로 처리하는 형태 이다. swagger와 spring validation을 점점 사용하는 형태로 가면서 Map이 아닌 model(Vo)를 만들어서 사용하기 시작하였다. 그래서 제너릭을 이용하여 model(Vo)를 바로 통신 할수 있는 httpconnection을 만들어 보고있었는데 Spring에서 RestTemplate을 사용하면 HTTP 요청 및 응답 데이터를 쉽게 처리할 수 있다는 설명을 보고 RestTenplate를 사용하여 만들기로 했다...! 개요 HttpCo..
전 프로젝트를 할 때 우리가 맡은 부분은 화면단이 었다. 안정화 기간에 오류가 나는것을 수정할려고 찾아보면 api단에 데이터를 정확하게 안준다는것었다... 확인결과 우리쪽에서 api로 던질때 Validation 체크가 정확하게 되어 있지 않아 빈값이나 이상한값이 넘어 갔는데 api에서 그걸 그대로 받아서 저장한것이다.... 그러면서 나는 오류가 정말 많았다.. 이 사태로 느낀점은 Validation는 화면단도 확인하고 뒷단도 무조건 확인해야한다는것을....,,, 해서 spring Validation에 대해서 알아본다. 개요 Spring Validation은 Spring Framework에서 유효성 검사 기능다. Spring Validation을 사용하면 데이터가 정확한지 검증하고 이로 인해 예상치 못한 ..
Annotation 설명 Target은 해당 annotation을 사용할 수 있는 곳이다. CONSTRUCTOR = 생성자 FIELD = 필드 선언 LOCAL_VARIABLE = 로컬 변수 METHOD = 메서드 PARAMETER = 파라미터 PACKAGE = 패키지 TYPE = 클래스, 인터페이스 1. @Tag • swagger-ui에서 탭 설정을 하는 annotation이다. • Target : METHOD, TYPE • Parameter - name : 탭의 이름을 설정한다. 같은 이름을 가지고 있는 Tag들이 한 탭에 묶여서 나온다. - description : 해당 탭에 대한 설명 java) @Slf4j @RestController @RequestMapping("/path1") public cl..
Swagger, Springdoc api개발을 위해 Swagger를 사용했다... 옛날 버전의 swagger와 springfox를 이용했는데 이번에 전부 최신버전으로 업 하자는 말이 나와서 찾아보니 최근에는 springfox 말고 springdoc를 사용한다는 것을 알았다. 해서 해당 설정을 해볼 것이다.! 설명 RESTful API의 개발과 문서화를 도와주는 프레임워다. Swagger는 API를 작성하는 데 사용되는 다양한 언어와 프레임워크에 대한 지원을 제공하며, API의 문서화를 자동화하여 개발자와 사용자 간의 협업을 용이하게 한다. 둘은 같은 웹 인터페이스(Swagger UI)를 제공하고 Springdoc은 Spring framework에서 사용하기 쉽도록 만들어진 라이브러리이다. 구현 1. po..
구성도 두 개의 서비스에 해당 traceId가 동일하게 되어있는지 확인할 것이다. 앞서 만든 restTemplate를 이용하여 springboot01에서 springboot02를 호출한다. 1. zipkin화면 springboot01,springboot02가 찍히는 것을 볼 수 있다. 2. garafana 왼쪽 사이드 Explore메뉴로 들어 Loki를 선택하고 위에 zipkin에서 TraceID를 복사하여서 검색을 하면 springboot01과 springboot02의 로그가 같이 나오는 것이 보인다....! logtracing이 잘되었으니 이제 이중화된 서버나 api가 서로를 호출하는 경우에 로그 확인이 더 편해질 것 같다.
5. springboot 새로만들기 귀찮다면 내가 올린 테스트 사용~! https://github.com/victory940209/testspringboot/tree/main/testSpringboot GitHub - victory940209/testspringboot Contribute to victory940209/testspringboot development by creating an account on GitHub. github.com 1. pom.xml 설정 org.springframework.boot spring-boot-starter-parent 2.7.8 ... 11 3.1.5 ... org.springframework.cloud spring-cloud-starter-sleuth ${sp..
3.promtail Promtail은 Grafana에서 개발한 로그 수집기로, Loki라는 분산 로깅 시스템과 함께 사용되어 로그 데이터를 수집하고 검색할 수 있다. 컴퓨터의 로그 파일을 실시간으로 읽어들여 Loki에 전송한다. 이를 통해, 사용자는 컴퓨터 시스템에서 발생하는 다양한 로그 데이터를 중앙 집중적으로 수집하고 검색할 수 있다. 또한 로그 파일의 경로나 이름을 패턴화하여 자동으로 수집하거나, 특정 키워드를 필터링하여 로그 데이터를 제외시키는 등 로그 데이터를 JSON 형식으로 파싱하여 Loki에서 쿼리 작성을 용이하게 한다. ELK에서 logstash와 같은 역할 설치과정 1. 정식 github 에서 https://github.com/grafana/loki/releases 운영체제에 맞는 패키..