기술 스택 선정
다음 사진은 현재 구상 중인 나만무 프로젝트 아키텍처 3.0이다. 무작정 신기술을 사용하기보다는 목적에 맞는 기술을 사용하는 것이 중요하다 배웠고, 실천하려고 한다.
Front-End
아무리 생각해도 Next.js를 쓸 필요성을 찾지 못했다. 현재 프로젝트가 정적 사이트를 생성하려는 것도 아니고 검색 엔진 최적화(SEO)가 필요한 것도 아니다. 서버 측에서 처리할 작업이 많기 때문에 굳이 프론트 측에서 서버 부담을 늘려줄 이유도 없다. 그래서 그냥 React.js를 사용하기로 했다.
Back-End
우선 나를 포함한 팀원들 모두가 java가 낯설고 백엔드가 거의 처음이기 때문에 백엔드 스택을 선택하는 데 고심했다. 부족한 개발 시간과 java의 러닝 커브를 고려했고, JS의 낮은 난이도와 프론트와 백을 같이 개발할 수 있다는 장점 그리고 비동기 처리에 특화되어 실시간 작업이 매우 빠른 점. 이를 고려하여 spring보다 높은 인기를 자랑하는 nodejs를 백엔드 스택으로 선택했다.
Server
서버는 EC2 상에서 도커 컨테이너를 띄우고 프론트/백/DB/프록시서버 로 나눌 계획이다. 서로 격리된 환경을 갖추도록 해서 유지보수를 편리하게 하고 각 컨테이너 간의 영향을 최소화할 수 있다. 또한 컨테이너는 독립적으로 개별 확장이 가능해진다. 필요에 따라 특정 컨테이너를 별도로 확장하거나 축소할 수 있다. 이는 트래픽의 증가나 감소에 따라 서비스의 확장성을 유지하고 자원을 효율적으로 관리하는 데 도움이 된다.
또한, 각 역할을 분리하여 개별적으로 관리하면 개발과 배포가 단순화된다. 컨테이너 단위로 개발을 진행하고 테스트할 수 있으며, 각 컨테이너를 독립적으로 배포하거나 업데이트할 수 있다. 이는 개발과 운영의 분리를 용이하게 하고, 배포 과정에서 생길 수 있는 문제를 최소화할 수 있다.
현재로서는 도커 컨테이너로 분리하는 것이 합리적인 선택같긴 한데, 혹시 몰라서 내일 멘토님과의 화상 회의에서 자세히 이야기해보려고 한다.
DB
데이터베이스는 아직 모르겠다. 챗지피티에게 물어보니 몽고DB가 대규모 데이터 처리에 적합하다고 한다. 일단 이걸 멘토님에게도 여쭤봐야겠다.
'프로젝트 > 나만무' 카테고리의 다른 글
[나만무] 현재 프로젝트 아키텍처 구조v5.0 (0) | 2023.07.10 |
---|---|
[나만무] ChatGPT 과금 요소 (0) | 2023.07.10 |
[나만무] NGINX를 도입한 이유 (0) | 2023.07.09 |
[나만무] 새로 배운 개념 (0) | 2023.07.07 |
[FE] React.js & Next.js 초기 트러블슈팅 (0) | 2023.07.06 |