IT기초

μ›Ήμ„œλ²„, μ•±μ„œλ²„, DBμ„œλ²„ – μ„œλ²„ μ’…λ₯˜ 정리

πŸ₯„ν…Œν¬ ν•œ μŠ€ν‘Ό 2026. 5. 25. 16:28

λͺ©μ°¨

  1. μ™œ μ„œλ²„ μ’…λ₯˜λ₯Ό μ•Œμ•„μ•Ό ν• κΉŒ?
  2. μ›Ήμ„œλ²„(Web Server)λž€?
  3. μ•±μ„œλ²„(Application Server)λž€?
  4. DBμ„œλ²„(Database Server)λž€?
  5. μ„Έ μ„œλ²„κ°€ ν•¨κ»˜ λ™μž‘ν•˜λŠ” 방식
  6. 각 μ„œλ²„μ˜ λŒ€ν‘œ μ†Œν”„νŠΈμ›¨μ–΄ 정리
  7. 정리

1. μ™œ μ„œλ²„ μ’…λ₯˜λ₯Ό μ•Œμ•„μ•Ό ν• κΉŒ?

IT 직ꡰ에 관심이 μƒκ²Όκ±°λ‚˜, κ°œλ°œμ„ 처음 배우기 μ‹œμž‘ν–ˆκ±°λ‚˜, ν˜Ήμ€ λ‹¨μˆœνžˆ 인터넷이 μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€ κΆκΈˆν•œ 뢄듀이라면 ν•œ 번쯀 이런 μ˜λ¬Έμ„ 가지셨을 κ²λ‹ˆλ‹€.

"μ„œλ²„κ°€ ν•œ μ’…λ₯˜κ°€ μ•„λ‹ˆλΌκ³ ? μ›Ήμ„œλ²„, μ•±μ„œλ²„, DBμ„œλ²„κ°€ λ‹€ λ‹€λ₯Έ 건가?"

λ§žμŠ΅λ‹ˆλ‹€. μ„œλ²„λŠ” ν•˜λ‚˜κ°€ μ•„λ‹™λ‹ˆλ‹€. μ‹€μ œλ‘œ μš°λ¦¬κ°€ μ›Ήμ‚¬μ΄νŠΈ ν•˜λ‚˜λ₯Ό μ΄μš©ν•  λ•Œ λ’€μ—μ„œλŠ” μ—¬λŸ¬ μ’…λ₯˜μ˜ μ„œλ²„κ°€ 각자의 역할을 λ‚˜λˆ μ„œ μ²˜λ¦¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

이 κΈ€μ—μ„œλŠ” κ°€μž₯ 기본이 λ˜λŠ” μ„Έ κ°€μ§€ μ„œλ²„, μ›Ήμ„œλ²„ / μ•±μ„œλ²„ / DBμ„œλ²„μ˜ μ—­ν• κ³Ό 차이λ₯Ό λͺ…ν™•ν•˜κ²Œ 정리해 λ“œλ¦½λ‹ˆλ‹€.

2. μ›Ήμ„œλ²„(Web Server)λž€?

μ •μ˜

μ›Ήμ„œλ²„λŠ” μ‚¬μš©μžμ˜ λΈŒλΌμš°μ €(ν΄λΌμ΄μ–ΈνŠΈ)λ‘œλΆ€ν„° μš”μ²­μ„ λ°›μ•„, 정적인 파일(HTML, CSS, 이미지, JavaScript λ“±)을 λ°˜ν™˜ν•˜λŠ” μ„œλ²„μž…λ‹ˆλ‹€.

μ‰¬μš΄ λΉ„μœ 

μ›Ήμ„œλ²„λŠ” μ‹λ‹Ήμ˜ μ•ˆλ‚΄ 직원과 κ°™μŠ΅λ‹ˆλ‹€. μ†λ‹˜μ΄ λ“€μ–΄μ˜€λ©΄ κ°€μž₯ λ¨Όμ € λ§žμ΄ν•˜κ³ , "μ–΄μ„œ μ˜€μ„Έμš”, 이μͺ½μœΌλ‘œ μ•‰μœΌμ„Έμš”"처럼 기본적인 μ•ˆλ‚΄λ₯Ό λ‹΄λ‹Ήν•©λ‹ˆλ‹€. λ³΅μž‘ν•œ μ£Όλ¬Έ μ²˜λ¦¬λŠ” μ£Όλ°©(μ•±μ„œλ²„)이 ν•˜μ§€λ§Œ, 첫 접점은 μ•ˆλ‚΄ 직원이 λ‹΄λ‹Ήν•˜λŠ” κ²ƒμ²˜λŸΌμš”.

