봄설날 2024. 7. 24. 22:59

Node.js를 선택한 이유

처음엔 아이디어 회의에서 호응도가 괜찮았고, 어느정도 어떻게 구현해야 할 지 감이 잡히던 브레인스토밍 서비스로 방향이 굳어지는 모양이였다. 때문에 팀원들 모두 주제를 확정짓는다고 생각하고, 우리가 만드려는 브레인 스토밍 서비스에 필요한 기능을 더욱 자세히 해보는 시간을 가졌다. 그렇게 실시간 채팅을 이용하여 사용자들끼리 서로 소통을 가능하게 해야겠다는 의견이 나왔고 그에 맞추어 웹소켓 통신을 지원해주는 Node.js로 프레임워크를 선정하였다. 프레임워크 선정과 동시에 초기 세팅도 진행하며 프로젝트를 시작할 준비를 마쳤다.

 

하지만 이후 브레인스토밍 서비스를 구체화 하는 과정에서, '기능적인 부분보다 게임적인 재미요소를 넣으려는 시도가 너무 강한 것 같다', '실제 서비스로서의 사용성이 낮아보인다' 라는 피드백을 받게 되었다. 그에 따라 현재 진행중인 'AI 광고 이미지 생성'으로 주제를 변경하게 되었다.

 

하지만 이미 초기 세팅과 기초 공부를 마친 Node.js 를 포기하는 것이 싫었다. 그래서 새로운 주제에 웹소켓 통신이 필요 없을지라도 Node.js를 사용할 좋은 기회라고 생각하고 프레임워크를 유지하자는 의견이 나왔고 그렇게 Node.js를 사용하게 되었다.

 

Node.js 초기 세팅
깃허브 : https://github.com/2024-Summer-Bootcamp-Team-F/backend

 

Django로 바꾸게 된 이유

백앤드 팀원들 모두 각자 할당받은 task를 수행했고, 몇몇 API들이 성공적으로 구현되기 시작했다. 하지만 git을 이용해 코드를 합치던 도중 모든 팀원들의 디렉토리 구조가 다르다는 사실을 알았다. 아무래도 자유도가 높은 Node.js를 모두 다 처음 사용하는 팀원들끼리 각자 진행하다보니 이러한 일이 생긴 것이다.

서로 계속 맞춰가며 구조를 정해놓고 프로젝트를 진행하는 방법도 있었지만, 아무래도 6주라는 시간이 정해져있는 부트캠프인 만큼 나중에 이러한 문제가 또 생기면 개발 속도에 차질이 생길 수 있다고 판단한 우리는 그래도 디랙토리 구조가 정해져 있고, 개발 경험이 있는 Django로 프레임워크를 변경하게 되었다.


결론적으로 두개 모두 채험해 볼 수 있어서 좋았다. 둘 다 해보니 차이점을 알기 쉬웠고 서로 다른 프레임워크지만 오히려 두개를 모두 이해하는데에 도움이 되었다.

 

Node.js는 MVC 패턴을, Django는 MVT을 사용한다는 차이점도 있다. 따로 정리를 해보았다.

https://silkair001.tistory.com/16

 

MVC/MVT 패턴이란??

공부를 하다보니 MVC/MVT 패턴이 계속 언급되었다. 기본적으로 이 두 패턴 디자인 패턴들 중 하나이고 서로 거의 유사하다. 이 둘에 대해 자세히 알아보자!!우선 디자인 패턴을 잠깐 알고 넘어가자

silkair001.tistory.com