동아리 프로젝트 :: 스터디 웹앱 :: (1)

phyyou·2020년 10월 18일
0

백엔드가 이정도는 해줘야 함 이라는 글을 보고 결정해 본 사항들이다.

  • 버전 관리 시스템 : git, github
    • 많이 쓴다
  • 이슈 트래커 : GitHub Issues & Projects
    • 무료
  • API 설계 원칙 : HTTP API
    • 간편함
  • 직렬화 포맷 : JSON
    • Django Rest Framework 와 Node js 를 이어주고, React와 통신하기 위해
  • 인증 정보의 위치 : Authorization 헤더
    • 안전함
  • 인증 스키마 : OAuth 2.0 :: djangorestframework-oauth
    • 헤로쿠로 배포를 하며 Cloudflare를 CDN으로 연결할 것이므로 HTTPS 사용이 간편하여 OAuth를 사용함.
  • 프로그래밍 언어 : Python + Javascript(Node.js)
    • Python은 내가 쓰는 언어, Javascript는 django의 실시간 앱 구현의 어려움으로 Node.js의 socket.io를 사용하여 실시간 앱을 개발하기 위해
  • 웹 프레임워크 : django + express
    • django는 내가 써봤음, express는 위의 javascript와 동일
  • 의존성 관리 도구 : conda, npm
    • conda를 많이 사용해봄. npm은 노드의 기본 패키지 매니저
  • Compute Engine : 클라우드 플랫폼(헤로쿠) + AWS S3
    • 헤로쿠가 간편하게 배포할 수 있고, HTTPS를 기본 제공, 또한 내가 사용해 봄.
    • 헤로쿠로는 정적 파일들의 배포가 힘듬으로 S3를 이어붙임
  • 데이터베이스 : RDB(Postgresql)
    • heroku의 기본 DB 및 편함.
  • 배포 자동화 여부 : X
    • 익숙하지 않음, 또한 헤로쿠의 배포는 깃으로 푸시만 하면 됨으로 딱히 힘들지 않음. 하지만 나중에 바뀔 여지 존재.
  • 어플리케이션 구조 : django의 기본 구조 및 node는 결정 보류
    • django는 기본 구조가 명확함. node는 지금 아직 사용이 시작이 안됐으므로 나중에 결정
  • request data validation 룰 : django-rest-framework, node도 보류
    • django-rest-framework 에서 제공하는 validate툴의 존재에 따라 사용함.4
  • 시각 데이터 저장 방식 : django의 기본 포맷(Asia/Seoul 기준의 시각 문자열)
    • 한국에서의 서비스와 django의 timezone의 간편함.
  • JSON key 네이밍 룰 : camelcase
  • gitignore : git에서 특정 파일을 무시하도록 만들기 위해 .gitignore라는 파일을 만들어서 무시 대상들을 목록화시킬 수 있다. 내 경우 gitignore.io라는 서비스의 도움을 받아서 작성하며, 여기선 Python/Windows/macOS/PyCharm+all을 선택해서 .gitignore 파일에 포함시킬 것이다. 이후에 회고를 진행하면서 다시 이야기해볼 것이다. :: city7310의 블로그 글
  • 사용할 라이브러리 :: 나중에 따로 글을 적을 예정 ㅇㅇ
  • 민감한 데이터 관리 방식
    데이터베이스 접속 비밀번호같은 민감한 데이터들은, 아무리 private repository라고 하더라도 소스코드 바깥에서 관리하는 게 좋다. 이전에 AWS well architecture에 관한 글을 읽었을 때, '깃허브가 해킹당하면 private도 의미가 없다'라는 내용이 있었다. 이러한 데이터들을 어디에 관리할지는 사람마다 다른데, 이 내용은 별도의 챕터로 분리하는 것으로 하고, 당장은 환경 변수에서 관리하도록 하자. heroku의 환경변수로 관리할 예정이다. :: city7310의 블로그 글
profile
박효영

0개의 댓글