μ›Ήμ„œλ²„κ°€ μ²˜λ¦¬ν•˜λŠ” 것듀

  • HTML 파일 전솑 (μ›ΉνŽ˜μ΄μ§€ ꡬ쑰)
  • CSS 파일 전솑 (μ›ΉνŽ˜μ΄μ§€ μŠ€νƒ€μΌ)
  • 이미지, λ™μ˜μƒ 파일 전솑
  • JavaScript 파일 전솑
  • HTTPS 처리 (λ³΄μ•ˆ μ—°κ²°)

λŒ€ν‘œ μ†Œν”„νŠΈμ›¨μ–΄

  • Nginx (μ—”μ§„μ—‘μŠ€): ν˜„μž¬ κ°€μž₯ 많이 μ‚¬μš©λ˜λŠ” κ³ μ„±λŠ₯ μ›Ήμ„œλ²„
  • Apache (μ•„νŒŒμΉ˜): 였랜 역사λ₯Ό κ°€μ§„ 전톡적인 μ›Ήμ„œλ²„

3. μ•±μ„œλ²„(Application Server)λž€?

μ •μ˜

μ•±μ„œλ²„λŠ” μ‚¬μš©μžμ˜ μš”μ²­ 쀑 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ²˜λ¦¬ν•˜λŠ” μ„œλ²„μž…λ‹ˆλ‹€. λ‹¨μˆœνžˆ νŒŒμΌμ„ μ „λ‹¬ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, μ—°μ‚°, 쑰건 처리, 데이터 가곡 λ“± μ‹€μ œ κΈ°λŠ₯을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

μ‰¬μš΄ λΉ„μœ 

μ•±μ„œλ²„λŠ” μ‹λ‹Ήμ˜ μ£Όλ°©μž…λ‹ˆλ‹€. μ†λ‹˜(ν΄λΌμ΄μ–ΈνŠΈ)이 "κΉ€μΉ˜μ°Œκ°œ 1인뢄 μ£Όμ„Έμš”"라고 μ£Όλ¬Έ(μš”μ²­)을 λ„£μœΌλ©΄, μ•ˆλ‚΄ 직원(μ›Ήμ„œλ²„)이 μ£Όλ°©(μ•±μ„œλ²„)에 μ „λ‹¬ν•˜κ³ , μ£Όλ°©μ—μ„œ μ‹€μ œλ‘œ μš”λ¦¬λ₯Ό λ§Œλ“€μ–΄λƒ…λ‹ˆλ‹€.

μ•±μ„œλ²„κ°€ μ²˜λ¦¬ν•˜λŠ” 것듀

  • 둜그인 / νšŒμ›κ°€μž… 처리
  • μž₯λ°”κ΅¬λ‹ˆ μΆ”κ°€, μ£Όλ¬Έ 처리
  • κ²Œμ‹œκΈ€ μž‘μ„±, μˆ˜μ •, μ‚­μ œ
  • μΆ”μ²œ μ•Œκ³ λ¦¬μ¦˜ 계산
  • 결제 둜직 처리

λŒ€ν‘œ ν”„λ ˆμž„μ›Œν¬ 및 μ–Έμ–΄

  • Node.js (JavaScript)
  • Spring Boot (Java)
  • Django / Flask (Python)
  • Laravel (PHP)
  • Ruby on Rails (Ruby)

μ•±μ„œλ²„λŠ” νŠΉμ • ν”„λ‘œκ·Έλž¨μ΄ μ•„λ‹ˆλΌ 개발 언어와 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ΄μš©ν•΄ 직접 λ§Œλ“œλŠ” μ„œλ²„λΌλŠ” 점이 μ›Ήμ„œλ²„μ™€ λ‹€λ¦…λ‹ˆλ‹€.

4. DBμ„œλ²„(Database Server)λž€?

μ •μ˜

