ยซ   2025/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Recent Posts
02-08 13:57

Today
Total

Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

์—ฐ์˜ ๊ธฐ๋ก ๐Ÿช

์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ 6-1 : Spring Boot ์›น ๊ฐœ๋ฐœ ์ž…๋ฌธ ๋ณธ๋ฌธ

WEB/Server

์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ 6-1 : Spring Boot ์›น ๊ฐœ๋ฐœ ์ž…๋ฌธ

kite707 2022. 2. 4. 13:15

์ด๋ฒˆ ๊ฐ•์˜์—์„œ๋Š” ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ ์ธ ์ง€์‹๊ณผ Spring Boot์˜ ๊ฐ„๋‹จํ•œ ์ด๋ก ๊ณผ ์‹ค์Šต์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ณ  ์žˆ๋‹ค. ๋‚ด์šฉ์ด ๋งŽ์•„ 2๊ฐœ์˜ ๊ธ€์— ๋‚˜๋ˆ ์„œ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

IP์™€ Port์˜ ๊ฐœ๋…

์ผ๋ฐ˜์ ์œผ๋กœ Client, ์ฆ‰ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•˜๊ณ , ์„œ๋ฒ„๊ฐ€ ์ด ์š”์ฒญ์— ๋Œ€ํ•ด ์‘๋‹ต์„ ํ•˜๋ฉด ์ด๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋•Œ ์ „ ์„ธ๊ณ„์—๋Š” ๊ต‰์žฅํžˆ ๋งŽ์€ ์ˆ˜์˜ ์„œ๋ฒ„๋“ค์ด ์žˆ๋Š”๋ฐ ์šฐ๋ฆฌ๊ฐ€ ์š”์ฒญ์„ ํ•  ์„œ๋ฒ„, ์ฆ‰ host์˜ ์ฃผ์†Œ๋ฅผ IP์ฃผ์†Œ ๋ผ๊ณ  ํ•œ๋‹ค.

 

์ด๋Ÿฌํ•œ IP์ฃผ์†Œ๋Š” ๊ณต์ธ(Public) IP์ฃผ์†Œ์™€ ์‚ฌ์„ค(Private) IP์ฃผ์†Œ, 2๊ฐ€์ง€๋กœ ๋‚˜๋‰˜์–ด์ง„๋‹ค. ๊ทธ ํŠน์ง•๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

๊ณต์ธ IP์ฃผ์†Œ

  • ์ธํ„ฐ๋„ท ์ƒ์— ๊ณ ์œ ํ•œ IP ์ฃผ์†Œ
  • IP์ฃผ์†Œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๊ด€์œผ๋กœ๋ถ€ํ„ฐ ํ• ๋‹น๋ฐ›์•„ ์‚ฌ์šฉ๊ฐ€๋Šฅ
  • ๋Œ€๋ฅ™๋ณ„, ๊ตญ๊ฐ€๋ณ„ ํ• ๋‹น๋ฐ›์€ ๊ณต์ธ IP์ฃผ์†Œ๊ฐ€ ์กด์žฌ
  • ๋ˆ„๊ตฌ๋‚˜ ์ ‘์† ๊ฐ€๋Šฅํ•ด์•ผํ•˜๋Š” ์›น ์„œ๋ฒ„ ๋“ฑ์€ ๊ณต์ธ IP์ฃผ์†Œ๊ฐ€ ํ•„์š”

์‚ฌ์„ค IP์ฃผ์†Œ

  • ํŠน์ • ์กฐ์ง ๋‚ด๋ถ€์—์˜ ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ๋งŒ ํ†ต์‹  ๊ฐ€๋Šฅํ•œ IP์ฃผ์†Œ
  • ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€์—์„œ๋Š” ์‚ฌ์„ค IP๋กœ ํ†ต์‹  ๊ฐ€๋Šฅํ•˜๋‚˜, ์™ธ๋ถ€์—์„œ๋Š” ์‚ฌ์„ค IP๋กœ ๊ธฐ๊ธฐ์— ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅ
    →ํšŒ์‚ฌ์˜ ๋™์ผํ•œ ๊ณต์œ ๊ธฐ์— ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ ๊ฐ„์—๋Š” ์‚ฌ์„ค IP๋กœ ํ†ต์‹  ๊ฐ€๋Šฅ
    →์™ธ๋ถ€์—์„œ๋Š” ๊ทธ ํšŒ์‚ฌ ์ปดํ“จํ„ฐ์˜ ์‚ฌ์„ค IP๋กœ ํ†ต์‹  ๋ถˆ๊ฐ€
  • ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ ๊ฐ„์—๋Š” ์‚ฌ์„ค IP๊ฐ€ ์ค‘๋ณต๋˜์–ด๋„ ๋ฌด๋ฐฉํ•จ
    →AํšŒ์‚ฌ์˜ ์‚ฌ์„ค IP 192.0.0.1๊ณผ BํšŒ์‚ฌ์˜ ์‚ฌ์„ค IP 192.0.0.1 ์ค‘๋ณต ๋˜์–ด๋„ ๋จ
    →ํšŒ์‚ฌ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ

