구조 이해하고 가기
본격적으로 사이트를 만들기 전에, 서비스는 어떤 구조들로 만들 수 있는지 알아볼 것입니다.
그리고 그 중 한가지 구조를 선택해서 진행하겠습니다.
① 화면만 있는 사이트 | (Frontend만) | 데이터 저장이 필요 없는 형태. 계산기, PDF 변환기, 이미지 리사이즈 툴 등. | ★☆☆☆☆ |
② 화면 + 외부 데이터를 불러오는 사이트 | (Frontend + 서버리스 + 외부 데이터) | 직접 서버를 만들지 않아도, 자동으로 외부 데이터를 불러와 보여주는 방식예: 날씨 정보, 환율 정보 등. | ★★☆☆☆ |
③ 직접 서버를 운영하는 사이트 | (Frontend + 서버 + 외부 데이터) | 내 서버를 직접 운영해서 데이터를 불러오거나 가공해 보여주는 방식
예: 뉴스 요약, 게임 전적 등. | ★★★★☆ |
④ 직접 서버를 운영하면서 데이터를 저장하는 사이트 | (Frontend + 서버 + 데이터베이스) | 사용자의 글이나 정보가 저장되는 서비스
예: 회원가입, 게시판, 댓글 같은 기능이 있는 사이트. | ★★★★★ |
①은 가장 단순한 형태로, 화면만 존재하는 구조입니다.
사용자가 뭔가 입력하면 결과를 보여주지만, 데이터를 저장하지는 않습니다.
단위 변환기나 PDF 변환기 같은 사이트들이 여기에 속합니다.
예를 들어 단위 변환기, 계산기, PDF 변환기 같은 서비스가 이 구조에 속합니다.
데이터를 저장할 필요가 없기 때문에 구현이 가장 쉽습니다.
②는 화면 + 외부 데이터를 불러오는 사이트로 조금 더 발전된 형태입니다.
서버를 직접 운영하지 않아도, 자동으로 외부 데이터를 불러올 수 있습니다.
예를 들어 날씨 정보, 환율, 뉴스 데이터를 불러와 화면에 표시할 수 있습니다.
이런 방식을 서버리스(Serverless) 구조라고 부릅니다.
“서버 없이도 서버처럼 동작하는 환경”을 이용하는 개념입니다.
비용이 거의 들지 않고, 관리가 간편해 개인 개발자나 사이드 프로젝트에 잘 맞습니다.
③은 실제 클라우드에서 인스턴스를 띄워 서버를 운영하는 구조입니다.
서버를 직접 띄우면 캐싱 등 더 많은 것을 할 수 있지만, 난이도와 유지보수 부담이 커집니다.
④는 데이터베이스까지 직접 관리하는 구조입니다.
회원가입, 게시판, 댓글 시스템처럼 데이터의 저장과 조회가 필수인 서비스가 여기에 속합니다.
커뮤니티나 실제 우리가 사용하는 상용 서비스들이 여기에 속합니다.
우리는 ②번 방식으로 진행할 것입니다.
접근성 측면에서 부담스럽지 않고 편리합니다. 할 수 있는 것도 ③번 방식과 크게 다르지 않습니다.
또한 ②번 방식으로 사이트를 구축해보면 ③,④번 방식의 진입장벽을 낮출 수 있습니다.