๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Back-end/CS ์ง€์‹

[CS] ์„œ๋ฒ„๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

728x90
๋ฐ˜์‘ํ˜•

๐ŸŸก ์„œ๋ฒ„์™€ ์„œ๋น„์Šค

์„œ๋ฒ„(Server)

: ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ •๋ณด๋‚˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์œผ๋กœ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์žฅ์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ, ์ง€๋‚œ ์ฃผ๋ง์— ์—„์ฒญ ๋ง›์žˆ๋Š” ์‹๋‹น์— ๊ฐ”๋Š”๋ฐ ์Œ์‹์ด ๋„ˆ๋ฌด ๋ง›์žˆ์–ด์„œ ์ด ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด ๋‚ด ์ปดํ“จํ„ฐ์— ๊ทธ ์‚ฌ์ง„๋“ค์„ ์˜ฌ๋ ค๋†“๊ณ  ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋“ค์ด ์ •๋ณด๋ฅผ ์ ‘์†ํ•ด์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‚ด ์ปดํ“จํ„ฐ๊ฐ€ '์„œ๋ฒ„' ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๊ฐ€ ๋˜๋Š”๊ฒƒ์ด๋‹ค.

 

์„œ๋น„์Šค(Service)

: ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

 

 

 

 

 

๐ŸŸก ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„์˜ ๊ด€๊ณ„

: ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„๋Š” ๋‘ ๊ฐœ์˜ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์— ์ด๋ฃจ์–ด์ง€๋Š” ์—ญํ•  ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๊ณ , ์„œ๋ฒ„๋Š” ๊ทธ ์š”์ฒญ์— ๋Œ€ํ•ด ์‘๋‹ต์„ ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด, ํŽ˜์ด์Šค๋ถ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ด€๋ฆฌ์ž ๋˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” '์„œ๋ฒ„'๊ฐ€ ๋˜๋ฉฐ, ํŽ˜์ด์Šค๋ถ์ด๋ผ๋Š” ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ์šฐ๋ฆฌ๋Š” 'ํด๋ผ์ด์–ธํŠธ'๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๐ŸŸก ์„œ๋ฒ„์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ์ˆœ์„œ(์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ์„œ๋น„์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”๊ฐ€?)

 

  1. ์‚ฌ์šฉ์ž(Client)๊ฐ€ ์›น ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ๋„๋ฉ”์ธ ์ฃผ์†Œ(URL)๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.
  2. DNS์—์„œ ์ž…๋ ฅ๋œ ๋„๋ฉ”์ธ ๊ฐ’์„ IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†กํ•œ๋‹ค.
  3. ์ „์†ก๋ฐ›์€ ์›น ํŽ˜์ด์ง€ ์ •๋ณด๋ฅผ HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›น ์„œ๋ฒ„ ์ธก์œผ๋กœ ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.
  4. ์›น ์„œ๋ฒ„์—์„œ ์š”์ฒญ๋ฐ›์€ ๋‚ด์šฉ์„ ๋ถ„์„ํ•˜์—ฌ URL ์ •๋ณด์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ’์— ๋Œ€ํ•œ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ๋‹ค์‹œ ์ „์†กํ•œ๋‹ค.
  5. ์ „์†ก ๋ฐ›์€ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ์›น ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅ๋˜์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

 

 

๐ŸŸก ์„œ๋ฒ„์˜ ๊ตฌ์กฐ

- Server Program

 

1) ์›น์„œ๋ฒ„

: ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์ด๊ณ , HTML ๋ฌธ์„œ์™€ ๊ฐ™์€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ”„๋กœ๊ทธ๋žจ

์ฐธ๊ณ ์ž๋ฃŒ ๐Ÿ’จ๐Ÿ’จ๐Ÿ’จ

https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%84%9C%EB%B2%84

 

์›น ์„œ๋ฒ„ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

์„ธ๊ณ„ ์ตœ์ดˆ์˜ ์›น ์„œ๋ฒ„ ์›น ์„œ๋ฒ„(web server)๋Š” ๋‹ค์Œ์˜ ๋‘ ๊ฐ€์ง€ ๋œป ๊ฐ€์šด๋ฐ ํ•˜๋‚˜์ด๋‹ค. ์›น ์„œ๋ฒ„  : ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์ด๊ณ , HTML ๋ฌธ์„œ์™€ ๊ฐ™์€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”

ko.wikipedia.org

 

 

2) nginx

: ๊ฐ€๋ณ๊ณ  ์„ฑ๋Šฅ์ด ๋†’์€ ์›น ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ ์š”์ฒญ์— ๋งž๋Š” ์ •์  ํŒŒ์ผ์„ ์‘๋‹ตํ•ด์ฃผ๋Š” HTTP Web Server๋กœ ํ™œ์šฉ๋˜๊ธฐ๋„ ํ•˜๊ณ  Reverse Proxy Server๋กœ ํ™œ์šฉํ•˜์—ฌ WAS ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋กœ ํ™œ์šฉ๋˜๊ธฐ๋„ ํ•œ๋‹ค.

 

