본문 바로가기
회고

토이 프로젝트 - NaverPay

by icblue21 2022. 11. 24.
728x90

회고

KDT 핀테크 서비스 백엔드 개발자 3기 두 번째 토이 프로젝트가 끝났다. 이번 토이 프로젝트는 Spring의 MVC 구조를 익히는 것을 목적으로 네이버페이의 첫 화면부터 로그인 후 결제내역에 들어가 이전 구매내역들을 보고, 삭제할 수 있는 기능을 구현하기로 했다.

 

이번 프로젝트는 팀으로 진행하게 되었는데, 팀에서 전공자가 나 하나 뿐이라 내가 팀장의 역할을 하며 팀을 이끌어나갈 필요가 있었다. 다행히 대학에서 팀 프로젝트 팀장, 조별과제 팀장을 해본 경험이 있어 그 당시 팀장을 하며 힘들었던 점, 이렇게 진행했으면 더 좋았을 것 같다고 생각했던 점들을 생각하며 체계적으로 팀을 이끌어가려고 했다.

 

가장 먼저 우리 팀원끼리 편하게 사용할 수 있는 레포지토리를 생성했다. 현업에서 자주 사용하는 브랜치 전략인 git flow전략을 이용하여 각자 맡은 부분을 개발하고 합치는 방식이 협업하기 좋을 것 같았다.

 

이후에는 다같이 URL설계, 시나리오 작성, 클래스 설계, 데이터베이스 설계를 진행했다. 아무래도 이런 협업은 처음인 분들이 많아서 소극적인 분위기가 있었는데 내가 적극적으로 의견을 내고 계속해서 더 추가해야 할 것 같은 부분이나 수정해야 할 것 같은 부분을 물어보면서 의견을 편하게 낼 수 있는 분위기를 만들기 위해 노력했다. 다행히 대부분의 팀원분들이 잘 따라와줘서 금방 끝낼 수 있었다.


URL 설계

URL설계는 다음과 같이 작성했다.


시나리오 설계

시나리오는 비 로그인 상태와 로그인 상태로 나누어 설계했다.


데이터베이스 설계

데이터베이스는 고객 정보를 담는 Members 테이블, 구매 정보를 담는 Shopping 테이블, 결제 정보를 담는 Payment 테이블로 구성했다.

 

 

 

 


클래스 설계

클래스는 최대한 MVC 구조에 맞게 Controller, DTO, VO, Entity, DAO, Service 로 구성했으며 메서드들 또한 각 컴포넌트들의 역할에 맞게 구성하려고 했다.

 


시연 화면

 

모든 화면을 보여주기에는 너무 많아서 이번 프로젝트의 핵심 부분인 결제내역 확인 부분만 정리했다.

 

결제 내역 화면

처음 결제 내역 화면으로 가면 최근 2년간의 구매 내역 목록이 나온다. 여기서 세부 정보 버튼을 클릭하면 자세한 결제 정보를 확인할 수 있다. 

 

상세 정보 화면

View 부분을 좀 더 신경썼으면 좋았을 것 같다 ㅠㅠ..

개인적으로 코딩테스트 준비, 면접 준비가 있어서 View 부분 까지는 신경을 쓰지 못했다.. 

주문 내역 삭제 버튼을 누르면 해당 구매 정보가 삭제 된다.

 

삭제된 구매 정보

 


후기

역할 분담을 하고 처음 프로젝트를 진행할 때 나는 내 역할만 깔끔하게 하고 곧 있을 코딩테스트와 면접을 준비하려고 했다. 하지만 다른 팀원들이 어려워하는 모습을 보며 가만히 있을 수가 없었다.

 

다른 팀원들에게 최대한 도움이 되고자 공통적으로 사용하는 DTO,VO,DAO,Service 부분과 데이터베이스에 친숙하지 않은 분들을 위해 테이블 생성, 몇가지 샘플 데이터추가 가 들어간 sql 파일, 최소한의 필요한 내용만을 담은 View 파일들을 구현했고 여기서 코드를 보완하는 방식으로 프로젝트를 진행하면 모두 다 프로젝트에 기여하면서 꽤 괜찮은 산출물을 만들어낼 수 있을 것이라 생각했다.

 

이외에도 구현에서 어려운 부분이나 에러가 발생하는 부분이 있으면 언제든지 물어볼 수 있는 분위기를 만들기 위해 노력했고 최대한 팀원들이 잘 이해할 수 있도록 대답하기 위해 책과 강의자료를 뒤져가며 공부했다. 이렇게 공부하고 알려주고 직접 구현을 하면서 내 스스로가 Spring에 대해 많이 이해하게 되었다고 느낄 수 있었고 이번 프로젝트를 통해 Spring의 MVC 구조 만큼은 정말 머릿속에 잘 남은 것 같아서 만족스럽다. 

 

그리고 이번 프로젝트를 하면서 백엔드 개발자여도 프론트엔드에 대한 지식이 어느정도는 있어야 개발하기 수월하다는 것을 느꼈다. 앞으로 해야할 일들이 많지만 틈틈히 프론트엔드에 대한 공부를 해야 할 것 같다. 

댓글