해당 게시글은 개인 프로젝트인 "광고 관리 플랫폼 대행사 센터 제작" 중
#33 "에이전트 관리 기능 구현 + 뷰 적용" 이슈를 다루고 있습니다.
1. 에이전트 관리 기능 테스트 정의
(1) 비즈니스 로직 테스트 정의 및 구현 (service)
- 에이전트 관리 기능에 대한 비즈니스 로직 관련 테스트를 정의하고 기능을 추가
- 정렬 기능 (이름순 / 생성일자 순)
- 페이지네이션 기능
- 에이전트 리스트 조회
- 에이전트 수정 - 에이전트 그룹 소속 변경
- 에이전트 삭제
- 에이전트 상세 정보 조회 (이름, 프로필, 매핑된 광고주)
- 에이전트 상세 정보 - 매핑 광고주 조회 (광고주 캠페인 관리 페이지로 리다이렉션)
(2) 결과
- 수정 기능은 기존에 배웠던 강의에서 다루지 않는 '소속 그룹' 변경 건이라 추가 레퍼런스 조사가 필요할 듯 하여 보류하였음
- 삭제 기능의 경우 실제 삭제가 아닌 '삭제된 상태'로 변경하는 내용이라 마찬가지로 추가 레퍼런스 조사가 필요할 듯 하여 보류하였음
2. 컨트롤러 기능 추가 및 뷰 구현
(1) 컨트롤러 테스트 정의 (controller)
- 수정, 삭제 기능을 추가하려 하였으나 위의 사유로 일단 보류
(2) 페이지 제작 (Thymeleaf)
- Thymeleaf Decoupled Logic으로 각 페이지 기능을 구현하였음
- 구현하지 않았던 상세 페이지 추가 완료
- 에이전트 관리 페이지 index

- 에이전트 관리 상세 페이지

- css 및 디자인 작업은 모든 페이지 기능 구현 완료 후 일괄 수정 예정
3. 미흡한 점, 개선이 필요한 내용
(1) 기능 구현 간에 확인된 내용
- 에이전트 수정 기능의 경우, 단순히 에이전트 객체만의 속성을 수정하는 것이 아니라 연관관계 부분을 수정해야 하기 때문에 (에이전트 그룹-에이전트) 강의에서 배운 내용과는 다른 접근이 필요함. 이에 대해 레퍼런스를 찾아봐야 할 것으로 보임.
- 에이전트 삭제 기능의 경우, 단순히 삭제 처리를 하는 것이 아니라 데이터 보존 및 다른 비즈니스 로직 처리 시의 이슈로 에이전트 객체를 '삭제됨' 상태로 수정을 하는 것으로 처리해야 하는데 이 역시 레퍼런스를 찾아봐야 할 것으로 보임
(2) 추가로 구현해야 하는 기능
- 에이전트 생성 기능의 경우, 실제 광고 플랫폼 대행사 센터에서는 2가지 방식의 비즈니스 로직으로 처리를 하고 있음
- 대행사 플랫폼에서 초대장 발송 -> 초대장 승인 -> 가입 완료
- 구글, 크리테오, 11번가가 해당 방식을 사용
- 광고 플랫폼 대행사 센터에서 에이전트의 계정 ID로 사용할 이메일에 초대장을 발송, 에이전트가 이를 승인하여 대행사 플랫폼 가입 및 에이전시에 소속됨
- 에이전트가 플랫폼에 가입 -> 에이전시 측으로 가입 요청 -> 승인 완료
- 네이버, 카카오가 해당 방식을 사용
- 에이전트가 광고 플랫폼에 가입한 후 에이전시 측으로 가입 요청을 하며 에이전시가 광고 플랫폼 대행사 센터에서 이를 승인하여 에이전트의 소속을 배정시킴
- 해당 프로젝트에서 위의 비즈니스 로직을 참고하여 기능을 구현하기 위해 다음과 같은 작업이 필요함
- 대행사 플랫폼에서 초대장 발송
- 초대장 양식을 만들어야 하며, 대행사 센터 - 초대장 간 API 작업 추가 필요
- 초대장 발송 전에 미리 에이전트 그룹을 지정하는 방식으로 처리 필요
- 초대장 발송 시 임시 비밀번호로 전달되며 계정 생성 후 비밀번호 수정 기능 추가 필요
- 에이전트가 플랫폼에 가입
- 회원가입 페이지를 만들어야 하며 '가입 미승인' 상태 필요
- 승인 처리 시 에이전트 그룹을 지정하는 방식으로 처리 필요
- 가입 승인 요청 및 확인 페이지 별도 제작 필요
- 해당 프로젝트의 포트폴리오 시연 환경 및 작업 난이도를 고려하여 2가지 비즈니스 로직 중 하나를 선정할 필요가 있음
(3) 어떻게 해야 할 것인지
- 수정 / 삭제 기능의 경우 1.0.0 Release 시에 구현이 가능하다면 리팩토링 과정에서 구현을 해볼 것
- 생성 기능의 경우 보다 복잡한 기능이 요구되어 2.0.0 Release 시에 구현을 해볼 것