day32 πŸŒ•

μž₯λ―ΈΒ·2022λ…„ 7μ›” 15일
0

였늘의 μ„±κ³Ό

λͺ©λ‘ 보기
32/129

μŠ€ν”„λ§ MVC 1편 - λ°±μ—”λ“œ μ›Ήκ°œλ°œ ν•΅μ‹¬κΈ°μˆ  μ„Ήμ…˜ 0, 1 μˆ˜κ°•

μ„Ήμ…˜ 0. μ†Œκ°œ μˆ˜κ°• μ™„λ£Œ!!
μ„Ήμ…˜ 1. μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 이해 μˆ˜κ°• μ™„λ£Œ!!


Web Server

  • HTTP 기반으둜 λ™μž‘
  • 정적 λ¦¬μ†ŒμŠ€ 제곡 (정적 HTML, CSS, JS, 이미지, μ˜μƒ)

Web Application Sever

  • HTTP 기반으둜 λ™μž‘
  • μ›Ή μ„œλ²„ κΈ°λŠ₯ 포함 (정적 λ¦¬μ†ŒμŠ€ 제곡 κ°€λŠ₯)
  • ν”„λ‘œκ·Έλž¨ μ½”λ“œλ₯Ό μ‹€ν–‰ν•΄μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 둜직 μˆ˜ν–‰
    • 동적 HTML, HTTP API(JSON)
    • μ„œλΈ”λ¦Ώ, JSP, μŠ€ν”„λ§ MVC

μ›Ή μ‹œμŠ€ν…œ ꡬ성

  • WAS, DB
    WAS(정적 λ¦¬μ†ŒμŠ€, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 둜직 λͺ¨λ‘ 제곡 κ°€λŠ₯)와 DBλ§ŒμœΌλ‘œλ„ μ‹œμŠ€ν…œμ„ ꡬ성할 수 μžˆλ‹€. ν•˜μ§€λ§Œ 그러면 WASκ°€ λ„ˆλ¬΄ λ§Žμ€ 역할을 λ‹΄λ‹Ήν•΄μ„œ μ„œλ²„μ— κ³ΌλΆ€ν•˜κ°€ 올 수 μžˆλ‹€. WAS μž₯μ•  μ‹œ 였λ₯˜ 화면도 λ…ΈμΆœλ˜μ§€ μ•ŠλŠ”λ‹€.

  • WEB, WAS, DB
    정적 λ¦¬μ†ŒμŠ€λŠ” μ›Ή μ„œλ²„κ°€ μ²˜λ¦¬ν•˜κ³ , μ›Ή μ„œλ²„λŠ” 동적인 μ²˜λ¦¬κ°€ ν•„μš”ν•˜λ©΄ WAS에 μš”μ²­μ„ μœ„μž„ν•œλ‹€. WASλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 둜직 처리λ₯Ό μ „λ‹΄ν•œλ‹€.
    WASλ‚˜ DB에 μž₯μ• κ°€ λ°œμƒν•  μ‹œ WEB μ„œλ²„κ°€ 였λ₯˜ 화면을 μ œκ³΅ν•  수 μžˆλ‹€.


Servlet

μ„œλΈ”λ¦Ώμ„ μ§€μ›ν•˜λŠ” WASλ₯Ό μ‚¬μš©ν•  경우 κ°œλ°œμžλŠ” HTTP μŠ€νŽ™μ„ 맀우 νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€. 의미 μžˆλŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 둜직만 μž‘μ„±ν•˜λ©΄ λœλ‹€.

  • HTTP μš”μ²­ μ‹œ
    WASλŠ” Request, Response 객체λ₯Ό μƒˆλ‘œ λ§Œλ“€μ–΄μ„œ μ„œλΈ”λ¦Ώ 객체λ₯Ό ν˜ΈμΆœν•œλ‹€. κ°œλ°œμžλŠ” Request κ°μ²΄μ—μ„œ HTTP μš”μ²­ 정보λ₯Ό κΊΌλ‚΄ νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€. λ˜ν•œ, Response 객체에 HTTP 응닡 정보λ₯Ό μž…λ ₯ν•˜λ©΄ WASκ°€ Response 객체에 λ‹΄κ²¨μžˆλŠ” λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ HTTP 응닡 정보λ₯Ό 생성해 μ€€λ‹€.

