이커머스 기업에 입사하면 이커머스에 필요한 여러 파트 중 하나의 파트에 배정되어 그와 관련된 작업만 하게 된다. 주문이면 주문, 회원 관리이면 회원 관리, 그밖에도 쿠폰이나 이벤트, 결제 등과 같이 자신의 도메인에 대한 업무를 맡아 그 업무만 수행하게 되는 것이다. 자신의 도메인에 대한 지식이 쌓여 전문성을 갖출 수 있으나 전체적으로 이커머스라는 산업이 어떻게 돌아가는지, 각 도메인이 어떤 연관관계 속에서 협업하는지에 대한 그림이 그려지지 않을 수 있다. 필자 역시 이러한 점을 느꼈고 이커머스 토이 프로젝트인 'e-shop'을 개발해보며 전체적인 흐름을 파악하고자 한다.
화면 설계와 요구사항 분석을 함께 진행하였다. 지마켓, 올리브영, 쿠팡의 웹사이트를 참조하였고 설계한 화면은 카카오 오븐을 통해 구체화하였다.
배송 취소나 상품 등록을 위해 판매자를 위한 페이지가 따로 필요했다. 원래는 판매자 페이지, 관리자 페이지를 각각 따로 만들기도 하지만 본 프로젝트에서는 어드민 페이지 하나를 두고 판매자와 관리자 권한에 따라 노출되는 메뉴를 달리하는 방식으로 진행하였다.
예를 들어 상품 상세 팝업에서 판매자로 로그인했을 경우에는 광고 상품으로 노출할지 말지를 결정하는 항목이 노출되지 않는다. 하지만 관리자로 로그인 했을 때에는 이 항목이 노출되어, 관리자가 체크박스를 체크함으로써 해당 상품이 광고상품으로 페이지 상단에 노출될 수 있게 된다.
회원들의 리스트를 조회할 수 있는 기능 역시 관리자에게만 부여된다. 판매자가 회원들의 리스트를 전부 조회하는 경우는 있어서는 안될 상황이다.
그 외에도 MD 추천상품 노출 여부 선택 기능이나 쿠폰 등록 기능, 회원의 상태를 바꾸는 기능(블랙리스트 처리) 등을 관리자만 접근 가능하게 하고자 한다.
요구사항 정의서는 메뉴별로 정리하였다. 요구사항 정의서가 완벽할수록 빠뜨리고 구현하는 일이 없을 텐데... 필자는 이커머스 도메인 경험도, 개발 경험도 아직 부족하다보니 개발을 진행하면서 미처 발견하지 못했던 요구사항이 나올 수도 있을 것 같다. 포스팅한 시점의 화면 설계와 완성 시점의 화면 설계가 수정되는 부분도 분명히 존재하리라 생각한다.😬😬
결제 같은 경우는 결제 모듈을 붙일 수 없는 상황이다보니 페이지 내부에서 'e-pay'라는 포인트를 충전/소비하는 방식을 사용하고자 한다.
메인화면에 노출되는 상품들이나 BEST 상품쪽에 노출되는 상품들은 어떤 기준으로 노출시킬 것인가에 대한 세부사항도 정의하였다. 메인 화면에서는 일주일간 가장 많이 판매된 상품, 즉 판매량을 기준으로 노출시킬 것이고 BEST 상품 쪽에서는 별점순으로 노출시킬 것이라 요구사항 정의서에 정의하였다.
요구사항 정의서에 위에 언급한 것들과 같이 세부적인 사항들을 정의하고 빠진 부분이 없는지 거듭 살펴본 뒤 필수로 구현해야 할 부분을 선별하였다. 이커머스는 그 자체로 너무 규모가 크다보니 "전부 구현하고 말테다!"라는 생각으로 시작하게 된다면 토이 프로젝트 치고 너무 오래 걸리게 될 것을 염려하였기 때문이다.
하지만 요구사항 정의서를 작성할 때에는 구현 여부를 생각하지 않고 전부 기능을 명시해야 함을 잊지 말자! 요구사항을 나열하는 단계에서부터 구현 여부를 따지게 된다면 정말 "내가" 구현 가능한 소프트웨어만 만들게 된다.
다시 한번, 요구사항 정의서에 명시한 것들 중 빠진 것이 없는지 확인 후 ERD 설계 단계로 넘어갔다.
훌륭하네요! 이커머스 웹 개발을 토이프로젝트로 하려고 하는데 꼼꼼하게 준비하신 글 보고 감명 받고 갑니다! 화이팅