드디어 금요일입니다 여러분! 캐신나네요.
어제는 제가 오래 다녔던 스타트업에서 개발 컨퍼런스를 진행해서 다녀왔는데요. 저랑 같이 일했던 천재 서버 개발자 밥께서(닉네임이 bob) 이번 벨로그 주제를 추천해주셨습니다.
어제 서버 속성과외를 해주셔서, 배운 내용대로 3tier 아키텍처와, Nginx에 대한 개념을 쉽게 작성해보려합니다.
백엔드란.. 뭔가 배울수록 재밌는 것 같네요.. ^^
이 구조를 실무에서 이해할 때, 음식점(햄버거 가게)으로 비유하면 아주 직관적으로 이해할 수 있습니다.
💁🏻♀️ 맥날에서 배우는 3-Tier 아키텍처:
Web Server = 키오스크, 고객(유저)이 와서 가장 먼저 마주하는 화면. 주문을 받고, 어떤 메뉴를 요청했는지 알바에게 전달함. 햄버거나 콜라 같은 정적인 건 바로 응답해주는 역할도 가능
WAS = 알바 직원, 실제로 햄버거를 조리하는 사람 (비즈니스 로직 수행)키오스크가 받은 주문서를 보고 “치즈버거 + 감자튀김 세트”를 만듦. 혼자선 안 되고, 재료가 필요함
DB = 냉장고(창고), 모든 재료(데이터)가 저장되어 있는 곳. 알바는 이 창고에서 패티, 빵, 감자 등을 꺼내 조리함.
즉,고객이 주문📨 → 키오스크(Web 서버)가 받고 🖥️ → 알바(WAS)가 만들고🧑🏻🍳 → 재료(DB)에서 꺼내오는 구조입니다.🚛 요래 이해하니 쉽더군요.
Nginx는 웹 서버이자 리버스 프록시 서버입니다. 맥날로 치자면?
👉 키오스크 시스템 + 주문 분산 관리자!라고 볼 수 있어요.
우리가 사용하는 3-Tier 아키텍처는 AWS 안에서도 똑같이 구현됩니다.
예를 들어,
1) Web Server (Nginx) : AWS EC2에 설치된 Nginx or AWS ELB (로드밸런서)
2) WAS : AWS EC2 / ECS / Lambda 등으로 구성된 애플리케이션 서버
3) DB : AWS RDS (MySQL, PostgreSQL 등 관계형 DB 서비스)
즉, AWS를 쓰면 서버도, 데이터베이스도, 요청 분산도 전부 클라우드에서 관리 가능해요. 그래서 이름이 AWS Cloud라는 것~
이렇게 이해해볼 수 있습니다.
라고 이해할 수 있습니다. 다양한 에러케이스를 심도있게 이해할 수 있다는거죠! 👊🏻
API 흐름이나 에러코드(5xx)에 대한 이해도가 높아지면서, 디자인 설계할 때 어디서 병목이 생기는지 예측할 수 있어요. 특히 유저에게 앞에 설명한 에러 케이스를 보여주는 것은 굉장히 치명적이기 때문에, 백엔드에 대한 이해는 필수랍니다. 📓
오늘 배운 내용대로 정리하자면, 3-tier 아키텍처는 Web server / WAS (Web application server) / DB (Data base)로 구분되며, Web server는 요청을 받고, WAS 실제 로직을 처리하고, DB는 데이터를 저장해주고 조회해주는 냉장고 같은 역할이라고 보시면 됩니다!

오늘은 출근하면서 써봤는데요. 백엔드는 뭔가 그 구조만 파악하면 나머지랑 연관되면서 이해하기 쉬운 것 같습니다. 하핫 이게 백엔드의 매력인가요 . . ^^ 다음에도 쉽게 배우는 백엔드편으로 돌아오겠습니다. 제 서버 스싱이신 밥 ,, 샤라웃 ,,🍚🍚
그럼 다음 편에서 또 만나요! (불금 즐기러갈거셈ㅎㅎ)
좋은 글 감사합니다 :)
점점 백엔드 개발자가 되어가는 모습이 아주 조씁니다....