DBμ„œλ²„(λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„)λŠ” 데이터λ₯Ό μ €μž₯ν•˜κ³  μ‘°νšŒν•˜λŠ” μ „μš© μ„œλ²„μž…λ‹ˆλ‹€. μ•±μ„œλ²„κ°€ "이 μ‚¬μš©μžμ˜ 정보λ₯Ό 쀘" λ˜λŠ” "이 데이터λ₯Ό μ €μž₯ν•΄"라고 μš”μ²­ν•˜λ©΄, DBμ„œλ²„κ°€ 이λ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.

μ‰¬μš΄ λΉ„μœ 

DBμ„œλ²„λŠ” μ°½κ³  κ΄€λ¦¬μΈμž…λ‹ˆλ‹€. μ‹λ‹ΉμœΌλ‘œ 치면 재료 μ°½κ³ λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—­ν• μž…λ‹ˆλ‹€. μ£Όλ°©(μ•±μ„œλ²„)이 "μ–‘νŒŒ 2개 κΊΌλ‚΄μ€˜"라고 ν•˜λ©΄ μ°½κ³  관리인이 κΊΌλ‚΄μ£Όκ³ , "였늘 μž…κ³ λœ 재료 λ„£μ–΄μ€˜"라고 ν•˜λ©΄ μ •λ¦¬ν•΄μ„œ λ³΄κ΄€ν•©λ‹ˆλ‹€.

DBμ„œλ²„κ°€ μ²˜λ¦¬ν•˜λŠ” 것듀

  • νšŒμ› 정보 μ €μž₯ 및 쑰회
  • κ²Œμ‹œκΈ€, λŒ“κΈ€ 데이터 관리
  • μ£Όλ¬Έ λ‚΄μ—­, 결제 기둝 보관
  • μƒν’ˆ 재고 관리
  • 둜그 데이터 μ €μž₯

κ΄€κ³„ν˜• DB vs λΉ„κ΄€κ³„ν˜• DB

DBλŠ” 크게 두 μ’…λ₯˜λ‘œ λ‚˜λ‰©λ‹ˆλ‹€.

κ΅¬λΆ„κ΄€κ³„ν˜• DB (RDBMS)λΉ„κ΄€κ³„ν˜• DB (NoSQL)
데이터 ν˜•μ‹ ν‘œ(ν…Œμ΄λΈ”) ν˜•μ‹ λ¬Έμ„œ, ν‚€-κ°’ λ“± λ‹€μ–‘
λŒ€ν‘œ μ œν’ˆ MySQL, PostgreSQL MongoDB, Redis
νŠΉμ§• μ •ν˜•ν™”λœ 데이터에 강함 λŒ€μš©λŸ‰, μœ μ—°ν•œ ꡬ쑰에 강함
μ‚¬μš© 예 νšŒμ›μ •λ³΄, μ£Όλ¬Έλ‚΄μ—­ μ±„νŒ… λ©”μ‹œμ§€, 둜그

5. μ„Έ μ„œλ²„κ°€ ν•¨κ»˜ λ™μž‘ν•˜λŠ” 방식

이제 μ„Έ μ„œλ²„κ°€ μ‹€μ œλ‘œ μ–΄λ–»κ²Œ ν˜‘λ ₯ν•˜λŠ”μ§€ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. **"μ‡Όν•‘λͺ°μ—μ„œ λ‘œκ·ΈμΈν•˜λŠ” κ³Όμ •"**을 예둜 λ“€μ–΄λ³Όκ²Œμš”.

[μ‚¬μš©μž] → μ•„이디/λΉ„λ°€λ²ˆν˜Έ μž…λ ₯ ν›„ λ‘œκ·ΈμΈ λ²„νŠΌ ν΄λ¦­

β‘  μ›Ήμ„œλ²„: μ‚¬μš©μžμ˜ λ‘œκ·ΈμΈ μš”청을 λ°›μ•„ μ•±μ„œλ²„λ‘œ μ „달

β‘‘ μ•±μ„œλ²„: "이 μ•„이디와 λΉ„λ°€λ²ˆν˜Έκ°€ μΌμΉ˜ν•˜λŠ” μ‚¬μš©μžκ°€ μžˆλŠ”μ§€ ν™•μΈν•΄μ€˜"
           → DBμ„œλ²„μ— μ‘°νšŒ μš”μ²­

