개인적으로 회사에서 사용하는 구버전(3.1..) 말고, 조금 더 트렌디하고 상용화된 기술을 사용하고 싶어 사이드 프로젝트를 구상하게 되었다.
이번 사이드 프로젝트의 주제는 ‘개발자 강의 모아보기’ 웹사이트이다. 개발자들이 강의를 볼 수 있는 플랫폼은 많은데, 숙박예약하는 호텔X컴바인처럼 모든 강의를 모아 볼 수 있는 플랫폼은 없어 일일히 찾아봐야 한다는 번거로움이 존재했다. 그래서 사람들에게(혹은 나에게 ㅎ_ㅎ) 편리함을 줄 수 있는, 강의 모아보기 사이트를 구상하게 되었다.

서비스 주요 기능

여러 인터넷 강의 플랫폼에서 개발자 커리어와 관련된 강의를 크롤링하여, 강의를 한 눈에 보여주는 사이트.

  • 정보를 가져와야 하는 인터넷 강의 사이트
  • 인프런
  • 프로그래머스
  • 코드잇

차차 구현 완성도에 따라 사이트를 추가해보자.

세부 기능

사용자

  • 사용자는 크롤링한 강의들을 볼 수 있다.
  • 조건 별로 필터링 할 수 있다.(인강 플랫폼, 카테고리, 가격대)
  • 강의명을 토대로 검색이 가능하다.
  • 강의 선택시 해당 강의 링크로 이동할 수 있다.
  • 문의하기를 통해 관리자에게 추가/변경 요청을 할 수 있다.

어드민

  • 유입현황을 확인할 수 있다.
  • 어떤 카테고리에 방문자 수가 많은지 확인할 수 있다.
  • 일정시간이 지나면 해당 사이트에서 크롤링을 진행한다(서버)
  • 변동사항이 있을 경우, 어드민 관리자에게 메일로 변동사항을 알려준다.(서버)

어드민쪽 구현보다는 우선적으로 사용자단 기능의 구현에 집중해보자.

도메인

  • 강의
  • 카테고리
  • 문의글

개발 스택

  • 클라우드 환경(AWS를 제일 먼저 고려하고 싶긴 한데.. 가격적인 측면에서 확인해보고 결정한다)
  • Docker : 서버 배포
  • PinPoint : 분산 서비스 APM 툴
  • Ngrinder : 성능 측정 목적으로 만들어진 오픈소스 프로젝트

백엔드

  • 스프링 시큐리티
  • 스프링 JPA (QueryDsl)
  • 스프링 Web MVC
  • 스프링 부트
  • 스프링 클라우드
  • 스프링 캐시
  • 스프링 배치
  • Jsoup
  • 메시지 큐
  • Spring Email

기타

  • 무료 도메인
  • Git
  • Gitlab
  • cloudflare : ssl 등을 무료로 지원
  • jira : 일정/이슈관리

앞서 작성한 내용은 추후 개발되는 내용에 따라 점차 변화가 생길 수 있으며,
바뀌는 내용에 따라 함께 업데이트 해 줄 예정이다.


oksusutea's blog

꾸준히 기록하려고 만든 블로그