분류 전체보기
Resilience4j, Spring Boot 설정 공부
Core modules Resilience4j는 5개의 Core modules을 제공합니다. CircuitBreaker CircuitBreaker 패턴을 구현한 모듈입니다. 호출의 결과를 저장하고 집계(Aggregate)하기 위한 슬라이딩 윈도를 사용합니다. 요청 실패율(Failure rate)이 몇 퍼센트 이상일 때 서킷의 상태가 CLOSED에서 OPEN으로 바뀔지 그리고 요청 중 지연된 응답(Slow calls)이 몇 퍼센트 이상일 때 서킷의 상태가 CLOSED에서 OPEN으로 바뀔지 설정할 수 있습니다. 슬라이딩 윈도우 크기가 15인 경우에도. 슬라이딩 윈도우가 15개의 요청만 동시에 실행할 수 있다는 것을 의미하지는 않습니다. 동시 스레드 수를 제한하려면 벌크헤드를 사용해야한다.(아래에서 다룸) ..
프로그래머스 - 거리두기 확인하기 문제(자바)
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr BFS를 이용하여 풀면되는 문제로 사람 위치의 기준 상하좌우의 맨해튼 거리는 1 사람으로 ..
스프링 멀티모듈 나누기 개념 및 실습(메이븐, 그래들)
네이버 웹툰 인턴십 과제를 진행하다가 서비스가 커지면서 기존 프로젝트를 멀티모듈로 나눠서 개발하게 되었는데 개인적으로 서버 통신 관련해서 튜토리얼 당시 그래들을 통해서 간단한 멀티 모듈을 진행하였었는데 인턴 과정에서는 메이븐을 통해서 진행하게 되어 개념을 정리하고 그래들, 메이븐 실습을 진행하겠습니다. 메이븐 프로젝트 코드 주소 : https://github.com/whdals7337/maven-multi-module 그래들 프로젝트 코드 주소 : https://github.com/whdals7337/gradle-multi-module 멀티모듈이란? 멀티 모듈이란 개념은 한 프로젝트 안에 라이브러리처럼 사용 가능한 상태로 모듈들을 구성하고 그것들을 다른 모듈에서 가져다 쓸 수 있도록 만드는 것이라고 이해..
상속(Inheritance)과 위임(Delegation) 방식
상속 - 두 클래스 사이의 관계가 'IS-A' 관계일 때 사용 위임 - 스프링 부트 프로젝트 개발을 진행해 보았다면 아래와 같은 형태를 많이 사용했을탠대 위와 같은 코드가 위임으로 Skill에 대한 처리는 SkillService에 위임하여 처리한다고 보면 된다. 무엇을 사용해야할까? 상속의 경우 부모 클래스와 자식 클래스 사이에 강한 연관 관계가 생겨 부모 클래스 동작이 변경되면 자식 클래스의 동작도 모두 영향을 받게 된다. 이러한 관계는 'IS-A'의 관계의 경우 자연스러운 편이지만 이 외에는 불필요한 종속성이 생기게 된다. 또한 'IS-A' 관계이더라도 사용성에 따라서 위임을 선택하는 것이 더 좋은 방법인 경우도 있다. 이 때문에 무분별한 상속을 사용하는 것은 올바르지 않으면 굉장히 제한적으로 사용해..
AWS 프리티어 만료에 따른 자기소개 페이지 서비스 종료
기존에 Route 53을 사용하면서 매달 600원 수준을 지불했는데 8월 이후로 프리티어가 만료되어서 사용하는 EC2, CloudFront ,S3 , RDS 등에 대한 비용 청구될게 뻔해서 8월 5일 부로 AWS 프리티어가 만료되어 사용하던 리소스, 인스턴스를 모두 삭제하였습니다.
git lfs란
git 에서 크기가 큰 파일을 다루기 위해서 github에서 만든 오픈 소스 github에서는 50MB 이상의 파일을 올리려고 하면 경고를 띄우고, 100MB 이상의 파일은 업로드가 불가능합니다. 이를 해결하기 위해서 lfs를 사용해야합니다. lfs는 용량이 큰 파일을 외부 스토리지에 올리고 리포지토리에서는 포인터로 관리 합니다. 사용 방법 사용 방법은 맥북을 기준으로 설명하겠습니다. 1. Homebrew를 통한 git-lfs 설치 brew install git-lfs 혹시 brew가 안 되시는 경우 https://brew.sh/ 사진으 코드 부분을 복사하셔서 Homebrew를 설치 해주세요. 2. 깃 리포지터리에 lfs를 적용 - 리포지토리 아닌 곳에서 명령를 치면 오류남 git lfs install ..
16. SonarLint (코드분석도구) 적용하기
SonarLint SonarLint 코드를 작성할 때 품질 문제를 감지하고 수정하는 데 도움이되는 IDE 확장입니다. 맞춤법 검사기처럼 SonarLint 코드를 커밋하기 전에 수정할 수 있도록 결함을 표시합니다. 인텔리제이 플러그인에서 SonarLint를 다운 받아주고 인텔리제이 restart를 하면 적용됩니다. 인텔리제이 하단에 보면 다음과 같은 탭을 확인하실 수 있습니다. 사용법은 간단합니다. 원하는 파일을 열고 SonarLint 탭을 열고 왼쪽 위에 초록색 화살표를 클릭해주면 해당 파일을 확인해 줍니다. 저의 경우 ".com/" 이라는 문자열이 4번 반복 사용되었다고 알려주네요. 그리고 오른쪽을 보면 아래처럼 문제가 되는 부분을 어떻게 고쳐야하는지도 알려줍니다. ㅎ 수정해야할 부분이 없다면 아래처럼..
코드 리뷰 조금 이해하기
이글은 카카오스토리 팀의 코드 리뷰 도입 사례 – 코드 리뷰, 어디까지 해봤니? 라는 글을 읽고 제 맘대로 정리한 글입니다.ㅎ 제가 경혐한 코드 리뷰는 학생 연구원 당시 코드를 짜고서 부족하다고 느낄 때 사수에게 도움을 요청, 코드에 대한 여러 수정 사항을 말해주시면 그에 대한 의견을 나누고 고치는 것이 최대 였다. 팀은 문화로 코드 리뷰를 하지않았고 사실 서로간의 의견을 나누기보다 아 그렇군아 하면서 바꾸는 수준이었다. 그래서 그런지 코드리뷰라는 문화에 대한 환상이 있는 것 같다. 코드 리뷰 방식과 주의점 등을 정리해볼려고 한다. 리뷰 없이는 머지되지 않도록 제한 master, develop 브랜치로는 바로 푸시하지 못하도록 push 깃훅 추가 프로젝트를 클론할 때, 깃훅을 반드시 설치하도록 강제함 컨..