Skip to content

2021 07 29 회의록

Jinhong edited this page Aug 16, 2021 · 2 revisions

1. 로깅 전략

  • 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

binding은 trace로 해야지 찍힘


2. 발표시 테스트 관련 내용

  • 슬라이싱 단위 테스트 (도메인, 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를 통해 이미지의 업로드를 실제로 테스트.
      • 견고한 테스트와 테스트 시간 단축의 이점을 가져갈 수 있음.
  • 인수 테스트

한계 혹은 추후 개선 사항 : Github API를 사용해서 인증/인가, 관련 API 호출을 해야하는데 이 부분은 현재 Mocking 중.


3. 깃헙 팔로우/팔로잉

  • 팝업?
  • 설문을 통해 연동할지 고민