β‘’ DBμ„œλ²„: μ €μž₯된 νšŒμ› λ°μ΄ν„°μ—μ„œ ν•΄λ‹Ή κ³„μ • κ²€μƒ‰
           → κ²°κ³Όλ₯Ό μ•±μ„œλ²„에 λ°˜ν™˜

β‘£ μ•±μ„œλ²„: λ‘œκ·ΈμΈ μ„±κ³΅/μ‹€νŒ¨ νŒλ‹¨ ν›„ κ²°κ³Ό μƒμ„±
           → μ›Ήμ„œλ²„λ‘œ μ „달

β‘€ μ›Ήμ„œλ²„: κ²°κ³Ό ν™”면을 μ‚¬μš©μž λΈŒλΌμš°μ €μ— μ „솑

[μ‚¬μš©μž] → λ‘œκ·ΈμΈ μ„±κ³΅ ν™”λ©΄ ν™•인
 
 

이처럼 μ„Έ μ„œλ²„λŠ” 각자의 역할을 λͺ…ν™•νžˆ λΆ„λ¦¬ν•΄μ„œ ν˜‘λ ₯ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ 역할을 λ‚˜λˆ„λŠ” μ΄μœ λŠ” 각 μ„œλ²„λ₯Ό λ…λ¦½μ μœΌλ‘œ κ΄€λ¦¬ν•˜κ³  ν™•μž₯ν•  수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

6. 각 μ„œλ²„μ˜ λŒ€ν‘œ μ†Œν”„νŠΈμ›¨μ–΄ 정리

μ„œλ²„ μ’…λ₯˜μ—­ν• λŒ€ν‘œ μ†Œν”„νŠΈμ›¨μ–΄
μ›Ήμ„œλ²„ 정적 파일 전달, μš”μ²­ 쀑계 Nginx, Apache
μ•±μ„œλ²„ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 처리 Node.js, Spring, Django
DBμ„œλ²„ 데이터 μ €μž₯ 및 쑰회 MySQL, PostgreSQL, MongoDB

7. 정리

였늘 배운 핡심 λ‚΄μš©μ„ μ •λ¦¬ν•©λ‹ˆλ‹€.

  • μ›Ήμ„œλ²„: λΈŒλΌμš°μ €μ™€ 직접 λŒ€ν™”ν•˜λ©° 정적 νŒŒμΌμ„ μ „λ‹¬ν•˜λŠ” μ„œλ²„ (Nginx, Apache)
  • μ•±μ„œλ²„: μ‹€μ œ κΈ°λŠ₯κ³Ό λ‘œμ§μ„ μ²˜λ¦¬ν•˜λŠ” μ„œλ²„ (Node.js, Spring, Django)
  • DBμ„œλ²„: 데이터λ₯Ό μ €μž₯ν•˜κ³  μ‘°νšŒν•˜λŠ” μ„œλ²„ (MySQL, MongoDB)
  • μ„Έ μ„œλ²„λŠ” λ…λ¦½μ μœΌλ‘œ μš΄μ˜λ˜λ©΄μ„œ μ„œλ‘œ ν˜‘λ ₯ν•΄ ν•˜λ‚˜μ˜ μ„œλΉ„μŠ€λ₯Ό μ™„μ„±ν•©λ‹ˆλ‹€.

μ²˜μŒμ—λŠ” 이 μ„Έ κ°€μ§€λ§Œ λͺ…ν™•νžˆ ꡬ뢄해도 μΆ©λΆ„ν•©λ‹ˆλ‹€. λ‚˜μ€‘μ— κ°œλ°œμ„ λ°°μš°κ±°λ‚˜ μ„œλ²„λ₯Ό 직접 닀뀄볼 λ•Œ, 였늘 배운 κ°œλ…μ΄ 큰 틀이 λ˜μ–΄μ€„ κ²ƒμž…λ‹ˆλ‹€.

λ‹€μŒ κΈ€μ—μ„œλŠ” IP μ£Όμ†Œμ™€ 도메인이 μ–΄λ–»κ²Œ μ—°κ²°λ˜λŠ”μ§€, 그리고 μš°λ¦¬κ°€ μ£Όμ†Œμ°½μ— URL을 μž…λ ₯ν–ˆμ„ λ•Œ μ–΄λ–€ 일이 μΌμ–΄λ‚˜λŠ”μ§€ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.