동시성 문제, 분산 락, Distributed Lock
낙관적락, 동시성 문제, Optimistic Lock
서비스간 강결합 문제 해결, ApplicationEventPublisher
Cursor based Pagination, 커서 기반 페이징, 무한스크롤
토큰 기반 인증 방식으로 소셜 로그인 및 회원가입 기능을 구현했다.그런데 구현하고 보니, 토큰을 세션에 저장하고 세션에서 해당 토큰을 꺼내서현재 로그인한 사용자를 가져오도록 구현을 했다.세션 기반 인증방식의 문제점을 해결하기 위해 토큰 기반 인증방식이 등장했는데, 두
== 연산자를 이용한 방법과, Objects.isNull() 을 이용한 방법 두 가지를 혼용해서 사용하고 있었다.둘이 어떤 차이가 있고 어떤 방법이 베스트 프랙티스일지 생각해보자.String은 아래에서 따로 정리한다.설명할게 없다. 해당 객체가 null인지 판단한다.내
CI/CD 구축을 정상적으로 마치고, 며칠동안 리팩토링 후 배포를 시도했는데아래와 같이 Jenkins에서 에러가 났다.git 저장소에 있는 코드를 fetch 해오지 못한다.Caused by: hudson.plugins.git.GitException: Command "g
URL에 /github-webhook/ 부분을 빼먹으면 안된다. 슬래쉬 하나라도 빠지면 오류난다.deploy → 구성 → 소스코드관리 → Git 선택 후 저장소 추가 deploy → 구성 → 빌드 유발 → GitHub hook ~ 체크 빌드 후 조치에
AWS Marketplace 탭에서 검색해야 검색된다.Centos 7 이미지를 선택하자.새 키 페어를 생성후 다운받고 잘 보관하자.다운받은 .pem 파일을 이용해 .ppk파일을 만들어야 한다.putty key henerator 툴을 이용했다.(Mobaxterm
deploy.yaml 빌드 후 Docker image를 생성해서 지정된 Docker Hub 저장소에 이미지를 push 하도록스크립트에 추가했다. 이를 위해서 필요한 작업들이 있다.저장소는 디폴트가 퍼블릭Collaborators 탭에서 사용자 추가해줘야, 다른 사용자도
프로퍼티 파일에 노출되는 중요 정보들을 암호화 해주는 라이브러리예로 프로퍼티 파일에서 DB password 라던지 aws의 secret-key 등을 암호화 하는데 사용한다.build.gradle프로젝트 내부에 자바파일에다가 비밀번호를 하드코딩하게되면 암호화 한 값들이
여기서 포트를 두 개 열었는데5672 포트는 RabbitMQ와 통신하기 위한 포트이고,15672 포트는 모니터링 툴을 사용하기 위한 포트이다.로컬에 해당 이미지가 없어도 Docker hub에서 알아서 가져와 컨테이너를 만들어준다.15672 포트로 접근하여 usernam
해당 내용은 Class101의 현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무! 강의를 기반으로 작성했습니다.Message Queue를 이해하기 위해서는 우선 톰캣이 요청을 어떻게 처리하는지 알아야한다.요청이 들어오면 톰캣 내에 있는 큐에 들어가게 되고, 먼
해당 내용은 Class101의 현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무! 강의를 기반으로 작성했습니다.io bound 애플리케이션에 페이징, 검색 기능 개발commit - push - PR - Mrege 과정 이해새 기능을 개발하는 과정이다. sour
해당 내용은 Class101의 현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무! 강의를 기반으로 작성했습니다.DB를 이용한 한줄 게시판 애플리케이션 포크 후 코드 이해Postman을 이용해 API 테스트GCP 인스턴스에 애플리케이션 배포저장소를 포크하고 프로
해당 내용은 Class101의 현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무! 강의를 기반으로 작성했습니다.CPU bound 애플리케이션과 I/O bound 애플리케이션의 차이에 대해 이해하기I/O의 종류별로 서버를 늘려 애플리케이션의 성능을 올릴 수 있는
해당 내용은 Class101의 현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무! 강의를 기반으로 작성했습니다.Docker와 컨테이너에 대한 개념이 없다면 이전 글을 참고하자.젠킨스를 통해 여러 컨테이너들을 다루는데 빌드, 배포에 필요한 모든 명령어를각 컨테이