[Backend] 맥날덕후가 해석한 3tier 아키텍처 + Nginx

makiito__·2025년 4월 25일
2
post-thumbnail

드디어 금요일입니다 여러분! 캐신나네요.

어제는 제가 오래 다녔던 스타트업에서 개발 컨퍼런스를 진행해서 다녀왔는데요. 저랑 같이 일했던 천재 서버 개발자 밥께서(닉네임이 bob) 이번 벨로그 주제를 추천해주셨습니다.

어제 서버 속성과외를 해주셔서, 배운 내용대로 3tier 아키텍처와, Nginx에 대한 개념을 쉽게 작성해보려합니다.
백엔드란.. 뭔가 배울수록 재밌는 것 같네요.. ^^

🍔 햄버거 가게로 이해하는 3-Tier 아키텍처!

이 구조를 실무에서 이해할 때, 음식점(햄버거 가게)으로 비유하면 아주 직관적으로 이해할 수 있습니다.

💁🏻‍♀️ 맥날에서 배우는 3-Tier 아키텍처:

  • Web Server = 키오스크, 고객(유저)이 와서 가장 먼저 마주하는 화면. 주문을 받고, 어떤 메뉴를 요청했는지 알바에게 전달함. 햄버거나 콜라 같은 정적인 건 바로 응답해주는 역할도 가능

  • WAS = 알바 직원, 실제로 햄버거를 조리하는 사람 (비즈니스 로직 수행)키오스크가 받은 주문서를 보고 “치즈버거 + 감자튀김 세트”를 만듦. 혼자선 안 되고, 재료가 필요함

  • DB = 냉장고(창고), 모든 재료(데이터)가 저장되어 있는 곳. 알바는 이 창고에서 패티, 빵, 감자 등을 꺼내 조리함.

즉,고객이 주문📨 → 키오스크(Web 서버)가 받고 🖥️ → 알바(WAS)가 만들고🧑🏻‍🍳 → 재료(DB)에서 꺼내오는 구조입니다.🚛 요래 이해하니 쉽더군요.


🌀 그럼 Nginx는 뭐냐고요?

Nginx는 웹 서버이자 리버스 프록시 서버입니다. 맥날로 치자면?
👉 키오스크 시스템 + 주문 분산 관리자!라고 볼 수 있어요.

  • 줄이 길어질 때 키오스크가 "2번 알바에게 넘겨요~" 라고 분산해서 주문을 넘김
  • 너무 주문이 몰리면 순서를 정리하거나, 간단한 건 바로 응답 (ex. 콜라만 주문 등)
  • 효율적으로 주방에 요청을 분산시켜주는 역할

☁️ 3-tier 아키텍처와 AWS와는 어떤 관계가 있을까?

우리가 사용하는 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라는 것~

디자이너 입장에서 AWS까지 연결해서 이해해보자면,

  • "이 요청 어디서 터졌지?" → Web 서버(Nginx)냐, WAS냐, DB냐 판단 가능
  • "S3는 어디 들어가?" → 정적 파일 저장소로 Web 서버보다 더 빠르게 처리
  • "CloudFront는?" → S3 + Nginx처럼 정적 콘텐츠를 더 빠르게 전송하는 CDN 역할

이렇게 이해해볼 수 있습니다.

📦 디자이너가 이걸 알아야 할 이유는?

  • "왜 첫 로딩은 빠른데 로그인 누르면 느려요?" → 아하, WAS가 바쁜 거구나!
  • "왜 서버 터졌대요?" → Nginx에서 분산을 못 해줘서!
  • "왜 이미지는 바로 뜨는데 버튼 반응은 늦어요?" → 정적 파일 vs 동적 로직 차이!

라고 이해할 수 있습니다. 다양한 에러케이스를 심도있게 이해할 수 있다는거죠! 👊🏻

💡 이 개념을 안다면

API 흐름이나 에러코드(5xx)에 대한 이해도가 높아지면서, 디자인 설계할 때 어디서 병목이 생기는지 예측할 수 있어요. 특히 유저에게 앞에 설명한 에러 케이스를 보여주는 것은 굉장히 치명적이기 때문에, 백엔드에 대한 이해는 필수랍니다. 📓

✍️ 정리!

오늘 배운 내용대로 정리하자면, 3-tier 아키텍처는 Web server / WAS (Web application server) / DB (Data base)로 구분되며, Web server는 요청을 받고, WAS 실제 로직을 처리하고, DB는 데이터를 저장해주고 조회해주는 냉장고 같은 역할이라고 보시면 됩니다!

🔥 마무리!

오늘은 출근하면서 써봤는데요. 백엔드는 뭔가 그 구조만 파악하면 나머지랑 연관되면서 이해하기 쉬운 것 같습니다. 하핫 이게 백엔드의 매력인가요 . . ^^ 다음에도 쉽게 배우는 백엔드편으로 돌아오겠습니다. 제 서버 스싱이신 밥 ,, 샤라웃 ,,🍚🍚

그럼 다음 편에서 또 만나요! (불금 즐기러갈거셈ㅎㅎ)

profile
자본주의 프로덕트 디자이너입니다. 포스팅이 느리다면.. 독촉댓글 남겨주십시오.

2개의 댓글

comment-user-thumbnail
2025년 4월 25일

좋은 글 감사합니다 :)
점점 백엔드 개발자가 되어가는 모습이 아주 조씁니다....

1개의 답글