***nginx์˜ ํ๋ฆ„

=> Event-Driven ๊ตฌ์กฐ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๊ฐœ ๋˜๋Š” ๊ณ ์ •๋œ ํ”„๋กœ์„ธ์Šค๋งŒ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. 

์œ„ ๊ทธ๋ฆผ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด Nginx๋Š” ์ƒˆ๋กœ์šด ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋”๋ผ๋„ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์„ฑ ๋น„์šฉ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ณ , ์ ์€ ์ž์›์œผ๋กœ๋„ ํšจ์œจ์ ์ธ ์šด์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ๋‹จ์ผ ์„œ๋ฒ„์—์„œ๋„ ๋™์‹œ์— ๋งŽ์€ ์—ฐ๊ฒฐ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฐธ๊ณ ์ž๋ฃŒ ๐Ÿ’จ๐Ÿ’จ๐Ÿ’จ

https://ko.wikipedia.org/wiki/Nginx

 

Nginx - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

 

ko.wikipedia.org

 

3) apache

: ์›”๋“œ์™€์ด๋“œ ์›น ์„œ๋ฒ„์šฉ ์†Œํ”„ํŠธ์›จ์–ด - HTTP ์•„ํŒŒ์น˜ ์„œ๋ฒ„

์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ์›น ์„œ๋ฒ„ ์ค‘ ํ•˜๋‚˜๋กœ ์ •์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ํŠธ๋ž˜ํ”ฝ ๊ณผ๋ถ€ํ•˜์— ๊ฐ•ํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๊ณ , ๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœํ•˜์—ฌ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ์ •์ ์ธ ๋ฐ์ดํ„ฐ๋งŒ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ๋‹ค๋ฅธ ์„œ๋น„์Šค์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

 

 

- Back-end Language

  • java - spring, spring boot
  • javascript - node.js, expressExpress
  • python - django, flask

 

 

 

- DB, DBMS

  • SQL(๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)
    • Mysql : ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS)์ด๋‹ค. ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ, ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ํ˜•์‹์˜ ๊ตฌ์กฐ ์งˆ์˜์–ด ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ์„œ ์˜ค๋ผํด์ด ๊ด€๋ฆฌ ๋ฐ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. RDBMS์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ์ž๋ฃŒ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ GUI ํˆด์€ ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.
    • mssql : ์šด์˜์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ด€๋ฆฌํ•จ์— ์žˆ์–ด์„œ ์‚ฌ์šฉ์ž์˜ ํšŒ์›๊ด€๋ฆฌ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ์›น DB๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” Microsoft์‚ฌ์—์„œ ๋งŒ๋“ค์—ˆ๊ณ , ์›น ์ƒ์—์„œ ํšŒ์›๋“ค์„ ๊ด€๋ฆฌํ•  ๋•Œ ํšŒ์›๋“ค์˜ ์ •๋ณด๋ฅผ DB์— ์ €์žฅํ–ˆ๋‹ค๊ฐ€ DB์—์„œ ํšŒ์›๋“ค์˜ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์™€์„œ ๋ฆฌ์ŠคํŠธ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋Š” ์œˆ๋„์šฐ ํ˜•์‹์œผ๋กœ ๊ด€๋ฆฌ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๊ตฌํ˜„์„ ํ•  ์ˆ˜์žˆ๋‹ค๋Š” ์ ์ด ๊ฐ€์žฅ ํฐ ํŠน์ง•์ด๋‹ค.
    • ORACLE : ๋ฏธ๊ตญ ์˜ค๋ผํด์‚ฌ์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS)์˜ ์ด๋ฆ„์œผ๋กœ ์œ ๋‹‰์Šค ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋Š” RDBMS๋กœ๋Š” ํ˜„์žฌ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์ œํ’ˆ์˜ ํ•˜๋‚˜์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, ๋งค์ผ์˜ ๊ธฐ์˜จ์ด๋‚˜ ์„ ๊ฑฐ ํ›„๋ณด์ž์˜ ๋“ํ‘œ ์ˆ˜ ๊ฐ™์€ ์ •๋ณด๋“ค์„ ์™ธ๋ถ€ ์„ธ๊ณ„๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์™€ ์ด๋”๋ฆฌ์›€(Ethereum) ๊ฐ™์€ ๋ธ”๋ก์ฒด์ธ์œผ๋กœ ๋ณด๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • NoSQL(๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)

 

728x90
๋ฐ˜์‘ํ˜•