Servlet Container

  • ν†°μΊ£μ²˜λŸΌ μ„œλΈ”λ¦Ώμ„ μ§€μ›ν•˜λŠ” WASλ₯Ό μ„œλΈ”λ¦Ώ μ»¨ν…Œμ΄λ„ˆλΌκ³  ν•œλ‹€.
  • μ„œλΈ”λ¦Ώ μ»¨ν…Œμ΄λ„ˆλŠ” μ„œλΈ”λ¦Ώ 객체λ₯Ό 생성, μ΄ˆκΈ°ν™”, 호좜, μ’…λ£Œν•˜λŠ” 생λͺ…μ£ΌκΈ°λ₯Ό κ΄€λ¦¬ν•œλ‹€.
  • μ„œλΈ”λ¦Ώ κ°μ²΄λŠ” μ‹±κΈ€ν†€μœΌλ‘œ κ΄€λ¦¬ν•œλ‹€. (곡유 λ³€μˆ˜ μ‚¬μš©μ— μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.)

Thread Pool

ν•„μš”ν•œ μŠ€λ ˆλ“œλ₯Ό μŠ€λ ˆλ“œ 풀에 λ³΄κ΄€ν•˜μ—¬ κ΄€λ¦¬ν•œλ‹€.
μŠ€λ ˆλ“œκ°€ ν•„μš”ν•˜λ©΄ 이미 μƒμ„±λ˜μ–΄ μžˆλŠ” μŠ€λ ˆλ“œλ₯Ό μŠ€λ ˆλ“œ ν’€μ—μ„œ κΊΌλ‚΄ μ‚¬μš©ν•œλ‹€.
μ‚¬μš©μ„ μ’…λ£Œν•˜λ©΄ ν•΄λ‹Ή μŠ€λ ˆλ“œλ₯Ό μŠ€λ ˆλ“œ 풀에 λ°˜λ‚©ν•œλ‹€.

➑️ μŠ€λ ˆλ“œκ°€ 미리 μƒμ„±λ˜μ–΄ μžˆμœΌλ―€λ‘œ μŠ€λ ˆλ“œλ₯Ό μƒμ„±ν•˜κ³  μ’…λ£Œν•˜λŠ” λΉ„μš©μ΄ μ ˆμ•½λ˜κ³ , 응닡 μ‹œκ°„μ΄ 빨라진닀.


WAS의 λ©€ν‹° μŠ€λ ˆλ“œ 지원

λ©€ν‹° μŠ€λ ˆλ“œμ— λŒ€ν•œ 뢀뢄은 WASκ°€ μ²˜λ¦¬ν•˜λ―€λ‘œ κ°œλ°œμžλŠ” λ©€ν‹° μŠ€λ ˆλ“œ κ΄€λ ¨ μ½”λ“œλ₯Ό 신경쓰지 μ•Šμ•„λ„ λœλ‹€.
κ°œλ°œμžλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λ“―μ΄ μ†ŒμŠ€ μ½”λ“œλ₯Ό κ°œλ°œν•  수 μžˆλ‹€.


Sever Side Rendering

  • HTML μ΅œμ’… κ²°κ³Όλ₯Ό μ„œλ²„μ—μ„œ λ§Œλ“€μ–΄ μ›Ή λΈŒλΌμš°μ €μ— μ „λ‹¬ν•œλ‹€.
  • 주둜 정적인 화면에 μ‚¬μš©ν•œλ‹€.

Client Side Rendering

  • μžλ°” 슀크립트λ₯Ό μ‚¬μš©ν•΄ HTML κ²°κ³Όλ₯Ό μ›Ή λΈŒλΌμš°μ €μ—μ„œ λ™μ μœΌλ‘œ μƒμ„±ν•˜κ³  μ μš©ν•œλ‹€.
  • 주둜 동적인 화면에 μ‚¬μš©ν•œλ‹€. (예: ꡬ글 지도, Gmail, ꡬ글 μΊ˜λ¦°λ” λ“±)

