StackLounge 개발기

StackLounge 개발기

2022, Mar 09    

모바일 어플리케이션 제작을 위해 아이디어 구상부터, 기획, 설계, 개발 전체적인 프로세스를 진행하는 과정과 느낀점 등을 적어보려고 한다.

시작

2021년도 여름방학, 캡스톤 공모전 참가 준비

2학기에 있을 캡스톤 공모전을 준비하기 위해 여름방학 친구들과 모였다. 초반 어떠한 어플리케이션을 제작 할까 브레인스토밍 중에 우연치않게 StackShare.io 라는 웹 사이트를 알게 되었다. 해외 Amazon, Google, Microsoft, Facebook, 등의 기업들이 사용하는 기술 스택을 소개하고, 여러 기술 스택에 관하여 토론하고 공유하는 개발자 서비스 였다. 찾아보니 그 당시 유사한 서비시를 제공하는 국내 서비스는 존재 하지 않았었기에 이를 개발해보자고 제안 했고, 3개월간 개발기가 그렇게 시작됐다.

스택 라운지 기획

우리가 개발하려는 어플리케이션의 주 목적은 개발자들, 특히 학생들이 다양한 기술 스택과 관련 소프트웨어 도구들을 인지하고 프로젝트에 적용할 수 있도록 하는 것이다. 또한 우리가 흔히 궁금해 하는 “이 기업은 어떤 언어, 프레임워크를 쓰지?” 라는 질문에 답할 수 있도록 국내 기업들이 사용하는 기술 스택을 소개하는 기능도 추가했다.

구현할 기능 으로는 다음이 있었다.

  • 개발자 구인구직 사이트에서 기업, 사용 기술, 기타 정보 크롤링
  • 기술 스택 정보 크롤링(stackshare.io 크롤링)
  • 모바일 어플리케이션 개발
  • 크롤링 한 데이터를 API 로 제공

사용 기술

위에 정의한 기능들을 구현하기 위해서 아래와 같이 설계를 해보았다.

BaseOutline

  • AWS EC2: VPC 설정, 리눅스 운용 경험 등으로 보았을 때 다른 배포 서버를 사용하는 것에 비해 내게 알맞아 보였다.

  • Docker: 백엔드를 전체적으로 배포할 때 운용하기 위해 사용했다. docker-compose 와 Dockerfile 운용을 공부하기 위해 적용했다.
  • Django: API 를 제공하기 위해서 사용했다. 파이썬이라는 언어를 가장 많이 사용해 보기도 했고, 과거에 활용 경험이 있어서 사용했다. 특히 백엔드 자체가 간단하기 때문에 빠른 개발과 개발용 WSGI를 지원하는 장고를 선택했다.
  • Scrapy: 파이썬 기반의 크롤러 프레임워크다. MongoDB 와 결합하기 쉽도록 자체 파이프라인을 제공하고, 미들웨어를 추가할 수 있어서 데이터 정제에도 용이했다.
  • MongoDB: NoSQL 데이터베이스. RDBMS보다 Document 방식으로, 쉽게 사용이 가능하고,MongoExpress로 접근이 비교적 쉬운 웹 인터페이스도 사용가능했다. 우리가 사용하는 데이터가 관계형으로 구성될 필요성이 없었기에 사용했다.
  • GraphQL: 기존의 REST API 보다 유연하게 필요한 데이터를 API 로 제공할 수 있어서 사용했다.
  • Firebase: 모바일 어플리케이션에서 실시간 데이터 제공을 받기 위해서 RTDB를 사용했다. 깃허브 로그인 기능, Github API도 추가했다.
  • Android(Kotlin): 안드로이드 어플리케이션으로 개발 하였다.

마치며

다음으로는 각 기능을 구현하면서 있었던 내용을 정리해 볼 생각이다.