[인턴 경험] sellfarm 도매사이트 리뉴얼 기획 및 개발

subb_ny·2023년 12월 3일
0
post-thumbnail

진행 기간 : 2023.09.01 ~ 2023.11.09
진행 인원: 3명
사용스킬: PHP,JavaScript, MYSQL
역할: 기획, 디자인, 개발
운영 사이트: https://sellfarm.co.kr/

NEXT RUNNERS 인턴으로 재직하면서 sellfarm 프로젝트를 맡아서 진행하게 되었다.
PHP 언어, 그누보드 템플릿으로 제작된 홈페이지였으며 요구 사항을 포함해서 기획, 디자인, 개발까지 요청받았다.

🦠 초기 사이트 문제정의 및 문제 해결 방안 구상 및 추가 요구사항

먼저 도매사이트 유통에 대한 사전 지식이 없기에, 도매사이트 유통 프로세스에 대해서 이해하고 초기 홈페이지를 분석하였다.직접 사이트를 이용해보고 실제 유저의 의견을 받으며 문제점을 찾아 나갔다. 해결 방법은 벤치마킹 사이트를 참고하고, 팀원들뿐만 아니라 다양한 의견을 받아서 구상해보았다.

✏️ 문제점과 해결방안 구상 정리

  1. 현재 사이트에서는 공급자와 셀러를 구분할 수 없음
    => 공급자와 셀러의 회원가입 페이지를 분리하여 최초 회원가입 시, 선택할 수 있도록 구현
  2. 같은 상품도 무게만 다른 것은 옵션으로 넣어도 되는데 각각 분리되어 있음
    => 관리자 페이지에서 상품 옵션란을 만들어 옵션 생성 (정규표현식으로 +뒤는 가격, /로 옵션 개수 구분)
  3. 모든 상품 변동 사항, 공급자의 품절/ 재입고 안내를 하나의 게시판에서 관리하는데, 이는 상품이 많아질수록 비효율적이라고 생각됨.
    => 상품 상세페이지에 공급자 공지사항 제작(CRUD)
    (해당 상품을 공급하는 공급자가 공지사항 및 Answer작성을 할 수 있도록 관리자페이지에서 권한 부여 )
  4. 셀러와 공급자가 질의응답할 수 있는 기능이 없음
    => 상품 상세페이지에 상품 Q&A 제작
  5. 결제 방식이 무통장 입금만 사용되고 있는데, 매 결제마다 입금 확인하는 것이 번거롭다는 운영자 의견
    => 예치금 결제 시스템을 도입하여 결제마다 확인하는 번거로움 줄임
  6. 장바구니에 같은 상품을 반복적으로 담으면 새로 추가되는 것이 아니라 개수가 추가됨
    => 이는 같은 상품이면서 옵션이 다른 상황을 고려하지 못한 것이므로 장바구니에 새로운 장바구니 식별 칼럼을 생성하여 식별 칼럼을 기준으로 장바구니 데이터 생성
  7. 상품 이미지 다운로드를 클릭하면 모든 상품 이미지를 다운받을 수 있는 구글 드라이브로 연결되어 있음
    => 상품 이미지및 상세페이지의 url을 DB에 넣어, 해당 상품에 대한 이미지만 볼 수 있도록 구현
  8. 주문 내역을 필터링, 검색 기능이 존재하지 않아서 사용자 불편함 야기
    => 날짜별, 카테고리별, 상품 상태별 필터링 , 검색 기능 구현

추가 기능 요청

  1. 주문 내역을 체크박스로 선택한 것을 엑셀로 정보를 다운
  2. 엑셀 대량 주문 기능
  3. 회원의 등급을 지정하고 지정 등급에 따라 할인률 적용
  4. 관리자 페이지에서 엑셀로 송장번호를 등록하면 주문내역에 반영
  5. 관리자 페이지에서 엑셀로 대량으로 상품을 등록

이와 같이 정리하여 간단한 피그마 작업을 통해 컨펌을 받아 구현 작업을 시작하였다. 기획부터 디자인, 개발까지 모두 다 전임하여 맡은 상황이라서 고려해야 할 것들이 많았다.

🥇 내가 기여한 구현 기능 정리

1. 회원가입 시 , 셀러와 공급자 분리

사이트의 문제점 및 해결 방안 구상

현재 사이트에서는 공급자와 셀러를 구분할 수 없음
=> 공급자와 셀러의 회원가입 페이지를 분리하여 최초 회원가입 시, 선택할 수 있도록 구현

회원가입시 셀러와 공급자가 받는 정보가 달랐다. 따라서 회원가입 페이지를 따로 분리하였고, 회원정보 테이블에 mb_qualification라는 coulumn을 생성하여 셀러 or 공급자를 저장하였다.

🛎 고민했던 부분

