본문 바로가기
TIL/2024 원티드 프리온보딩 백엔드 인턴십

[TIL] 원티드 프리온보딩 백엔드 인턴십 Week1) 2일차, 0821

by ryuneng 2025. 1. 22.
반응형

✔️ 오늘 한 일

  • ERD 설계
  • 프로젝트 환경 설정
  • API 명세 작성

> TMI : 팀원들과 약 5시간 가량의 디스코드 회의를 진행했다.



👀 오늘의 이슈

🔎 ERD 고려사항

1. post 조회 테이블의 필요성?

  • 배경 : 일자별 조회수 통계 API 구현 시, 조회가 발생한 날짜 데이터 필요
  • 분석 : post 테이블 내에 있는 조회수 컬럼만으로는 언제 조회가 발생한 건지 알 수 없음
  • 결론 : 조회가 발생한 날짜를 기록할 수 있는 별도의 조회 테이블이 필요하다고 판단하여 생성함

2. post 테이블의 조회수/좋아요수/공유수 컬럼 → 조회/좋아요/공유 테이블의 컬럼으로 분리?

  • 배경 : 게시물 목록 API의 정렬 기능에서 조회수 데이터 필요
  • 분석 : 별도의 테이블과 Join하여 조회하는 것보다 post 테이블 자체에서 조회하는 것이 성능의 부하를 줄일 수 있다고 판단함
  • 결론 : 위와 같은 판단 하에 post 테이블 내에 그대로 두었으나, 더 나은 방향이 있을 시 수정 예정


💡 Today I Learned

1. @JsonProperty를 통해 JSON 필드명을 커스터마이징할 수 있다.

  • 고민한 내용 : API 명세를 작성하면서 Request/Response Body의 필드명을 스네이크 케이스(post_id) 가 아닌 카멜 케이스(postId)로 사용해야 할지 고민했다.
  • 고민한 이유 : JSON 필드명은 곧 서버에서 주고받는 변수명이고, Java의 변수명은 관례적으로 스네이크 케이스보다는 카멜 케이스를 사용하기 때문에, 카멜 케이스를 사용하는 것이 적합하지 않나 판단하였다.
  • 배운 점
    • JSON 필드명은 반드시 서버에서 사용되는 변수명과 일치할 필요가 없다.
      @JsonProperty를 통해 필드명을 커스터마이징할 수 있기 때문이다.

2. .env 파일을 통한 환경변수 설정

  • properties/yml 파일을 gitignore 하거나 암호화하지 않고도 .env 파일을 통해 DB 정보 등 민감한 데이터를 안전하게 관리할 수 있다.
  • 활용 방법
    1. .env 파일 : DB 정보 입력
    2. yml 파일 : DB 정보 영역에 ${.env파일에입력한변수명} 으로 설정
    3. .env 파일을 gitignore에 추가

3. Jira와 Github를 연동하여 Issues를 효율적으로 관리할 수 있다.

 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/TIL-원티드-프리온보딩-백엔드-인턴십-Week1-2일차-0821