인쀀이 λ§Œλ‚˜μ„œ 곡뢀 (동기, 비동기 λ°œν‘œ 및 μ„œλ‘œ μ •λ¦¬ν•œ ν† ν”½ 비ꡐ)

였늘 λ‚΄κ°€ μ€€λΉ„ν•œ 건 동기, 비동기!!! 사싀 μ–΄μ œ 곡뢀λ₯Ό μ œλŒ€λ‘œ λͺ» ν•˜κ³  κ°€μ„œ 잘 μ„€λͺ…ν•  수 μžˆμ„μ§€ κ±±μ •ν–ˆλŠ”λ°... 생각보단 μˆœμ‘°λ‘œμ› μŒ.
동기, 비동기도 κ½€ 였래 전에 μ •λ¦¬ν•œ 거라 κΉŒλ¨Ήμ—ˆλŠ”λ° λ‹€μ‹œ μ΄λ ‡κ²Œ λ³΅μŠ΅ν•˜λ‹ˆ μ’‹μ•˜λ‹€.
λ§ν•˜λ©΄μ„œ λ‚˜λ„ μ’€ ν—·κ°ˆλ ΈλŠ”λ° γ…‹γ…‹ κ·Έλž˜λ„ 정리됨.

⬆️ 이건 인쀀이가 ν•΄μ€€ ν”Όλ“œλ°±.

μ•žμœΌλ‘œλŠ” μ €λ ‡κ²Œ ν† ν”½ λ°œν‘œν•  λ•Œλ§ˆλ‹€ ν”Όλ“œλ°± 받을 μ˜ˆμ •. 양식은 μ œκ°€ λ§Œλ“€μ—ˆμ–΄μš”. 예쁘죠?

인쀀이가 λ°œν‘œν•œ λ‚΄μš©μ€ μŠ€ν”„λ§. 사싀 이 토픽은 아직 정리λ₯Ό μ•ˆ ν•΄μ„œ μ™„μ „νžˆ μƒˆλ‘œμš΄ λ‚΄μš©μ„ 듀은 κ±°λ‚˜ λ§ˆμ°¬κ°€μ§€μ˜€λ‹€. κ·Έλž˜μ„œ λ°”λ‘œ μ΄ν•΄ν•˜κΈ΄ μ’€ μ–΄λ €μ› μŒ...

κ·Έλž˜λ„ μ—­μ‹œ λ§Œλ‚˜μ„œ κ³΅λΆ€ν•˜λ‹ˆ μž¬λ°Œλ„€μš”. κ΅Ώ. μ‚¬λžŒμ€ μ—­μ‹œ 밖에 λ‚˜κ°€μ•Ό 돼...

μ•„ μ˜€λŠ˜μ€ 남은 μ‹œκ°„λ™μ•ˆ μ„œλ‘œ ν† ν”½ λΉ„κ΅λŠ” μ•ˆ ν•˜κ³ , λ°œν‘œλ‚˜ ν•œ 번 더 ν–ˆλ‹€.
λ‚˜λŠ” μΊμ‹œ, μΈμ€€μ΄λŠ” μžλ°” λ©”λͺ¨λ¦¬ ꡬ쑰. μ΄κ±°λŠ” 뭐... 각자 30λΆ„ 정도 κ±Έλ Έλ‹€. 생각보닀 짧게 끝냄.
μ–΄μ¨Œλ“  λ‹€μŒ λ°œν‘œλŠ” λ‰΄νŽ˜μ΄μŠ€ νŒ€μ›κ³Ό ν•¨κ»˜ ν•˜λŠ”λ°... ꡉμž₯히 κΈ°λŒ€κ°€ λ©λ‹ˆλ‹€!

To be continued...


이것저것... λ°€λ¦° κ±° 처리 πŸ‘

βœ”οΈ 22. 07. 17. Call By Value, Call By Reference - day22 πŸŒ• 에 μΆ”κ°€ μ™„λ£Œ!

profile
김뉴비

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보