반응형
현재 풀스택 개인 프로젝트를 준비하고 있다. 어플리케이션 기반의 커뮤니티 앱이다. 서버와 어드민 페이지까지 만든 다음에 애플리케이션과 연결할 예정이다. 프로젝트의 목표는 다음과 같다.
- 개인 공부가 목표이다.
- 어드민 페이지를 통해 유저 관리가 되어야 한다.
- 앱스토어와 플레이스토어에 출시가 되어야 한다.
- Fcm을 통해 푸시 메시지를 제어한다.
- 앱에 공지사항과 강제 업데이트 같은 관리자가 외부에서 제어할 수단이 있어야 한다.
해당 목표를 이루기 위해서 기술스택을 찾고, 현재 제작 중이다.
- 백엔드 : NestJS : Typescript 기반으로 빠르게 작성하고 테스트가 가능하고 익숙함
- ORM : Typeorm : 가장 많이 사용하고, 나중에 확장할 때 빠르게 할수 있다.
- DB : Postgres : 오픈소스, 제일 익숙하고 Join 연산에 최적화가 되어있다.
- 배포 : 아직 미정, Docker를 사용하는 AWS 제품 또는 DigitalOcean 사용 예정 (AWS는 익숙하고 DigitalOcean은 쿠버네티스를 사용하고싶어서).
- 인프라 관련 기술 : Docker를 사용하는 이유는 추후 확장이 쉽게 가능하고 버전 태그를 사용하게 되면 롤백을 쉽게 할 수 있기 때문이다.
- APM : sentry : 비교적 저렴하여 초기 시작에 유용함. 슬랙과 Github 통합에 매우 유리하다.
- 애플리케이션 : React-Native : IOS와 Android 앱을 동시에 제작할 수 있다. 하드웨어에 접근하는 로직은 없을 것이고 (아마도) 러닝커브가 비교적 낮기 때문
- 어드민 : React : 익숙하다
- 통신 방식 : GraphQL : 클라이언트 관점에서 데이터를 Type safe하게 다룰 수 있고, 내부 상태 관리 같은 경우에도 Apollo를 사용해서 Object 단위로 컨트롤이 가능하다. 다만 인증, E2E, 서버사이드에서의 overfetch 등 백엔드에서 생각해야 할 문제가 조금 있다.
- 인증 방식 : JWT : 서버에 최대한 부담이 가지 않게 인증할 수 있다.
- 푸시 : FCM : 푸시를 FCM에서 한번에 관리할 수 있게 한다.
- 공지사항 및 강제 업데이트 : Remote Config : 이것으로 특정 부분에서 앱의 상태를 관리자가 직접 지정할 수 있다.
- 파일 저장소 : 미정. AWS를 사용하게 된다면 S3, 다른것을 사용한다면 Cloudflare의 R2 (매우 저렴하다)
- 호스팅 : 미정. AWS를 사용하게 된다면 Route53, 다른것을 사용한다면 Cloudflare
현재는 백앤드 로직을 제작 중이다. ERD는 일단 mermaidjs를 사용하여 작성 중이다. vscode로 미리보기를 할 수 있는데, 생각보다 퀄리티가 좋아서 조금 놀랬다. 아직 추가해야 할 테이블과 칼럼들이 많다. 1차 출시에 포함할 기능들을 확실하게 해야 할거같다.
계획한 시간까지 백앤드가 모두 제작되었으면 좋겠다. 그래야 어드민 사이트도 빨리 작업을 시작할 수 있다.
반응형
'메이킹 > 메이킹 준비' 카테고리의 다른 글
아두이노 I2C LCD 모듈 사용하기 (0) | 2021.05.03 |
---|---|
아두이노를 위한 Serial(UART) 통신 알아보기 (0) | 2020.08.20 |
아두이노를 위한 I2C 통신 알아보기 (0) | 2020.08.01 |
아두이노 프로 특징 및 사용법 (0) | 2020.04.20 |
카카오톡 학식봇 만들기-json 파일이란? (0) | 2020.02.25 |