Development Artist

[웹 서비스 A-Z][Intro] #1 Frontend, Backend, Infra 본문

Project_Personal

[웹 서비스 A-Z][Intro] #1 Frontend, Backend, Infra

JMcunst 2023. 2. 25. 15:06
728x90
반응형

사내 포탈 웹 서비스를 개발하기 위해서 어떤 기술 스택을 사용할 것인지 '선택'이 필요했습니다.

 

또한, 어떤 '구조'로 서비스를 할 것인지에 대한 디자인도 필요했습니다.

 

이에 대한 고민들을 이번 글에서 풀어보도록 하겠습니다.

 

Frontend

프론트엔드는 웹 서비스의 UI 및 서버에 API 요청을 담당하고 있습니다.

 

현재 React가 프론트엔드 시장에서 가장 많이 쓰이는 기술 스택인데요, React는 진입장벽이 높아 혼자서 프론트엔드, 백엔드, 인프라를 하기에 모든 부분에서 여유가 없었습니다.

 

Vuejs는 디자인 패턴이 굉장히 직관적이고 처음 배우기에도 쉽기 때문에 이번 포탈 개발의 프론트엔드 스택으로 Vuejs를 선택하였습니다. 또한, 이전 회사에서 인턴을 할때 Vuejs를 조금 다뤄본 경험이 있어 고민이 크진 않았습니다.

 

Backend

백엔드는 흔히 우리가 보지 못하는 웹사이트의 프로세스를 다루는 부분이라고 하는데, 웹 서비스의 경우 API 요청을 처리하고 데이터를 가공 및 적재하는 역할을 하고 있습니다.

 

현재 Spring이 백엔드 시장에서 가장 많이 사용되는 프레임워크 인데요, Java 또는 Kotlin 으로 구성되어 있습니다.

 

저는 Python을 주로 다루기도 하였고, 이전 회사에서 Django 프레임워크를 통해 백엔드 API 개발을 한 경험이 있어서 이번 포탈 개발에서 Django를 채택하였습니다.

 

추후에 시간적 여유가 있다면 Java Spring으로 프로젝트를 하고 싶은 생각이 있습니다.

 

Infra

사내 포탈의 경우 사내망에서만 사용하면 되기 때문에 public IP를 가질 필요가 없습니다.

그리고 따로 클라우드 리소스를 사용하 필요 없이, 물리 서버가 있어서 esxi 베어메탈 하이퍼바이저 위에 VM을 올려서 작업하였는데, 

추후 Kubernetes로 이전하면서 Master 노드 1개와 Worker 노드 2개를 올려서 배포하였습니다.

서버 이미지를 docker.hub에 올리는 것이 아닌, Private Registry를 구축하여 배포시 사용하도록 하였습니다.

DB의 경우 SQL이냐 NoSQL이냐를 먼저 선택하였는데 추후 데이터 분석 및 포탈 모니터링 등 정형 데이터를 다룰 것을 예상하고 SQL을 선택했습니다. Postgresql 서버를 구축하고 Django와 연동하였습니다.

 

이정도로 설명하고 차차 디테일함을 살려보겠습니다.

728x90
반응형
Comments