회원가입 시에 option으로 선택하여 mb_qualification을 받는 게 좋을지 vs 따로 페이지를 나눠서 받는게 좋을지 고민이 되었다.
유저의 나이대가 셀러는 다양하지만, 공급자는 40대이상-60대까지 비교적 고연령대로 측정되었다. 고령 사용자들은 일단 디지털 환경에 대한 익숙성이 낮을 수 있고, 정보를 이해하고 처리하는 데 시간이 더 걸릴 수 있으므로 간소하고 직관적인 디자인이 중요하다고 생각했다. 따라서 초반 회원가입에 페이지를 나누어 회원가입을 유도하도록 제작했다. 추가적으로 셀러와 공급자 아래에 가벼운 설명글을 적어서 가입시, 셀러와 공급자에 대한 정보가 헷갈리지 않도록 구성했다.



2. 상품상세페이지에 공급자 공지사항 구현

사이트의 문제점 및 해결 방안 구상

모든 상품 변동 사항, 공급자의 품절/ 재입고 안내를 하나의 게시판에서 관리하는데, 이는 상품이 많아질수록 비효율적이라고 생각됨.
=> 상품 상세페이지에 공급자 공지사항 제작(CRUD)

초기 사이트에서는 관리자가 상품 변동사항이나 품절 재입고 안내에 대해 직접 입력하고 하나의 게시판에서 관리하고 있었다. 그러나 이는 상품이 많아질 수록 셀러들이 확인하는게 번거롭고 복잡할 것이라고 예상했다. 따라서 해당 상품에 대한 공지는 해당 상품에 대해서 공급자가 직접 수정 변경하는 방식이 더 효율적이라고 판단했다.

셀팜에서 판매 상품을 올리는 것은 관리자 측에서만 가능하게 하면 좋겠다고 말씀해주셔서, 위와 같이 직접 상품마다 공급자 권한을 부여해야 했다. ,mb_qualification 칼럼으로 공급자로 분류된 회원의 아이디를 가져와서 권한을 부여할 수 있도록 구현했다.

시연 영상

공급자 권한이 선택되면 상품상세페이지에서 공급자 공지사항 수정 버튼이 보이게 되고, 선택된 공급자만이 수정 가능하다.

3. 상품상세페이지 Q&A 기능

사이트의 문제점 및 해결 방안 구상

셀러와 공급자가 질의응답할 수 있는 기능이 없음
=> 상품 상세페이지에 상품 Q&A 제작

공급자 공지와 마찬가지로 Question은 모두가 작성을 할 수 있되, 답변은 해당 상품에 권한을 가진 공급자만 답변할 수 있도록 구현하였다.
또한 해당 글 작성자와 답변자를 제외한 유저에게는 '비밀글입니다' 상태로 보이도록 구혔했다.
Database: Question table과 Answer table을 만들고 unique key인 Question Id로 사용하여 foreign key로 연결해주었다.

🛎 관련 코드 및 리팩토링

https://velog.io/@subb_ny/JavaScript-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%BD%94%EB%93%9C-%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81

👉 **인턴 프로젝트 성과 및 배운점**

1. 웹 프로그래밍의 전체적인 흐름 이해

프론트엔드, 백엔드, 데이터베이스를 종합적으로 다룬 경험은 웹 프로그래밍의 흐름을 이해하는데 큰 도움이 되었습니다. PHP 언어는 프론트와 백엔드 분리가 쉽지 않아, 전체 시스템을 하나로 통합하고 관리하는 방법을 습득할 수 있게 되었습니다.

2. 새로운 기술 습득과 성공적인 서비스화

백엔드, 데이터베이스, PHP 등 처음 접한 기술들을 3개월 안에 빠르게 습득하고 성공적으로 서비스화에 기여한 경험이 있습니다. 이로써 기한 안에 세운 목표를 달성하고, 이를 토대로 인턴 연장 제의를 받았습니다.

3. 레거시 코드 분석과 문제 해결 경험

기존 시스템의 문제를 발견하고 직접 기획하며 해결책을 마련하는 과정에서 실전적인 경험을 쌓을 수 있었습니다. 이는 단순히 요구사항을 구현하는 수동적인 자세가 아닌 직접 문제를 찾고 기획하여 구현할 수 있어, 개발자의 필수 요구 사항인 문제 해결 능력에 큰 도움이 되었다고 생각합니다.

4. 미래 변동성을 고려한 코드 작성의 중요성

서비스화 과정에서 기획과 요구사항의 빈번한 변화를 경험하며, 단순한 구현이 아닌 미래의 변동성을 고려한 유연하고 확장 가능한 코드 작성의 중요성을 깨달았습니다. 미래의 요구사항에 대비하며 코드를 작성함으로써 프로젝트의 장기적인 성공에 기여한 경험이 있습니다.

0개의 댓글