Kong API Gateway 설치하기
개요 여러 API 서버들이 존재할 때 이를 편하게 관리하기 위해서는 여러대의 Nginx 같은 reverse proxy를 두는거 보다 하나의 API Gateway로 들어오는 모든 Client 요청들을 관리하는게 편하다. 특히 MSA 같은 환경을 구성할때 API Gateway는 필수 요소다. Kong, KrakenD, SCG 등 여러 API Gatew...
개요 여러 API 서버들이 존재할 때 이를 편하게 관리하기 위해서는 여러대의 Nginx 같은 reverse proxy를 두는거 보다 하나의 API Gateway로 들어오는 모든 Client 요청들을 관리하는게 편하다. 특히 MSA 같은 환경을 구성할때 API Gateway는 필수 요소다. Kong, KrakenD, SCG 등 여러 API Gatew...
개요 암호화 종류는 크게 단방향과 양방향으로 나뉜다. 양방향은 암호화 한 다음 다시 평문으로 복구가 가능한 암호화 방식이고, 단방향은 암호화 한 뒤 다음 다시 평문으로 복구가 불가능하다. 그래서 ISMS 같은 보안 인증을 받을때 비밀번호와 같은 민감한 개인정보는 무조건 단방향 암호화 대상이다. 그럼 이제 무중단 서비스에서 SHA256으로 데이터...
개요 회사에서 ISMS 심사를 받기로해 deprecated 된 버전들은 반드시 버전업을 해야 된다고 전해 받아 Spring Boot 2는 Spring 3으로 버전 업을 하게 됐다. 물론 Spring Boot 2에서 사용되는 Java 11은 당장은 여유가 있지만 이번에 많은 프로젝트들을 버전업 시키면서 겸사겸사 하기로 결정됐다. Java 11 ➡️...
2023년 한 해는 백엔드 개발자로서 취업을 목표란 한 해였습니다. 여러 시행착오를 겪은 끝에 현재는 트립비토즈라는 회사에 백엔드 개발자로 합류하게 되었습니다. 취업 활동 💼 대학을 다니며 누구나 그렇겠지만, 인생 첫 취업이었기 때문에 많은 어려움이 있었습니다. 졸업 전에는 꾸준히 하지 않았던 알고리즘 테스트만 열심히 하면 순조롭게 취업을...
최근 사이드 프로젝트 ‘가보자IT’을 전체 리펙토링 하면서 N+1과 같은 문제를 전부 해결했습니다. 대부분 Querydsl IN 절을 통해서 해결했습니다. 하지만 성능 테스트를 하다가 다시 한번 N+1 문제가 일어나는 것을 목격했습니다. 개요 OneToOne 관계 프로젝트에서 하나의 이메일당 한개의 계정을 생성할 수 있는 요구사항이 있습...
Spring에서 Querydsl로 동적 커서 기반 페이지네이션 쿼리를 구성하는 방법에 대해 알아보겠습니다. 개요 동적 쿼리란? 동적 쿼리는 상황에 알맞는 쿼리문을 생성해서 데이터베이스에 날려주는것 입니다. 예시 1 users 테이블에서 커서 기반 페이지네이션으로 회원을 조회하고 싶으면 다음과 같이 코드를 구현해야 됩니다. JpaRep...
프로젝트에서 발생한 N+1 문제를 해결해 보겠습니다. 제가 진행한 프로젝트는 사이드 프로젝트를 함께할 팀원이나 팀을 찾을 수 있는 서비스입니다. 개요 N+1이란? 연관 관계가 있는 entity A 하나를 조회하고, 그 관계를 통해서 entity B를 조회할 때 query가 entity A의 개수만큼 일어나는 현상을 N +1이라고 합니다. ...
대부분의 서비스에서는 아이디 또는 이메일 중복을 검증합니다. 그래서 이번에 중복 검증을 위한 query 개선을 해봤습니다. 개요 Email을 가지고 있는 Contact라는 entity에서 이메일 중복 검사를 수행하기 위해 query를 하는 상황입니다. 테스트를 위해 50,000개의 데이터 tester1@nogamsung.com 부터 test...