본문 바로가기

프로젝트6

[Project] Resilience4j 로 Circuit Breaker 구현하기 (2) 들어가며 이전 글에서 Circuit break pattern 에 대해서 알아봤습니다. 이번엔 이를 resilience4j를 사용하여 적용하는 과정에 대해서 적어보도록 하겠습니다. Resilience4j이란? Netflix Hystrix 영감을 받아 만들어진 라이브러리로 Hystrix 보다 가볍고 사용하기 쉬운 내결함성 라이브러리입니다. Netflix의 Hystrix을 사용하지 않고 Resilience4j 을 사용하는 이유는 Hystrix는 더이상 개발이 되지 않는 유지보수 상태이며 Resilience4j 보다 많은 외부 종속성을 가지고 있습니다. 그에 비해 Resilience4j 는 외부 종속성이 없고, 자바 함수형 프로그래밍을 위해 설계되었습니다. 따라서 전 외부 의존성이 적고, 현재 Spring-cl.. 2022. 1. 28.
[Project] Circuit Breaker Pattern 에 대해서 알아보자. (1) 들어가며 프로젝트 주문 기능을 구현하면서 카카오 지도 API를 사용하는 방법을 택했습니다. 하지만, 만약 API에서 에러가 난다면? 이라는 질문을 만났습니다. 저는 당당하게 Kakao API (이하 외부 API)에 등록되어 있는 에러 코드별로 예외 처리를 할 것 입니다. 라고 답변을 했습니다. 이에 만약 그 API가 외부 응답 코드조차 보낼 수 없는 장애가 발생했다면? 이라는 질문을 다시 듣게 되었고 이는 Circuit Breaker Pattern을 알아보게 되는 계기가 되었습니다. Circuit Breaker Pattern 이 왜 필요할까? 위에서 언급했듯이 외부 API를 사용할 때 응답이 오지 않는 경우 또는 늦어지는 경우가 발생할 수 있습니다. 응답을 받지 못한 요청들은 응답을 받을 때까지 기다리고.. 2022. 1. 26.
[Project] Gradle Build 시 JaCoCo 연동하기 !!! 구글링을 하기 전에 공식문서를 보고 먼저 적용해보기 🕵🏻‍♂️ https://docs.gradle.org/current/userguide/jacoco_plugin.html#sec:configuring_the_jacoco_plugin https://www.eclemma.org/jacoco/trunk/index.html The JaCoCo Plugin To get started, apply the JaCoCo plugin to the project you want to calculate code coverage for. Example 1. Applying the JaCoCo plugin build.gradle plugins { id 'jacoco' } build.gradle.kts If the Jav.. 2021. 12. 5.
[Project] Github action을 활용하여 PR시 자동 Build 설정하기 (CI설정) Github action을 통해서 깃허브 자체적으로 CI & CD를 진행할 수 있습니다. 오늘은 Gradle CI를 적용하는 방법만 포스팅할 예정입니다. 프로젝트 환경은 Spring-boot Gradle 입니다. Git-Flow로 브랜치 관리를 하는 프로젝트라 develop 브랜치에 pull request 또는 push 시 자동으로 build가 되는 설정을 해보려고 합니다. Github Action을 통해 CI 설정하기 1. 우선 Github Repository에서 action 카테고리로 들어갑니다. 2. 그 뒤 set up a workflow yourself 를 클릭하여 직접적으로 파일을 생성하여 만들수도 있지만, 저는 이미 만들어져 있는 workflow를 사용하였습니다. 3. Continuous in.. 2021. 11. 13.
[Project] Github PR->merge 시 issue 자동 close 방법 프로젝트를 진행하며, 저희는 기능 task를 Github issue로 관리하기로 하였습니다. 개발하고자 하는 기능들을 issue로 등록해놓고 해당 issue 기능 개발을 마치고 develop 브랜치에 merge가 되면 close를 하는 형태로 진행예정입니다. 오늘은 pull request 시에 issue를 연결하고 pull request가 병합될 때 issue를 자동으로 닫을 수 있는 방법에 대해서 알아보겠습니다. Issue 생성하기 Github issue의 생성방법은 아주 간단합니다. Github Repository 에 들어가면 Code 카테고리 옆 Issues 라는 카테고리가 존재합니다. 여기로 들어간 뒤 New issue를 클릭하여 생성하면 됩니다. 이렇게 issue를 생성하고 나면 아래의 사진과 .. 2021. 11. 13.
[Project] Git-flow master 및 develop branch 설정 프로젝트를 진행하며, 팀원과 브랜치 관리를 위해 Git-Flow 전략을 사용하기로 결정하였습니다. Git-Flow 전략에 대해 간략하게 설명하고 넘어가자면, Git-Flow는 5가지의 브랜치를 이용하여 운영하는 브랜치 전략입니다. 이는 항상 유지되는 메인브랜치(master, develop) 브랜치와 일정 기간동안 유지되는 보조 브랜치( feature, release, hotfix )로 구성되어 있습니다. 메인브랜치 master : 제품으로 출시될 수 있는 브랜치 develop : 다음 출시 버전을 개발하는 브랜치 보조브랜치 : merge가 되면 사라지는 브랜치 feature : 기능을 개발하는 브랜치 release : 이번 출시 버전을 준비하는 브랜치 hotfix : 출시 버전에서 발생한 버그를 수정하는.. 2021. 11. 13.