본문 바로가기

정리

MicroService 정리 MicroService는 애플리케이션을 느슨한게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법이다. 애플리케이션을 더 조그마한 여러 서비스로 분해할 때의 장점 모듈성을 개선할 수 있다. 애플리케이션의 이해, 개발, 테스트를 더 쉽게 할 수 있다. 애플리케이션의 침식에 더 탄력적으로 만들어 준다. MicroService의 특징 빠르게 개발해 지속적으로 배포할 수 있다. 수동 혹은 자동으로 쉽게 스케일링 할 수 있다. 명확한 인터페이스를 통해서만 통신한다. 개별적인 런타임 프로세스로 배포할 수 있다. 성능(대기 시간)이나 데이터 일관성을 저해하지 않을 정도의 규모를 가진다. Spring Cloud를 사용한 MicroService Architecture.. 더보기
[소프트웨어 분석] Sonarqube 정적 분석 VS 동적 분석 구분 정적 분석 동적 분석 분석 대상 소스 코드 또는 컴파일된 바이너리 프로그램 실행 환경 테스트 범위 소스 코드의 모든 부분 실행 가능한 경로 활용 코드 상의 문제나 실수를 찾기 테스트, 모니터링 정적 분석은 주로 개발 단계에서 코드의 구조적 문제를 파악할 때 사용한다. 동적 분석은 주로 테스트나 모니터링에 사용한다. Sonarqube 정적 분석을 도와주는 대표적인 도구 프로젝트 코드 품질 측정 프로젝트 코드의 품질 정보 측정 빌드 및 통합 후 품질 변화 측정 폴리그랏 언어별 Rule 지원 Java, GO 언어 등 언어별 Rule 지원 Jacoco 등 분석 플러그인 지원 Quality Profiles 관리 분석 Ruleset 정의 및 적용 Ruleset 기반 Profile 구.. 더보기
Multi Module 레고를 조립하듯 필요한 Module을 조립할 수 있다. N개의 Module이 조립되어 있는 프로젝트를 Multi Module 프로젝트라고 부른다. Multi Module 프로젝트 구조를 사용하는 이유 A 서버와 B 서버에서 동일한 DB Entity가 필요할 경우 중복된 Entity를 Module화 시켜 사용하기 위해 Multi Module 프로젝트를 사용한다. * 만일 각 서버마다 Entity를 생성해서 관리한다면, 변경 사항 발생 시 각 서버마다 해당 Entity를 수정해야 하기 때문에 리스크가 늘어난다. Multi Module 구조에서 원하는 Module만 골라서 빌드&배포가 가능하다. 실습 1. Root Project를 생성한다. Root Project를 생성하고 필요 없는 폴더와 파일을 삭제한다... 더보기
OpenGraph OpenGraph https://ogp.me OpenGraph로 작성된 메타데이터가 각종 벤더사이트에서 어떻게 표현되는지 미리볼수있는 도구 페이스북에서 웹페이지 정보를 요약해서 보여주기 위해서 만든 프로토콜 해당 페이지를 표시할 때, 오픈 그래프의 정보를 이용해서 보여줄 수 있다. Html meta tag의 property 이름에 og: 로 시작하는 형태로 정보를 저장한다. OpenGraph가 없을 시 아무 내용도 보여주지 않는다. 더보기
Android Studio 없이 Emulator 실행하기 1. Android Studio를 설치한다. https://developer.android.com/studio Download Android Studio & App Tools - Android Developers Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today. developer.android.com 2. Emulator를 설치한다. More Actions를 클릭한 후, Virtual Device Manager를 선택한다. Create device를 클릭한다. Emulator의 크기를 설정한 뒤, .. 더보기
유용한 도구 모음 (1) Spring Cloud Sleuth + Zipkin MSA 환경에서 주문 서비스, 수량 관리 서비스, 결제 서비스 등... 여러 서비스간의 통신으로 하나의 기능을 제공할 때, 오류가 발생하거나 느려진다면 어느 서비스의 문제인지 빠르게 찾기 위해서 사용한다. -> 트래픽 추적 Sleuth 마이크로 서비스간의 트래픽 흐름을 추적할 수있도록 Trace 기록을 로그에 자동으로 삽입하는 기능을 제공한다. 프로젝트에 Sleuth를 적용한 후, Logback 및 Slf4j 등을 사용하여 로깅하면 자동으로 로그에 Service 명, Trace ID, 트래픽 고유 ID가 삽입된다. 추적을 위한 연관된 ID를 생성한다. Spring에서 제공하는 Zipkin Client Library이다. Zipkin Zipkin Clie.. 더보기
[Naver] Cloud Outbound Mailer 인턴십 기업에서 SMTP 메일 전송 서비스를 Naver Outbound mailer 메일 전송 서비스로 바꾸게 되었다... 이에 Naver Outbound Mailer가 무엇이고, 어떻게 사용하는지, 간단한 예제로 SpringBoot 프로젝트 적용해보고자 한다. Cloud Outbound Mailer 개인화 콘텐츠 메일을 빠르고 안정적으로 전송할 수 있는 서비스로 알림, 정보, 마케팅 대량 메일을 UI를 통해서 쉽게 전송하거나 운영하고 있는 서비스에 연결해 전송할 수 있도록 도와주는 서비스이다. 제공 기능 대용량 및 예약 메일 전송 기능 수신자 그룹관리 및 조합 발송 기능 콘텐츠 개인화 메일 전송 기능 실시간 통계 조회 Open API - 메일 발송, 발송 결과 조회 HTTP Open API를 통해서 메.. 더보기
[IntelliJ] 클래스 생성 시 자동 주석 설정 MAC OS 기준 IntelliJ -> cmd + , -> File And Code Templates 검색 Includes 클릭 -> File Header 클릭 주석 작성 클래스 생성 더보기