2023.01.31.TUE

ronglong·2023년 1월 31일
0
  1. Cloud 운영 환경 구성
  • 클라우드 서비스 : 가상 컴퓨터 제공. IaaS, PaaS, SaaS
  • 배포(deploy) : development -> intergration -> staging -> production
  • 배포할 때, development와 production 단계에서의 환경 설정이 다를 수 있으므로, 코드와 환경 설정을 분리해야 함.
    • 환경 변수 사용하여 .yml or .properties에 상대 경로로 변수 설정
    • docker(가상화 도구) : 환경 자체를 메타 데이터에 담아 모든 개발 환경 통일
  • 배포 플랫폼 : AWS, MS Azure 등
  1. AWS, Amazon Web Service
  • S3(Simple Storage Service) (+CluodFront) -> 클라이언트
    - 여러 region -> 가용성, 내구성
    - standard / glacier
    - 정적 웹 사이트 호스팅 가능
    - 버킷 : 객체(키:밸류 파일 + 메타데이터)
  • EC2(Elastic Compute Cloud, 가상 컴퓨터) - 서버
    - AMI(Amazon Machine Image)로 컴퓨터 사양 설정 가능.
    - 인스턴스 생성 = 가상 컴퓨터 대여
  • RDS(Relational Database Service) - DB
    - DB관리 알아서 해줌
    - 다양한 DB 엔진 선택지 : Oracle, Aurora, MySQL, MariaDB 등
  • Route53 : 도메인 서비스 이용
  1. 실습 - 서버 배포
  1. 삽질 기록
  • 오늘 URI 생성은 마무리 지었으나, 예외처리는 결국 못했다.
    ControllerAdvice 클래스와 그 안의 exceptionHandler까지는 모두 구현했으나, 공통된 에러 정보를 반환하기 위한 ErrorResponse 클래스 구성이 너무 어려워서 몇 시간 내내 삽질하다가 실패... ㅠㅠ
  • 실패하고 접고 자려고 했는데, 친절하신 동기님들께서 도와주셨고,, 결국 끝냈다!ㅠㅠ (지금 새벽 2시) 감사합니다 슨생님들 ㅠㅠㅠ
  • 예외처리 관련 블로그
    https://www.popit.kr/spring-guide-%EC%97%90%EC%99%B8-%EC%B2%98%EB%A6%AC-%EC%A0%84%EB%9E%B5/

<느낀 점>
ErrorResponse 작성 방법에서

MethodArgumentNotValidException BindingResult

ConstraintViolationException ConstraintViolations

를 처리하는 게 어려웠다.

List<>를 처리할 때, FieldError, Constraint 클래스를 따로 만들고 그 안에서 private 생성자와 of() 메서드를 이용해서 처리할 것.

그리고 private의 경우, @Getter 가 꼭 있어야한다. 안 그러면 JSON 파싱이 제대로 안 돼서 오류남..
.
.
.
혼자서 여러가지 방법으로 삽질을 했는데, 각각의 에러마다 다른 파라미터를 가진 생성자를 오버로딩해서 메서드 10개 만들었다가, 너무 비효율적이라서 접었다.

그러다가 @Getter 써서 에러에서 메세지 받아왔는데, 포스트맨 결과에 에러에 담긴 모든 정보가 나타남^^
원하는 정보만 가져오는 것을 구현하는데 엄청 애먹었다.

원하는 정보만 아예 e.getbindingresult().getfieldError() 이런 식으로 가져오려고 했더니,
포스트맨 찍으면 결과에 예를 들면 유효성 검사를 3개의 필드가 통과를 못 했는데, 한 개의 필드에 대한 정보만 나와서,
결국은 발생한 에러들의 내부(bindingResult.getFieldErrors() 등)를 하나하나 돌아가며 에러가 발생한 각 필드와 값을 list에 넣어 반환하는 과정이 필수라는 것을 알았고,
ErrorResponse 클래스 내부에 FieldError, Constraint 멤버 클래스를 만들고 of() 메서드 작성하면서 막혔다. 한 3시간 삽질한 듯.

마지막엔 또다시 도움 받아서 해결,,⭐️

포기하지 말기,,

0개의 댓글