24.08.06 ~ ing
- Java 21 (LTS)
- Spring
- Spring boot 3.3.2
- Spring Data JPA 3.3.2
- Spring AI 1.0.0 M2
- Spring REST Docs 3.0.1
- Querydsl 5.1.0
- Jasypt 3.0.5
- JJWT 0.12.6
- Database
- Redis (Spring Data Redis 3.3.2)
- MySQL 8.3.0
- Flyway-MySQL 10.8.1
- Test
- H2 2.2.224
- Mockito 5.11.0
- RestAssured 5.5.0
- 로컬 MySQL에서
eattofit
데이터베이스를 생성해둡니다. (url을 다르게 하실 거라면 데이터베이스를 다르게 생성하셔도 됩니다.) - jasypt 환경 변수를 관리자에게 전달받습니다.
- 인텔리제이의 환경 변수 안에 1번의 값을
ENCRYPT_KEY={VALUE}
형태로 넣습니다. - 서버를 실행한 뒤, 아래 링크를 통해 OAuth 코드를 얻습니다.
- OAuth 코드 및 provider를 선택하여
/api/auth/login
에 아래처럼 request body를 요청하여 액세스 토큰 및 리프레시 토큰을 획득하고, 해당 토큰을 Bearer 방식으로 보내 다른 API들을 이용합니다.
{
"provider" : "kakao", // kakao | google
"code": "3번 과정을 거쳐 얻은 OAuth 기관의 코드"
}
개인 블로그에 프로젝트 소개 및 기술적 고민 과정을 담았습니다.
- 프로젝트 아이디어 소개
- API 설계 과정에서의 고민 (1)
- 사진 업로드 방식을 PresignedURL로 한 이유
- 이미지 분석 과정을 POST 대신 GET으로 한 이유
- 커서 페이지네이션을 선택한 이유
- 삭제 방식을 Soft delete로 한 이유
- API 설계 과정에서의 고민 (2)
- DELETE 시 200 OK와 204 No Content의 사용 시점 고민
- PresignedURL 획득 API를 통일한 이유
- ChatGPT에게 전달할 쿼리 파라미터 값 선택 과정
- id 반환 방식과 response body 반환 방식 선택의 확실한 기준
- DB 설계 과정에서의 고민
- MySQL의 CHAR와 VARCHAR 사용 시점에 대한 고민
- MySQL의 정수형 타입을 각각 언제 사용할지에 대한 고민
- ENUM의 단점 고민
- [Spring AI 🤖] 이미지를 분석하고 JSON 포맷팅을 해보자! (feat. EatToFit)
- BeanOutputConverter 클래스 소개 및 사용법 작성
- Spring AI 이미지 (url) 분석 요청 방법 작성
- [Spring & Github] Pull Request를 할 때 마다 테스트 커버리지를 확인하자 (feat. Jacoco)
- Jacoco 학습
- 프로젝트에 적용하며 마주친 트러블슈팅 (버전 이슈, 커버리지의 정확도 부족) 기록
- [EatToFit] 매개변수가 매우 많을 때에는 도메인 생성 로직을 어떻게 작성해야 할까? (feat. 빌더 패턴, DDD)
- Food 도메인 생성 시 많은 매개변수로 인한 문제 상황 개선
- 매개변수가 많은 도메인을 생성할 시에 대한 본인만의 기준 확립