Skip to content

Latest commit

Β 

History

History
69 lines (38 loc) Β· 5.42 KB

File metadata and controls

69 lines (38 loc) Β· 5.42 KB

μŠ€ν”„λ§λΆ€νŠΈ λ™μž‘μ›λ¦¬

1. λ‚΄μž₯ 톰켓을 κ°€μ§„λ‹€.

socket

  • μš΄μ˜μ²΄μ œκ°€ κ°€μ§€κ³  μž‡λŠ” κ²ƒμœΌλ‘œ μ‹œμŠ€ν…œ 연계 λ°©μ‹μ˜ 간접적 연계방식 쀑 ν•˜λ‚˜
  • μ„œλ²„λŠ” 톡신을 μœ„ν•œ μ†ŒμΌ“μ„ μƒμ„±ν•˜μ—¬ 포트λ₯Ό ν• λ‹Ήν•˜κ³  ν΄λΌμ΄μ–ΈνŠΈμ˜ 톡신 μš”μ²­ μ‹œ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ—°κ²°ν•˜λŠ” λ„€νŠΈμ›Œν¬ 기술, 솑신 기술
  • μ†ŒμΌ“μ€ ν¬νŠΈλ²ˆν˜Έκ°€ μžˆμ–΄μ•Ό 함

ipμ£Όμ†Œμ™€ 포트번호λ₯Ό λ„£κ³  μ—°κ²°ν•œλ‹€. A와 μ‚¬μš©μž Bλ₯Ό μ—°κ²°ν•˜λ©° ν†΅μ‹ ν•œλ‹€. κ·ΈλŸ¬λ‹€κ°€ Bκ°€ 5001 port와 ν†΅μ‹ ν•˜κ²Œ 되면 AλŠ” λ‹€λ₯Έ μ‚¬μš©μžμΈ C와 톡신이 λΆˆκ°€λŠ₯ν•˜κ²Œ λœλ‹€.

μ™œλƒν•˜λ©΄ CPUκ°€ 일을 ν•˜κ³  있기 λ•Œλ¬Έμ΄λ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μŠ€λ ˆλ“œλ₯Ό λ§Œλ“ λ‹€. 5000λ²ˆμ€ main μŠ€λ ˆλ“œλ‘œ 5001은 μŠ€λ ˆλ“œ 1둜 λ§Œλ“ λ‹€.

κ·Έλ ‡κ²Œ 되면 CλŠ” A와 연결이 κ°€λŠ₯ν•˜κ²Œ λœλ‹€.

κ·Έ ν›„μ—λŠ” 또 랜덀으둜 μ†ŒμΌ“μ˜ ν¬νŠΈλ²ˆν˜Έκ°€ μƒμ„±λ˜κ³  λ‚˜μ„œ μƒˆλ‘œμš΄ μŠ€λ ˆλ“œλ‘œ λ§Œλ“€μ–΄μ§€κ³  그리고 λ‚˜μ„œ 5000번인 main μŠ€λ ˆλ“œμ™€μ˜ 연결이 또 끊기게 λœλ‹€. μ™œλƒν•˜λ©΄ μƒˆλ‘œμš΄ μ‚¬μš©μžμ˜ μš”μ²­μ„ λ°›μ•„μ•Ό ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

C와 5002이 μ—°κ²°λœλ‹€. ν†΅μ‹ ν•œλ‹€. 이런 방식이 λ°”λ‘œ μ†ŒμΌ“ 톡신이닀.

μ†ŒμΌ“μ˜ μž₯점은 연결이 λŠμ–΄μ§€μ§€ μ•ŠλŠ”λ‹€. μ—°κ²°λ˜κ³  λ‚˜μ„œ μ—°κ²°λœ μ‚¬λžŒμ€ 같은 μ‚¬λžŒμœΌλ‘œ 계속 μΈμ‹ν•˜μ§€λ§Œ μ΄λ ‡κ²Œ 되면 단점은 λΆ€ν•˜κ°€ λ§Žμ•„μ§€κ²Œ λΌμ„œ 느렀질 수 μžˆλ‹€.

