-
Notifications
You must be signed in to change notification settings - Fork 24
2021 07 29 회의록
Jinhong edited this page Aug 16, 2021
·
2 revisions
-
prod (파일) (check)
- 프로덕션 코드(INFO)
- Spring INFO
- DDL Log (미연의 사태 방지를 위해)
-
local (파일) (check)
-
프로덕션 코드(INFO)
-
DB(Hibernate 설정에 맞춰서 레벨 설정해야할듯)
- DDL log
- Basic Binder, Basic Extractor 로그
- SQL 쿼리 로그
-
Spring INFO
-
-
test (콘솔)(check)
- 프로덕션 코드(Trace)
- DB(Hibernate 설정에 맞춰서 레벨 설정해야할듯)
- 파라미터 Binding 값이 뭐가 들어가는지 (BasicBinder)
- SELECT 해서 나온 파라미터 결과값 구체적으로 어떤게 바인딩되는지 보여주는거 (BasicExtractor)
- 그 외 나머지는 hibernate yml 옵션 지정을 통해 콘솔 출력되므로 불필요할듯.
-
전체
- logback-access api 로그 추가
-
max history는 명시적으로 30일 잡아두기 (check)
-
불필요한 내용 : PID, Logger 이름 (check)
-
외부 패키지들 로거랑 중복으로 찍히는 부분 additivity=false로 부모 로거 사용안함. (check)
-
참고 자료
-
레벨 : Trace, Debug, Info, Warn, Error 각각의 의미를 이해하고 정하자
-
우리 프로젝트에서 어디에서, 어떤 로그를 남길 것인가?
-
GlobalExceptionHandler(check)
- MethodArgumentNotValidException
- WARN
- 예외 클래스명 & Error Message
- ApplicationException
- WARN
- 예외 클래스명 & Error Code & Error Message
- DataAccessException
- ERROR
- 예외 클래스명 & Error Message
- RuntimeException
- ERROR
- 예외 클래스명 & Error Message
- MethodArgumentNotValidException
binding은 trace로 해야지 찍힘
- 슬라이싱 단위 테스트 (도메인, Repository, Service, Controller)
- 여러 모듈의 통합 테스트(서비스 + JPA)
- AWS S3 이미지 업로드 테스트 : localstack
-
Localstack을 사용하는 이유
- 현재 보안 설정 방식으로 인해 s3에 접근하기 위해서는 IAM 역할이 등록된 aws 인스턴스 내에서만 통신이 가능
- 따라서 local에서의 Integration and Acceptance 테스트를 진행할 때 Localstack을 사용하여 테스트를 진행해야 함.
-
Localstack을 사용함에 있어 발생하는 문제점
- 도커를 기본적으로 사용하기 때문에 테스트 준비시간이 오래걸림(컨테이너 셋팅하고 띄우는데 1분 이상의 시간 소요)
- 테스트 F.I.R.S.T.원칙 중 fast를 위반
-
S3 Proxy 도입 이유
- pickgit application에서는 실제로 s3에 데이터가 업로드 되는지 확인하기 위한 integration, acceptance 테스트가 필요함.
- 로컬에서는 s3에 접근이 안되고, localstack은 테스트를 너무 느리게 만드는 단점이 존재함.
- 따라서 local과 s3를 연결하는 프록시 서버를 통해 통합, 인수 테스트를 진행하여 테스트 효율성을 증진.
- 또한 application의 s3(외부 저장소)관련 의존성이 분리되어 관리되기 때문에 파일 관리 정책 변경 등 변화에 유리함.
-
현재 깃들다의 이미지 업로드 부분 테스트 방식
- s3proxy → localstack을 사용하여 테스트
- pickgit → mocking하여 테스트
-
추후 적용 방식
- 통합 및 인수 테스트를 진행함에 있어 S3 Proxy를 통해 이미지의 업로드를 실제로 테스트.
- 견고한 테스트와 테스트 시간 단축의 이점을 가져갈 수 있음.
-
Localstack을 사용하는 이유
- 인수 테스트
한계 혹은 추후 개선 사항 : Github API를 사용해서 인증/인가, 관련 API 호출을 해야하는데 이 부분은 현재 Mocking 중.
- 팝업?
- 설문을 통해 연동할지 고민
Copyright © 2021 WoowaCourse Project Team PickGit