커리큘럼
home
React
home

[스파르타커뮤클럽] 스파르타 수료생을 위한 똑똑한 커뮤니티

Specialty
Node.js
FE Github
Specialty
날짜
여러 사람들과 같이 코딩하고싶을 때 !
다양한 이벤트 알림을 받고 싶을 때 !
Sparta Commu-Club 은 여러분과 함께 공부할 것입니다.

Sparta Commu-Club

서비스 이용하기 : 링크
GitHub : 링크

서비스 아키텍처

기술적 의사결정

사용 기술
기술 설명
Nest.js
express 와 비교했을 때 객체지향 프로그래밍에 보다 적합하다고 생각하였고, 객체지향 프로그래밍의 특징인 추상화, 캡슐화, 상속, 다형성을 통해 코드를 보다 유연하고 변경을 용이하게 할 수 있는 장점과 반복되는 코드를 최소화 함에 따라 코드의 가독성이 좋아지는 점이 크다고 생각하여 Nest.js 를 선택하게 되었습니다.
TypeORM
복잡한 모델간의 관계를 형성하기 용이하고 유지보수를 생산적인 방법으로 할 수 있으며 객체와 관계형 데이터베이스를 연결시켜주는 ORM인 TypeORM을 사용하게 되었습니다.
Redis
인메모리 기반의 키: 값 형태의 데이터베이스로써 캐싱, 세션관리 등의 관리가 편한점과 휘발성 데이터를 저장할 공간으로써 Redis 를 사용하게 되었습니다.
AWS S3
아마존에서 제공하는 객체 스토리지로써 저장용량이 무한대이고, 파일저장에 최적화 되어 있으며, 용량을 추가하거나 성능을 높이는 작업이 필요하지 않고 별도의 클라이언트 설치 없이 HTTP 프로토콜로 파일 업로드 및 다운로드가 가능하다는 점을 이유로 사용하게 되었습니다.
nodemailer
MVP 기능중 하나인 메일알림 기능을 구현하기 위해 Nodemailer를 사용하게 되었습니다.
CI/CD
GitHub Actions와 Amazon EC2, 도커를 사용해서 지속적 통합과 배포를 실현하므로써, 프로젝트를 늘 릴리즈가 가능한 상태로 두고 개발하여 재배포로 인한 작업 시간을 줄였습니다.

트러블슈팅

더미데이터 생성

CI/CD

AuthGuard

배포 AMAZON EC2 서버로 이전