κ·Έλž˜μ„œ Http 톡신 방식(λ¬Έμ„œλ₯Ό μ „λ‹¬ν•˜λŠ” 톡신)은 계속 μ΄μ–΄μ§€λŠ” μ†ŒμΌ“ 톡신 방식이 μ•„λ‹Œ μ§€μ†μ‹œν‚€μ§€ μ•Šκ³  연결을 λŠμ–΄λ²„λ¦¬λŠ” Stateless 방식을 μ‚¬μš©ν•œλ‹€.

λ¬Έμ„œλ₯Ό μš”μ²­ λ°›μœΌλ©΄ λ¬Έμ„œλ₯Ό 돌렀주고 연결을 λŠμ–΄λ²„λ¦°λ‹€.

κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μž₯점은 λΆ€ν•˜κ°€ 적닀. κ·Έλ ‡μ§€λ§Œ λ‹¨μ μœΌλ‘œλŠ” 항상 μƒˆλ‘œμš΄ μ‚¬λžŒμœΌλ‘œ μΈμ‹ν•œλ‹€.

μ΄λŸ¬ν•œ 단점듀을 λ³΄μ™„ν•˜λ©΄μ„œ λ§Œλ“€μ–΄μ§„ 것이 Web μ„œλ²„λ‹€.

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

πŸ”— 전에 μžμ„Ένžˆ 정리 ν•œ 것 : https://velog.io/@prettylee620/CS-지식-μ„œλ²„κ΄€λ ¨

μ›Ή μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° μš”μ²­μ„ λ°›μœΌλ©΄ ν•΄λ‹Ή μš”μ²­μ— λŒ€ν•œ 처리λ₯Ό μˆ˜ν–‰ν•˜κ³ , ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 응닡을 μ „μ†‘ν•˜λŠ” 역할을 ν•œλ‹€. μ΄λ•Œ, 각 ν΄λΌμ΄μ–ΈνŠΈμ˜ μƒνƒœλ₯Ό κΈ°μ–΅ν•˜μ§€ μ•Šκ³ , 각 μš”μ²­μ— λŒ€ν•΄ λ…λ¦½μ μœΌλ‘œ μ‘λ‹΅ν•˜λŠ” νŠΉμ„±μ„ κ°–λŠ”λ‹€. μ΄λŸ¬ν•œ νŠΉμ§•μ€ "Stateless(μƒνƒœ μ—†μŒ)"ν•œ νŠΉμ„±μ„ κ°€μ§„λ‹€κ³  ν‘œν˜„λœλ‹€.

μ›Ή μ„œλ²„λŠ” HTTP ν”„λ‘œν† μ½œμ„ 기반으둜 λ™μž‘ν•˜λ©°, ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­μ„ 보내면 μ„œλ²„λŠ” ν•΄λ‹Ή μš”μ²­μ— λŒ€ν•œ 응닡을 μƒμ„±ν•˜μ—¬ λ°˜ν™˜ν•œλ‹€. μ„œλ²„λŠ” 각 μš”μ²­μ— λŒ€ν•΄ λ…λ¦½μ μœΌλ‘œ μ²˜λ¦¬ν•˜λ―€λ‘œ, ν΄λΌμ΄μ–ΈνŠΈμ™€μ˜ 연결을 μ§€μ†μ μœΌλ‘œ μœ μ§€ν•˜μ§€ μ•ŠλŠ”λ‹€. μ΄λŸ¬ν•œ νŠΉμ„±μ€ κ°„λ‹¨ν•˜κ³  λΉ λ₯Έ 응닡을 κ°€λŠ₯ν•˜κ²Œ ν•˜λ©°, λ§Žμ€ ν΄λΌμ΄μ–ΈνŠΈμ— λŒ€ν•œ 처리λ₯Ό 효율적으둜 μˆ˜ν–‰ν•  수 μžˆλ‹€.

즉, μ •λ¦¬ν•˜μžλ©΄

  • μ›Ή μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° μš”μ²­μ„ λ°›μ•„ ν•΄λ‹Ή μš”μ²­μ— λŒ€ν•œ 처리λ₯Ό μˆ˜ν–‰ν•˜κ³ , ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 응닡을 μ „μ†‘ν•˜λŠ” 역할을 ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ λ˜λŠ” ν•˜λ“œμ›¨μ–΄
  • μ›Ή μ„œλ²„λŠ” 주둜 정적인 μ½˜ν…μΈ (HTML νŽ˜μ΄μ§€, 이미지 파일 λ“±)을 μ œκ³΅ν•˜λ©°, 동적인 μš”μ²­μ— λŒ€ν•œ μ²˜λ¦¬λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„(μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λŠ” μ„œλ²„)에 μœ„μž„ν•  수 μžˆλ‹€.
  • Apache, Nginx, Microsoft IIS 등이 μ›Ή μ„œλ²„μ˜ μ˜ˆμ‹œ

