본문 바로가기
회고

[주절주절] 사이드 프로젝트 - DB 사이트(Pika)

by 사바라다 2020. 12. 3.

멋진 로고

회사를 이직하고 8개월 정도 지나고 나서 이제 좀 업무와 도메인에 익숙해지기 시작했다고 느껴질 무렵 저는 전 회사에서 마음이 맞는 사람들과 사이드 프로젝트를 하기 시작하였습니다. 혼자하는게 아닌 팀을 이뤄서 하는 사이드 프로젝트라는게 사실 부담스럽다는 생각도 있었습니다. 왜냐하면 어떤 일을 함에 있어 동기라는게 중요한데 개발에 대한 열정만으로 과연 프로젝트를 계속 이어나갈 수 있을까하는 걱정이 었습니다.

막연하게 개발자 3명과 디자이너 1명이서 사이드 프로젝트를 시작하고 이제 2개월이 지났습니다. 다행히 처음에 막연했던 목표가 지금은 구체적이 되어 적당히 단단한 동기와 지속 할 수 있는 원동력이 생기게 되지 않았나 싶습니다.

우리는 먼저 제 1 목표를 세웠습니다.

제 1 목표 그것은 우리가 만든 사이트로 돈을 벌어보자였습니다. (역시 동기는 물질적인겁니다.)

그러기 위해서는 사람들의 기억에 남을 수 있는 사이트가 되어야하고 타 사이트와의 차이점이 있어야한다고 생각했습니다. 개발 진행과 병행하여 계속 고민했고 팀원분들과 공유하는 시간을 많이 가졌습니다. 말씀 드릴 수 는 없지만 지금은 그 차이점을 찾았다고 생각하고 목표를 달성하기 위해서 조금씩 진행하고 있습니다.

개발 스택

AWS에서 화려하게 하고싶지만... 개인들이 열정으로 뭉쳐서 하는거라 비용적인 측면에 되게 민감한 부분이 있었습니다. 따라서 저희들은 공짜로 개발하자, 투자하는 것은 노력과 열정 뿐이라는 이라는 생각으로 아키텍처를 구성하고 있습니다. 그리고 본인이 사용하고 싶은 기술은 적극적으로 사용하는 것을 권장하고 있습니다. (이게 사이드 프로젝트의 매력이죠^^ )

저희들은 아래의 개발스택으로 그리고 인프라로 only 열정만으로 개발하고 있습니다. 돈은 들지 않아요. 시간만 있다면.. 모든건 무료에요.

Back

  • Spring Boot 2.3.4
    • Java 기반이며 서버의 축이되는 프레임워크로 Spring Boot를 사용중입니다.
  • Spock Framework
    • 테스트 프레임 워크로는 Spock을 이용하고 있습니다. 쉬운 Mock과 Stub이 장점입니다.
  • Spring Cloud
    • Spring Cloud의 Feign을 사용하여 외부 API 연동을 선언적으로 쉽게 만들어 주며 hystrix도 쉽게 적용할 수 있어 적용하였습니다.
  • Reactor
    • 대량의 list를 읽어와 처리가 필요한 부분에 사용하고 있습니다. 외부 API 연동이 물려있어 BackPressure를 사용하여 적절한 수준으로 컨슈밍 할 수 있도록 조절해주는 역할을 합니다.
  • test Container
    • 로컬의 기능 테스트에서 사용합니다. H2 DB는 maria DB의 모든것을 대체할 수 없기때문에 실제 mariaDB로 테스트할 수 있는 환경을 구성해주는 역할을 합니다. 테스트가 시작 될 때 mariaDB 도커 컨테이너 올라가며 테스트 종료시 도커 컨테이너 또한 내려갑니다.
  • JPA with QueryDsl
    • Database 접근을 ORM으로 하기 위해 JPA를 사용하고 있습니다. 또한 컴파일 타임에 쿼리를 점검하기 위해 QueryDsl도 병행합니다.
  • Spring Security
    • 사이트의 로그인 등을 Spring Security를 통해 제어합니다. jsonwebtoken와 함께 이용하여 jwt로 인증하도록 하였습니다.
  • maria DB
    • database로는 mariaDB를 이용합니다. mysql에서 파생된 오픈소스로 RDB 역할을 합니다.
  • redis
    • 시스템의 global cache 역할로 redis를 사용합니다. 주로 RDB의 접근을 최소화하여 성능을 끌어올리는 역할을 합니다.

Front

아래는 프론트엔트 개발 스택입니다. 아래는 다음에 프론트 개발자분을 인터뷰해서 왜 사용하는지 이유를 한번 인터뷰 하도록 하겠습니다.

  • Vue
  • Html
  • scss
  • postcss
  • js

기타

  • 오라클 클라우드
    • DB, 스토리지, 컴퓨팅, LB 등등 상당히 많은 부분을 always free라는 형식으로 지원해줍니다.
    • 프리 티어 설명
  • gitlab
    • ci/cd까지 지원해줍니다. ci 기준 한달에 2000분까지 무료지원입니다.
    • 코드 형상관리 및 이슈관리도 gitlab으로 진행합니다.
  • google driver
    • 문서관리용으로 사용합니다.
  • cloudflare
    • Reverse Proxy로 사용합니다 
    • ssl, Ddos 방어 등 무료로 지원해주는 부분이 있습니다.
    • 프리 티어 설명
  • 도메인

캡처

아래는 만들고 있는 페이지를 팀원 분들의 허락을 얻고 일부분 캡쳐한 것입니다.

pika project 캡처_1
pika project 캡처_2
pika project 캡처_3

마무리

이렇게 블로그에 사이드 프로젝트 이야기를 하는건 저희가 선정한 1차 마일스톤이 끝나서 자랑(?)을 좀 하고 싶어서기도 합니다. 그리고 앞으로 블로그에 github와 연계하여 프로젝트를 진행하며 겪었던 이슈를 함께 공유하는 포스팅도 예정되어있어 사전알림이기도 하구요.

아직 추가해야 할 부분이 많이 있습니다. 중앙 집중형 로깅이라던지 모니터링이라던지.. 앞으로 하나하나 추가해나갈 생각에 또 두근두근하네요. :)

열정 만으로 함께 프로젝트에 참여해 주고 계신 팀원분들께 감사의 말씀 전하며 좋은 프로젝트로 남길 수 있도록 노력하겠습니다.

감사합니다

댓글