중고물품 통합검색 플랫폼 무엇으로 만들까? - 플리맨 프로젝트

김철기·2022년 11월 29일
6

플리맨(FleaMan)

목록 보기
2/14
post-thumbnail

해당 포스팅은 플리맨(FleaMan) 프로젝트의 광고 겸 개발일지입니다.
시간되실때 플리맨(https://fleaman.shop) 서비스 한번 사용해주시고 피드백주시면 감사하겠습니다.

무엇으로 만들까?

이전 포스팅에서 왜 중고물품 통합검색 플랫폼을 만들어야 하는지에 대해서 이야기했다. 이번에는 무엇으로 만들지에 대해서 함께 이야기해보겠다. 물론 기술적인 이야기이다.

기술 선정

기술을 선정하는데 있어서 가장 중점을 둔것은 러닝커브였다. 애초에 프론트엔드 개발을 해본적이 없기 때문에 나머지 부분에서 최대한 익숙한 기술을 사용할 수 밖에 없었다. 그렇게 선정된 기술과 이유들이다.

프론트엔드

  • React.js: 배울 수 있는 강의가 가장 많다. 주변에 조언해줄 사람도 많다.
  • React-Bootstrap: 디자이너가 없다.
  • React-Redux: state 관리가 쉽다.

백엔드

  • Python: 맨날 쓰던거다.
  • FastAPI: 맨날 쓰던거다(2).

데이터베이스 및 관련 툴

  • MongoDB: 명확한 기획이 없다. 스키마가 고정되지 않은 NoSQL이 필요하다.
  • Elastic Search: 검색엔진이 필요하다.
  • Kibana: 엘라스틱서치 데이터로 쉽게 통계를 뽑아볼 수 있다.

기타

  • Ubuntu: 맨날 쓰던 OS다, 오라클 무료 클라우드를 쓴다.
  • Monstache: 몽고DB와 엘라스틱 서치 동기화를 해준다.
  • Github: 코드 버전관리, Action으로 배포를 한다.
  • Docker: 미리 정의된 컨테이너 이미지로 세팅하면 편하다.
  • Google Analytics: 사용자 트래픽 분석하기 좋다.
  • CloudFlare DNS: 공짜인데 SSL까지 자동으로 적용된다.
  • Nginx: 포트포워딩용으로 쓴다.

서비스 구조도

생략된 것들도 있지만 대략적인 구조도는 이렇다.

기술 선정 후기

현재 이 글을 포스팅하는 시점은 1차 개발을 마치고 나서이다. 아직 개발해야하고 고쳐나가야 할 부분이 많지만 기술 선정에 관련하여 현재까지 느낀점을 공유해보고자 한다.

  1. 리액트를 선정한 것은 최고의 선택이었다.
    "코딩애플"이라는 사이트에서 돈주고 강의를 들었는데 정말 신기하게 자바스크립트도 잘 모르는 내가 리액트 강의 1회시청 후 뚝닥뚝닥 사이트를 만들수 있더라.(코딩애플 광고 아님) 프론트엔드 개발자로 커리어를 정할 생각은 없지만 프론트 관련 강의는 앞으로 여기서만 들을것 같다. 그리고 구글에 검색했을 때 레퍼런스가 많아서 내가 직접 코딩할 것이 거의 없었다.
  2. 리액트에 이어서 부트스트랩도 최고의 선택이었다.
    앞서 말했듯이 필자는 프론트엔드 초보자다. 부트스트랩은 이런 약점을 커버하기에 매우 탁월한 선택이었다.
  3. 엘라스틱 서치의 강력함
    검색엔진이 포함된 프로젝트를 처음 진행해보았기 때문에(우리 deeplol.gg도 소환사 검색이 있지만 검색엔진이 필요한 검색기능은 아니다) 엘라스틱 서치를 처음 사용해봤는데 매우 강력했다. 많은 데이터에도 매우 빠른 검색 속도를 보였고 통계 정보를 추출하는데에도 매우 편리했다. 엘라스틱 서치를 이용해 카테고리 페이지에서 검색기능과 가격통계 정보를 제공하는데 매우매우 만족스럽다.
  4. 백엔드도 좋은 녀석들이다.
    매일 쓰던 녀석들이라 감흥이 없지만, 역시 Python과 FastAPI는 프로토타입까지의 빠른 개발에 정말 좋다. 특히 자동으로 스웨거를 생성해주는 부분은 다른 프레임워크를 거들떠보지도 않게 해준다.
  5. arm CPU와 ubuntu22.04는 호환문제가 있다.
    monstache를 설치하고 적용하는데에 있어 arm CPU인것과 ubuntu 최신버전이 여러 라이브러리들에서 호환되지 않는것이 난관이었다. 오라클 클라우드는 arm CPU에 한해서 많은 리소스를 무료로 제공하는데 우리의 돈을 아끼기 위해 난관을 열심히 해쳐나갔다. 결과적으로 모두 해결했지만 이번 프로젝트에서 개발보다 호환관련 문제가 가장 스트레스를 주는 요인이었다.

이외에도 느낀점들이 많았는데 나머지는 앞으로의 포스팅에서 이어 적어보겠다.
앞으로 서버부터 시작해 구글 아날리틱스까지 모든 개발과정을 기술과 함께 포스팅해보려고 한다. 아직 어떻게 작성하면 좋을지 감이 잡히지는 않는데 최대한 친절하게 작성해보려고 생각중이다. 아직 서비스 사용자가 많지 않은것 같은데 꽤나 편리한 서비스니 한번쯤 사용해봤으면 좋겠다.

profile
Deepveloper, deeplol.gg, fleaman.shop

4개의 댓글

comment-user-thumbnail
2022년 12월 2일

좋은 서비스 감사합니다 :)
굉장히 편리하네요 ~!

1개의 답글
comment-user-thumbnail
2022년 12월 8일

중고마니아로써 편리합니다 앞으로 어떤 기능이 더 생길지 기대가 됩니다

1개의 답글