๋˜ IP์ฃผ์†Œ๋“ค์€ ์‚ฌ๋žŒ์ด ์™ธ์šฐ๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์—(๋ณดํ†ต 30.129.75.143 ์ด๋Ÿฐ์‹์œผ๋กœ ์ƒ๊ฒผ๋‹ค.) ์ด๋ฅผ ์‚ฌ๋žŒ์ด ์ฝ๊ณ  ์™ธ์šฐ๊ธฐ ์‰ฌ์šด ํ˜•ํƒœ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ˜ธ์ŠคํŠธ๋ช…์ด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ํ˜ธ์ŠคํŠธ๋ช…์ด๋ผ๊ณ  ํ•œ๋‹ค.


blog.naver.com
news.google.com

์ด๋Ÿฌํ•œ ํ˜ธ์ŠคํŠธ๋ช… ์ค‘์—์„œ๋Š” “ํ˜„์žฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ ์ค‘์ธ ๊ธฐ๊ธฐ๋ฅผ ์ง€์นญ”ํ•˜๋Š” ํŠน์ˆ˜ํ•œ ํ˜ธ์ŠคํŠธ๋ช…๋„ ์žˆ๋Š”๋ฐ ์ด๋ฅผ localhost๋ผ๊ณ  ํ•œ๋‹ค. IP์ฃผ์†Œ๋กœ๋Š” 127.0.0.1์ด๋‹ค.

 

์ด์ œ๋Š” ํฌํŠธ์ฃผ์†Œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. IP์ฃผ์†Œ๋Š” ํŠน์ • ํ˜ธ์ŠคํŠธ(๊ธฐ๊ธฐ)๊นŒ์ง€์˜ ์ฃผ์†Œ์˜€๋Š”๋ฐ, Port๋Š” ํ˜ธ์ŠคํŠธ ๋‚ด๋ถ€ ํ”„๋กœ์„ธ์Šค์˜ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ์ด๋‹ค. ๋ณดํ†ต :๋’ค์— ํฌํŠธ์ฃผ์†Œ๊ฐ€ ์˜จ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด๊ณ  ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ 30.129.75.143์€ IP์ฃผ์†Œ, 80์€ ํฌํŠธ์ฃผ์†Œ์ด๋‹ค.

 

๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ณ

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

 

๊ฐ€์žฅ ๋ณดํŽธ์ ์ธ ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์€ 4๊ฐœ์˜ ๋ ˆ์ด์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ฐ ๊ณ„์ธต์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ณ„์ธต ๊ฐ„์— ํ˜ธ์ถœ์„ ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ์ „์ฒด ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

Spring Controller

 

Spring Controller๋Š” ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์˜ Presentation Layer์— ํ•ด๋‹นํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €, ๋ชจ๋ฐ”์ผ ์•ฑ)์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ , Application Layer์— ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์œ„์ž„ํ•˜๋ฉฐ, Client์— ์ตœ์ข… ์‘๋‹ต์„ ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋•Œ ์ตœ์ข… ์‘๋‹ต์˜ ๊ฒฝ์šฐ๋Š” ์•„๋ž˜ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.


View : Client๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์˜ ๊ฒฐ๊ณผ๋กœ ๋ณด๊ฒŒ ๋˜๋Š” ์›น ํŽ˜์ด์ง€
Data : Client๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ

์œ„์™€ ๊ฐ™์€ Spring Controller๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 3๊ฐœ์˜ ๊ธฐ๋ณธ ์–ด๋…ธํ…Œ์ด์…˜(Annotaion)์ด ์‚ฌ์šฉ๋œ๋‹ค. @Controller์™€ @RestController๋Š” ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•˜๋ฉฐ, ํด๋ž˜์Šค ์ƒ๋‹จ์— ๋ช…์‹œํ•œ๋‹ค. @RequestMapping์€ ํŠน์ • Request๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ง€์ •ํ•˜๋ฉฐ, ํด๋ž˜์Šค ๋˜๋Š” ๋ฉ”์†Œ๋“œ ์ƒ๋‹จ์— ๋ช…์‹œํ•œ๋‹ค.

์–ด๋…ธํ…Œ์ด์…˜(Annotation)์ด๋ž€?