πŸ€” κ·Έλ ‡λ‹€λ©΄ λ‹€λ₯Έ κ°„μ ‘ 연계 방식인 μ›Ή μ„œλΉ„μŠ€λž‘μ€ λ‹€λ₯Έκ±°κ² μ§€?

Yes

μ›Ή μ„œλΉ„μŠ€λŠ” μ›Ή μ„œλ²„μ˜ κΈ°λŠ₯을 λ„˜μ–΄μ„œ, λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ„œλ‘œ λ‹€λ₯Έ μ‹œμŠ€ν…œ 간에 μƒν˜Έμž‘μš©ν•˜κΈ° μœ„ν•œ ν‘œμ€€ν™”λœ 방법을 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€λ₯Ό μ˜λ―Έν•œλ‹€. μ›Ή μ„œλΉ„μŠ€λŠ” 주둜 XML λ˜λŠ” JSON ν˜•μ‹μ˜ 데이터λ₯Ό κ΅ν™˜ν•˜λ©°, μ„œλ‘œ λ‹€λ₯Έ ν”Œλž«νΌ 간에 톡신을 κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” 기술적인 κ·œκ²©μ„ ν¬ν•¨ν•œλ‹€. RESTful APIλ‚˜ SOAP 등이 μ›Ή μ„œλΉ„μŠ€μ˜ μ˜ˆμ‹œ

κ°„λ‹¨ν•˜κ²Œ λ§ν•˜λ©΄, μ›Ή μ„œλΉ„μŠ€λŠ” λ„€νŠΈμ›Œν¬ μƒμ—μ„œ μ„œλ‘œ λ‹€λ₯Έ μ‹œμŠ€ν…œ 간에 ν‘œμ€€ν™”λœ λ°©λ²•μœΌλ‘œ ν†΅μ‹ ν•˜κΈ° μœ„ν•œ κ·œκ²©μ„ λ‚˜νƒ€λ‚΄λŠ” 것이며, μ›Ή μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ λ°›μ•„ 정적인 μ½˜ν…μΈ λ₯Ό μ œκ³΅ν•˜κ±°λ‚˜ 동적인 처리λ₯Ό μœ„ν•΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„λ‘œ μš”μ²­μ„ μ „λ‹¬ν•˜λŠ” 역할을 ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ λ˜λŠ” ν•˜λ“œμ›¨μ–΄λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.

HTTPλž€?

μ˜ˆμ „μ— 수기 λ¬Έμ„œλ‘œ 논문을 찾던 μ‹œμ ˆ μžμ‹ μ˜ 논문을 μ—…λ‘œλ“œμ—μ„œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ λ…Όλ¬Έ μ“Έ λ•Œ κ²ΉμΉ˜μ§€ μ•Šκ²Œ μ°Έκ³ ν•˜λΌκ³  μ˜¬λ¦°λ‹€. κ·Έ 올린 것을 λ°›μ•„μ˜€κΈ°λ§Œ ν•˜λ©΄ λΌμ„œ 연결이 지속될 ν•„μš” x β‡’ HTTP

  • μ›Ή μ„œλΉ„μŠ€λ₯Ό μœ„ν•΄ μ΄μš©λ˜λŠ” ν”„λ‘œν† μ½œλ‘œ λ³΄μ•ˆμ„±μ΄ μ•ˆ μ’‹μŒ
  • μ•”ν˜Έν™”λ˜μ§€ μ•ŠλŠ” μƒνƒœλ‘œ μ›Ή λ³Ό λ•Œ μ‚¬μš©λ˜λŠ” ν”„λ‘œν† μ½œ
  • μΈν„°λ„·μ—μ„œ ν•˜μ΄νΌν…μŠ€νŠΈ(hypertext) λ¬Έμ„œλ₯Ό κ΅ν™˜ν•˜κΈ° μœ„ν•˜μ—¬ μ‚¬μš©λ˜λŠ” ν†΅μ‹ κ·œμ•½