내배캠 수강 중 드디어 본격적인 첫 팀 프로젝트를 경험하게 되었다.
문제의 요건에 따라 API 명세서를 작성하고, WBS & Task 를 통해 계획을 수립 및 이행하는 과정을 설계하면서 전반적인 팀 프로젝트의 큰 진행방향을 다시 알게 되었다.
이번에 맡아서 진행하게된 부분은 고객에 관한 CRUD 구현과정이었고 그 과정에서 챙겨봐야할 내용들을 정리하고 넘어가고자 한다.
💡 어느 개념이 이해가 되지 않았는가
- List를 통한 응답과정과 그 범위가 어느정도인지 이해가 되지 않았음
- 단순한 List<User> 는 전체 데이터를 한번에 보내주는 방식(데이터가 적을때 유용)
- 페이징(Page)은 List + 메타정보(page, size, totalElements)를 같이 보내는 방식
→ PageResponse 구조로 감싸서 응답해야 함 - 우선은 List 형태의 ResponseBody를 잘 받아내는 과정을 구현하기 위해 페이징 기능구현은 미룬 상태로 응답처리과정만 테스트를 진행하였음
- 환경변수의 사용법과 개념을 처음 경험해봐서 어떤 식으로 활용되어야 하는지 알아야 했음
- 우선 public으로 공유되면 안되는 개념의 값들을 Key-Value 형식으로 관리하는 개념
- git.ignore 을 통해 별도로 관리가 필요한 정보의 값들을 관리할 수 있다는 장점을 갖춤
→ 혹여나 .env 파일이 한번이라도 추적되는(commit) 상황이 벌어진 이후의 진행 방향은 아래와 같음
기존 .env 파일을 삭제, 삭제된 로그를 commit 처리 (commit message example : Fix : stop tracking .env file)
이후 .env 파일을 재생성 후 기존 암호화해야할 내용들을 담음
- AccessToken 인가 기반의 경우 DTO(Request dto) 에서 처리할 수 없는 부분인지 궁금했음
- Dto에서 가능한 제약 - 입력값 검증 (Validation)
- 입력값에 대해 참 거짓 또는 비어있는지에 대한 검증까지의 기능 구현은 가능함
- AccesToken에 들어있는 ROLE_CUSTOMER , ROLE_ADMIN 같은 권한 정보는
HTTP 요청 정보(Authorization) → SecurityContext에 담긴 상태로, DTO 생성 시점에는 접근이 불가능
보안로직은 비즈니스 / 보안 레이어 (Service or Security) 에 존재해야 함
- Dto에서 가능한 제약 - 입력값 검증 (Validation)
- @PreAuthorize 를 통해 접근 가능한 권한을 제약조건으로 설정할 수 있었음
👍 무엇을 새롭게 알았는지
- Git Branch 진행과 Pull을 통한 최신상태 업데이트 하는 과정들을 실제로 적용해보고 어떤 방식으로 진행되어야 하는지 알게 되었습니다.
- Merge 진행 간에 Assignee, Reviewers 설정을 통해 Merge 이전에 의사소통 및 실반영하는 흐름까지의 이해를 갖추게 되었습니다.
'Spring > Spring 실습' 카테고리의 다른 글
| [프로젝트] 실시간 데이터 처리 회고 (0) | 2025.12.08 |
|---|---|
| [프로젝트] 포인트 기반 결제 시스템 프로젝트 회고 (0) | 2025.11.28 |
| [Spring 실습] 점심 추천 & 투표 서비스 만들기 V2 (0) | 2025.10.29 |
| [Spring 실습] 점심 추천 & 투표 서비스 만들기 v1 (0) | 2025.10.27 |
| [Spring 실습] 강의 내용 진행 중 문제점 정리 (0) | 2025.10.21 |