[Logging] ElasticSearch와 Logstash, Kibana를 사용한 로그 모니터링
·
ElasticSearch
로깅의 필요성그동안 2번의 협업 프로젝트를 진행하면서 프로젝트에 대한 기능을 하나씩 완성해가며 잘 수행되는지 여부를 판단하기 위해서는 상태값과 잘 수행되어 데이터를 받았는지 뿐만 아니라 다양한 부분을 고려해봐야 한다. 내가 프로젝트를 수행하면서 로그로 필요했던 부분은 아래와 같았다.메서드 수행 시간받아오는 데이터와 반환되는 데이터request header, request bodyresponse header, response body, response status code로그 수행 중 변환되는 데이터 값에 대한 추적예외가 발생하는 위치 출력각 레이어 정상 작동 여부로그 수집이 필요한 이유우선 예를 들어 AWS EC2에 접근하여 우리가 저장해둔 로그를 콘솔이나 파일로 들어가서 확인한다고 하자.서버에는 이미 ..
[TIL] MSA 각 서비스 모듈 자원 공유하기, Movie Service 개발
·
TIL
별도의 포스팅 작업 후 내용이 추가될 예정입니다! 오늘 한일Movie Service Server 개발루트 프로젝트에서 서브 모듈 자원 공유 설정Logging 처리 강의 수강작업 내용- Movie Server 개발Movie Server에는 특별한 로직이 없어 QueryDSL을 추가하여 페이징을 통해 영화 목록 리스트 반환기능을 추가하였다.- 현재 프로젝트는 루트 프로젝트내에 멀티 모듈이 있는 상태였으나, QueryDSL 설정 후 모듈간 설정이 꼬여서 결국 레포지터리를 나누고 별도의 서비스로 실행시키고 있다. 문제 해결루트 프로젝트가 서브 모듈을 인식하지 못하는 문제인텔리제이에서 빌드가 제대로 인식되지 못할 때 발생하는 문제 해결내일 할일QueryDSL 강의 수강 및 내용 정리Movie Service Ser..
[MSA - Spring Cloud] Eureka Client 개발하기(feat. FeignClient)
·
Spring/Spring Cloud
이번에는 Service Registry에 등록할 Client 서버를 개발해보려고 한다.User Service에서 회원가입후 로그인 API에 요청을 보내면 비즈니스 로직중 Auth 서비스에 토큰 생성을 요청하는 로직이 수행되어 두 클라이언트 서버간 통신이 이루어지는 작업을 함께 알아보려고 한다. 이때 사용하는 FeignClient에 대해서도 같이 알아보자.우선 프로젝트를 모두 생성하고나서 비즈니스 로직과 함께 FeignClient에 대해 알아보겠다.Dependency 설정dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:..
[MSA - Spring Cloud] Eureka Server 개발하기(feat. Service Discovery란? 서버/클라이언트 사이드 디스커버리 전략)
·
Spring/Spring Cloud
MSA 환경을 구성하는데 있어 가장 먼저 개설하는 서버이다. 내가 사용한 기술은 Netflix가 개발한 Eureka라는 기술이며 서비스를 등록하고 디스커버리 하는 역할을 수행한다.Netflix는 왜 MSA 환경이 필요했을까?Netflix.io GithubNetflix MSA 사례 (출처 삼성SDS)우리는 면접에서 언제든지 왜 MSA를 사용했어요? 왜 자바를 사용했나요? 라는 물음에 대답할 준비를 해야 한다... 남들이 다 하는 기술과 아키텍처이니까요.. 라고 할 순 없기에 모노리딕 서비스 아키텍처와 어떤 차별점이 있는지 어떤 장점이 있어서 대기업들이 넷플릭스 당하다 라는 말을 만들며 MSA 도입에 따라나서게 됐는지 알아보면 좋을 것 같다. 아래 내용은 위 링크에 대한 내용을 정리한 내용이기에 이미 읽고 ..
[MSA] 모노 레포와 멀티 레포 전략
·
Spring/Spring Cloud
MSA 강의를 마치고 실습에 도전하려 하는 순간 바로 장애물이 하나 생겼다.레포지터리를 어떻게 만들어야 하지....? 라는 고민이 생긴것이다. 검색해보니 모노 레포와 멀티 레포라는 두 가지 방식이 존재 했고 이에 대한 내용을 정리해보려고 한다.멀티 리포시스템상 각각의 서비스를 별도의 레포지터리로 만들어서 관리하는 방식이다. 서비스 간 연동이 소스 단위로 구성되지 않고, 별도의 폴더로 구성된다.멀티 리포의 장점모듈화 : 각 저장소가 독립적으로 관리되기 때문에, 프로젝트의 규모가 커지더라도 유지보수성이 향상되고 각각의 리포지터리의 책임관계(오너쉽)가 더 뚜렷하다.더 쉬운 의존성 관리 : 각 저장소마다 별도의 의존성 관리를 하기 때문에 쉽게 관리할 수 있다.원활한 협업 : 각 저장소는 모노레포보다 더 작은 규..
[TIL] MSA Spring Cloud Eureka, Gateway 실습
·
TIL
아직 작업중인 내용이 있어서 이후에 내용이 추가됩니다 :)오늘 한 일실습할 프로젝트 기획모노레포 개설 및 Server, gateway, user(client), auth(client) 애플리케이션 개발Spring Cloud Eureka 실습Spring Cloud Gateway 실습작업 내용실습할 프로젝트 기획나는 MSA 강의를 듣고 직접 부딪혀보며 MSA환경을 구성하면 어떤 문제들이 생기는가 알아보기 위해 미니 프로젝트를 하나 해보기로 했다.강사님은 티켓관련 프로젝트로 아래와 같이 형체를 알아 볼수는 없지만 그래도 나만 알아보면 되는? 아키텍처를 설명해주셨고 나는 이를 기반으로 영화 예매 시스템을 하나 만들어보기로 했다.그렇게 내가 생각한 아키텍처는 아래 사진과 같다.이 아키텍처가 성공적으로 다 개발이 ..