Java ์†Œ์Šค์ฝ”๋“œ์— ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, @์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ ํด๋ž˜์Šค, ๋ฉ”์†Œ๋“œ, ๋ฉค๋ฒ„๋ณ€์ˆ˜, ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ์— ๋ถ€์ฐฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 3๊ฐ€์ง€ ์œ ํ˜•์˜ ์–ด๋…ธํ…Œ์ด์…˜์ด ์žˆ๋‹ค.

1. ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์ •๋ณด๋ฅผ ์ œ๊ณต(์—๋Ÿฌ ๋“ฑ์„ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด)
2. SW ํˆด์— ์˜ํ•ด ์‚ฌ์šฉ๋˜์–ด ์ฝ”๋“œ ์ƒ์„ฑ์ด๋‚˜ ์ถ”๊ฐ€ ์ž‘์—…์„ ์ง„ํ–‰
3. run-time์‹œ ํŠน์ • ๋™์ž‘์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์‹คํ–‰

 

Framework๋ฅผ ํ™œ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ทœ์น™์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ์œ„์—์„œ ์‚ฌ์šฉํ•œ ์–ด๋…ธํ…Œ์ด์…˜๋“ค์„ Spring Framework๊ฐ€ ์Šค์บ”ํ•˜๊ณ , ์ด๋Ÿฌํ•œ ์–ด๋…ธํ…Œ์ด์…˜๋“ค์ด ๋ถ™์–ด์žˆ๋Š” ์ฝ”๋“œ๋“ค์€ Spring Framework์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋ฉฐ, ํŠน์ •ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

 

์œ„์—์„œ @Controller์™€ @RestController๋Š” ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ๋‘˜์˜ ์ฐจ์ด์ ์€ ์‘๋‹ต์˜ ํ˜•ํƒœ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

Controller : view๋ฅผ ์‘๋‹ต(html ํŒŒ์ผ ๋“ฑ)
RestController : data๋ฅผ ์‘๋‹ต(๋ฌธ์ž์—ด, Json, xml ๋“ฑ)

 

Spring Service

 

Spring Serviec๋Š” ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. SNS์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์•„๋ž˜ ๊ธฐ๋Šฅ๋“ค์„ ๋‹ด๋‹นํ•œ๋‹ค.

  • ์ด๋ฏธ์ง€, ๊ธ€ ๋“ฑ์˜ ์ปจํ…์ธ  ์ •๋ณด๋ฅผ ์ €์žฅ
  • ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํ˜ธํ•  ๋งŒํ•œ ์ปจํ…์ธ ๋ฅผ ์ถ”์ฒœ
  • ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ํšŒ์› ํƒˆํ‡ด ๋“ฑ์˜ ํšŒ์› ๊ด€๋ จ ์ฒ˜๋ฆฌ

์ฆ‰ view์˜ ์ข…๋ฅ˜์™€ database ์ข…๋ฅ˜์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ๋…๋ฆฝ์ ์ธ ๊ณ„์ธต์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋„๋ก ์„ค๊ณ„ํ•ด์•ผํ•œ๋‹ค.

 

๊ตฌํ˜„ํ•˜๋ ค๋ฉด ํด๋ž˜์Šค์— @Service Annotation์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. Spring Service๋„ Spring Controller์ฒ˜๋Ÿผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์„ธ๋ถ€ ์˜์—ญ ๋ณ„๋กœ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ด์„œ ๊ตฌํ˜„ํ•œ๋‹ค.

 

๋‹ค์Œ ๊ธ€ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

https://sectumsempra.tistory.com/120

 

์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ 6-2 : Spring Boot ์›น ๊ฐœ๋ฐœ ์ž…๋ฌธ

์•„๋ž˜ ๊ธ€๊ณผ ์ด์–ด์ง€๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. https://sectumsempra.tistory.com/119 ์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ 6-1 : Spring Boot ์›น ๊ฐœ๋ฐœ ์ž…๋ฌธ ์ด๋ฒˆ ๊ฐ•์˜์—์„œ๋Š” ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ ์ธ ์ง€์‹๊ณผ Spring Boot์˜ ๊ฐ„๋‹จํ•œ ์ด๋ก ๊ณผ ์‹ค์Šต์—..

sectumsempra.tistory.com

 

 

๐Ÿ“Œ์ฝ”๋“œํ”„๋ ˆ์†Œ Java ์›น ๊ฐœ๋ฐœ ์ฒดํ—˜๋‹จ ํ™œ๋™์œผ๋กœ ์ œ๊ณต๋ฐ›์€ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ์ฝ”๋“œํ”„๋ ˆ์†Œ์—์„œ "Spring Boot ์›น ๊ฐœ๋ฐœ ์ž…๋ฌธ" ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ์ฝ”๋“œํ”„๋ ˆ์†Œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋งํฌ : https://www.codepresso.kr/