Go 백엔드 서비스를 만들때의 기본이 되는 부분을 하나씩 만들어본다. 완성된 전체를 보여주는 것이 아닌 만들어가는 과정을 따라가 보는 것을 목표로 한다.
- 각 단계는 별도의 브랜치를 딴다.
- 다음 단계에서는 기능들을 하니씩 추가한다.
기초적인 클린 아키텍처 구조의 백엔드 서버를 만들어본다.
- 브랜치: 1_clean-architecture-basic
- 블로그 포스팅: https://jusths.tistory.com/442
환경설정을 위한 설정 파일, 그리고 PostgreSQL을 사용하여 개선한다.
- 브랜치: 2_config-and-db
- 블로그 포스팅:
- docker compose 사용법
- 로컬 PC에서 PostgreSQL을 사용하기 위해 docker compose를 사용한다.
- Docker Desktop이 아닌 OrbStack을 사용하였다(관련 블로그 링크).
$ docker-compose up -d $ docker-compose down
Mockery를 사용하여 Mock을 만들어 테스트에 사용한다.
- 브랜치: 3_unit-test
- 블로그 포스팅:- https://jusths.tistory.com/445
- Mockery로 Mock 생성하기
$ mockery
- Makefile을 사용하여 테스트 실행
$ make test # mockery 부터 실행하고 test를 실행한다.
- pre-commit을 사용하여 커밋 전에 테스트
make test를 실행하도록 설정- test를 실행하고 성공하면 커밋을 진행한다.
fx 라이브러리를 사용하여 의존성 주입을 구현한다.
- 브랜치: 4_fx-begin, 4_fx-end
- 블로그 포스팅:- https://jusths.tistory.com/446
다양한 미들웨어를 적용해본다.
- 브랜치: 5_middleware
- 블로그 포스팅:- https://jusths.tistory.com/447
RequestID, Logging 미들웨어를 고도화하여 요청에 대한 로깅을 강화한다.
- 브랜치: 6_logging
- 블로그 포스팅:- https://jusths.tistory.com/448
JWT를 사용하여 인증과 인가를 구현한다.
- 브랜치: 7_authentication
- 블로그 포스팅:
go-playground/validator를 사용하여 유효성 검사를 구현한다.
- 브랜치: 8_validation
- 블로그 포스팅: https://jusths.tistory.com/457