일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- google login
- STT
- AWS
- OG tag
- matplotlib
- google 로그인
- Expo
- 양방향 매핑
- JPA
- marksense.ai
- Loss Function
- react native
- yolo
- html
- idToken
- C++
- 졸프
- javascript
- 커스텀 데이터 학습
- oauth
- Spring Boot
- 2021 제9회 문화공공데이터 활용경진대회
- google cloud
- 코드업
- 순환참조
- @Transactional
- YOLOv5
- pandas
- Spring
- skt fellowship 3기
Archives
- Today
- Total
민팽로그
[오늘도, 안녕] 2023.07.26 개발 일지 본문
1. CustomException
- 나중에 에러 추적 & 디버깅을 위한 로그를 남기고 프론트쪽에 에러에 대한 정확한 메세지를 전달해주기 위해 에러 코드와 에러 원인을 반환해주어야 할 필요성을 느낌
- RuntimeException을 상속받는 커스텀 예외 클래스를 만들어서 사용
- 에러는 에러 코드와 에러 메세지로 enum 클래스에 상수 형태로 관리
- 예외 처리를 위해 오류를 검사하는 역할을 하는 클래스를 따로 만들어 둠
- 컨트롤러에서 CustomException이 발생하면 이를 처리하는 RestControllerAdvice 클래스를 구현
- 에러 내용을 기록하는 로깅도 필요할 것 같음
구현 사진
더보기

폴더 구조

ControllerAdvice

에러 메세지 enum

에러 검사 클래스

CustomException 클래스

에러 발생 시 코드 번호와 메세지를 반환해 줄 ResponseDto






2. Swagger
- 전에는 POSTMAN에 API 명세서를 만들었는데 이 작업이 상당히 귀찮았음..
- Swagger를 사용 → 개발자 각자가 API를 개발 후 자신이 개발한 API에 대한 문서를 코드로 쉽게 만들 수 있어서 좋았고 API 요청 테스트도 쉽게 할 수 있었음
3. @Transactional
- transactional 사용 시 service에서는 문제가 없어서 DB insert작업까지 완료됐더라도, controller쪽에서 에러가 발생하면 rollback되지 않음(당연한거지만). controller까지 트랜잭션을 가져갈 수 있지만 좋은 설계가 아니라고 들었음 → 나중에 정리할 수 있음 하자!!
- 전에는 transactional 어노테이션이 2개인걸 몰랐는데 오늘 보니까 2개!
- 하나는 javax → 자바에서 제공하는 표준 어노테이션
- 다른 하나는 springframework에서 제공하는 어노테이션 → javax 어노테이션의 확장판이라고 생각하면 됨. 더 섬세한 설정이 가능.
- 여러 함수로 분리하여 코드를 짰기 때문에, 트랜잭션의 부모-자식 관계를 컨트롤해야 한다면 springframework의 어노테이션 사용하는게 좋을 것 같음
- propagation 속성이 유용하게 쓰일 듯.
'프로젝트 > 오늘도, 안녕' 카테고리의 다른 글
[오늘도, 안녕] 2023.07.28 개발 일지 (0) | 2023.08.14 |
---|
Comments