반응형
오늘은 첫 온라인 보강이 있는 날이었다.
✔️ 오늘 한 일
- 1차 온라인 보강 참여
- 게시물 목록 조회 기능 개발 1차 완료
- 게시물 목록 조회 테스트 시작
- Swagger 연동 설정
> TMI : 기능 개발과 함께 PR 코드리뷰를 시작하니 매우매우 바쁘다. Discord 폭발 직전
👀 오늘의 이슈
- LocalDateTime vs String 타입
- 배경
- PostListResponse DTO의 createdAt, updatedAt 필드를
LocalDateTime 타입과 String 타입 중에 어떤 타입으로 사용할지 고민함
- PostListResponse DTO의 createdAt, updatedAt 필드를
- 분석 :
- LocalDateTime 타입
- 장점
- 타입 안전성 - 날짜와 시간을 다루는 코드에서 숫자나 텍스트가 실수로 들어가는 것을 방지
- 편리한 조작 - 날짜와 시간 조작을 위한 다양한 메서드 제공
- 명확한 의미 - 해당 필드가 날짜 및 시간 타입임을 명시
- 단점
- JSON 직렬화 형식 불일치 - 클라이언트와 서버 간의 날짜/시간 형식이 일치하지 않을 경우 추가 작업이 필요할 수 있음
- 장점
- String 타입
- 장점
- 유연성 - 데이터의 형식이 고정되어 있지 않기 때문에 직렬화/역직렬화 작업에 있어 유연
- 호환성 - 클라이언트가 어떤 형식의 날짜를 사용하든, 문자열로 주고받기 때문에 형식 불일치로 인한 문제를 줄일 수 있음
- 단점
- 타입 안전성 부족 - 잘못된 형식의 문자열이 들어올 가능성이 있음
- 파싱 필요 - LocalDateTime 등으로 파싱하는 작업이 필요하며, 코드의 복잡성을 증가시킬 수 있음
- 장점
- LocalDateTime 타입
- 결론 :
날짜 및 시간 데이터의 정확한 의미와 안전성을 우선으로 두어 LocalDateTime 타입을 채택함
클라이언트와 서버 간의 직렬화 문제는 단점으로 작용할 수 있었지만,@JsonFormat
등의 추가적인 설정을 통해 충분히 해결할 수 있는 문제라고 판단함
따라서, createdAt, updatedAt 필드 타입으로 LocalDateTime을 채택하기로 결정함
💡 Today I Learned
1. Querydsl 버전 문제 해결 방법 (Feat. Q클래스)
- Q클래스가 생성되지 않는 문제는 대부분 아래 방법으로 해결된다.
gradle > build > clean
&gradle > build > build
- Settings > Build > Build Tools > Gradle >
IntelliJ로 변경해보기
- Settings > Build > Compiler >
Annotation Processors 활성화
2. 커밋 타입은 유연하게 작성하자
- 커밋 메시지 템플릿에 쓰여있는 설명에 얽매여서 매번 타입을 어떻게 지정해야 할지 애매한 내용이 많았는데, 코드리뷰를 통해 제안해주신 팀원분 덕분에 좀더 유연한 생각을 가질 수 있게 되었다.
# 1. Feat: 새로운 기능 추가
# 2. Fix: 오류 해결
# 3. Rename: 파일 혹은 폴더명을 수정만 한 경우
# 4. Remove: 파일을 삭제만 한 경우
# 5. Style: 기능 수정 없이 코드 스타일만 변경한 경우 (코드 포매팅, 세미콜론 누락 등)
# 6. Design: 사용자 UI 디자인 변경 (CSS 등)
# 7. Refactor: 코드 베이스의 특정 부분을 재정렬 (Refactoring)
# 8. Test: 테스트와 관련된 모든 것
# 9. Docs: 문서화에 관한 모든 것
# 10. Chore: 빌드 업무 수정, 패키지 매니저 수정 (gitignore 수정 등)
# 11. Perf: 성능 개선
- 문제를 해결한 부분은 [Fix]로 설정하자.
- 사용되지 않는 어노테이션을 삭제한 것은 치명적인 오류를 해결한 것은 아니기 때문에 [Refactor]가 더 적합하다.
* 문제를 해결하고, 리팩토링한 내용이 거창하지 않아도 좋다.
< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >
🔗 velog 버전 보기 : https://velog.io/@ryuneng2/TIL-원티드-프리온보딩-백엔드-인턴십-Week1-5일차-0824
'TIL > 2024 원티드 프리온보딩 백엔드 인턴십' 카테고리의 다른 글
[TIL] 원티드 프리온보딩 백엔드 인턴십 Week1) 7일차, 0826 (0) | 2025.01.22 |
---|---|
[TIL] 원티드 프리온보딩 백엔드 인턴십 Week1) 6일차, 0825 (0) | 2025.01.22 |
[TIL] 원티드 프리온보딩 백엔드 인턴십 Week1) 4일차, 0823 (0) | 2025.01.22 |
[TIL] 원티드 프리온보딩 백엔드 인턴십 Week1) 3일차, 0822 (0) | 2025.01.22 |
[TIL] 원티드 프리온보딩 백엔드 인턴십 Week1) 2일차, 0821 (0) | 2025.01.22 |