โ€ป ์ด ๊ธ€์€ ์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ ํ™œ๋™์„ ํ•˜๋ฉด์„œ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.
โ€ป Spring Boot ์›น๊ฐœ๋ฐœ ์ž…๋ฌธ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
โ€ป ์ฝ”๋“œํ”„๋ ˆ์†Œ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring Framework ์†Œ๊ฐœ

Spring Framework ์žฅ์ 

  • ๊ฒฝ๋Ÿ‰ํ™”๋œ Java Framework
  • POJO์˜ ์‚ฌ์šฉ์œผ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
  • DI์™€ AOP์˜ ์ ์šฉ
  • Transaction ๊ด€๋ฆฌ์˜ ํŽธ์˜์„ฑ
  • MVC ์•„ํ‚คํ…์ฒ˜์˜ ์ง€์›
  • ํ…Œ์ŠคํŠธ๊ฐ€ ์šฉ์ดํ•จ
  • ๋†’์€ ๋ณด์•ˆ์„ฑ
  • ๋ฐฉ๋Œ€ํ•œ ํ”„๋กœ์ ํŠธ
    - Spring Framework ์€ 22๊ฐœ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ˆ˜ ๋ฐฑ๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณด์œ 
    - ๋Œ€๊ทœ๋ชจ์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ.์šด์˜์„ ์œ„ํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ๊ธฐ์ˆ ์„ ์ œ๊ณต
  • ๋Š์ž„์—†๋Š” ๊ฐœ์„ 
    - ์ตœ๊ทผ SW ์‹œ์Šคํ…œ์€ ์ ์  ๊ฑฐ๋Œ€ํ•ด์ง€๊ณ  ๋ณต์žกํ•ด์ง€๊ณ  ์žˆ์Œ
    - ๋” ๋‚˜์€ SW์‹œ์Šคํ…œ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๊ณผ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์†Œ๊ฐœ๋จ
    (๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ,NoSQL,ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๋ฐ ์ปจํ…Œ์ด๋„ˆ)
    - Spring Framework๋Š” ๋ณ€ํ™”ํ•˜๋Š” ๊ธฐ์ˆ ์— ๋น ๋ฅด๊ฒŒ ๋Œ€์‘ํ•˜์—ฌ ๊พธ์ค€ํžˆ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ถœ์‹œํ•จ

Spring Framework ๋‹จ์ 

  • ๋†’์€ ๋Ÿฌ๋‹ ์ปค๋ธŒ
    - Bean,DI,AOP, ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„, ๋””์ž์ธํŒจํ„ด ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐœ๋… ์ดํ•ด ํ•„์š”
    - Spring Framework์€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธ‰ ๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ๊ฐœ๋ฐœ
    - SW์˜ ์œ ์—ฐํ•œ ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๋“ฑ๋ฆฌ ๋‚ดํฌ๋˜์–ด์žˆ์Œ
  • ๋ณต์žกํ•œ ์„ค์ •
    - "Spring Framework์€ XML ์ง€์˜ฅ์ด๋‹ค."
    - ๊ฐ„๋‹จํ•œ ์›น์–ดํ”Œ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ๋„ ์ƒ๋‹นํ•œ ์ˆ˜์ค€์˜ ์„ค์ •์ด ํ•„์š”
    - Spring Boot๊ฐ€ ์ถœ์‹œํ•˜๋ฉฐ ๋ฌธ์ œํ•ด๊ฒฐ

Spring Boot๋ž€?

  • Spring Framework๋ฅผ ๋ณด๋‹ค ์†์‰ฝ๊ฒŒ ํ™œ์šฉํ• ์ˆ˜ ์žˆ๊ฒŒ ์ง€์›ํ•˜๋Š”๊ธฐ์ˆ 
    - Spring Framework๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•จ
  • ์„ค์ •, ์˜์กด์„ฑ๊ด€๋ฆฌ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋‹ˆํ„ฐ๋ง, ์„œ๋ฒ„์˜ ์‹คํ–‰ ๋“ฑ์„ ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ

Spring Boot์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ์„ค์ • ๊ฐ„ํŽธํ™”๋ฅผ ์œ„ํ•œAuto Configuration
  • ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ Starter Project
  • ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค ๊ฐ„์†Œํ™”๋ฅผ ์œ„ํ•œ Embedded WAS
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ Actuator

์›น ์„œ๋น„์Šค ๊ฐœ๋ฐœ๊ณผ Web FrameWork์˜ ์ดํ•ด

SW Framework

  • SW ๊ฐœ๋ฐœ์„ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ˜์ œํ’ˆ
  • ํŠน์ • ๋ถ„์•ผ์˜ SW ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ์ œ๊ณ 
  • ์‚ฌ์šฉ์ž๋Š” FrameWork์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ „์ฒด ์–ดํ”Œ์„ ์™„์„ฑ

๋‚˜์˜ ์ฒซ Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๋ฐ ์‹คํ–‰์ˆœ์„œ

  • spring initializr๋ฅผ ํ™œ์šฉํ•œ Spring Boot ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ๋‹ค์šด๋กœ๋“œ
  • ๋‹ค์šด๋กœ๋“œํ•œ Spring Boot ํ”„๋กœ์ ํŠธ๋ฅผ IntelliJ์—์„œ Import
  • ์ถ”๊ฐ€ ์ฝ”๋“œ ๊ฐœ๋ฐœ
  • Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰
  • ์›น ๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” Postman์„ ํ™œ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ

IP์™€ Port์˜ ์ดํ•ด

Port ์ฃผ์†Œ

  • IP ์ฃผ์†Œ๊ฐ€ ํŠน์ • ํ˜ธ์ŠคํŠธ (๊ธฐ๊ธฐ) ๊นŒ์ง€์˜ ์ฃผ์†Œ๋ผ๋ฉด, Port๋Š” ํ˜ธ์ŠคํŠธ ๋‚ด๋ถ€์˜ ํ”„๋กœ์„ธ์„œ์˜ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ
  • Port ์ฃผ์†Œ๋Š” ํ˜ธ์ŠคํŠธ์—์„œ 0~65535๊นŒ์ง€ ์‚ฌ์šฉ๊ฐ€๋Šฅ
  • ํ˜ธ์ŠคํŠธ ๋‚ด๋ถ€์—์„œ Port์ฃผ์†Œ๋Š” ์œ ์ผํ•ด์•ผ ํ•จ

HTML

Hypertext Markup Language

  • Hypertext
  • ๋งํฌ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๋ฌธ์„œ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”๊ตฌ์กฐ
  • ์ผ๋ฐ˜์ ์ธ ํ…์ŠคํŠธ์˜ ์ˆœ์ฐจ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋›ฐ์–ด๋„˜์€ ๋น„ ์ˆœ์ฐจ์  ์ ‘๊ทผ๋ฒ•
  • Markup -> ํ…์ŠคํŠธ๋ฅผ ๊ตฌ์กฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹
  • Hypertext -> ์„œ๋กœ ์—ฐ๊ฒฐ ๋  ์ˆ˜ ์žˆ๊ณ 
  • Markup -> ์ •๋ณด๋ฅผ ๊ตฌ์กฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š”
  • Language -> ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  • HTML์€ ์ •๋ณด๋ฅผ ๊ตฌ์กฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Tag ๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉ

HTML Tag

HTML ๊ธฐ์ดˆ Tag

Heading

  • ์ œ๋ชฉ ๋˜๋Š” ๋ถ€์ œ๋ชฉ์„ ํ‘œ์‹œํ•  ๋•Œ ์‚ฌ์šฉ
  • h1~h6 ์กด์žฌ, ์ˆซ์ž๊ฐ€ ์ž‘์„์ˆ˜๋กœ ํฐํŠธํฌ๊ธฐ๊ฐ€ ํผ
  • ์ž๋™์„ ์ค„๋ฐ”๊ฟˆ ์ ์šฉ

Paragraph

  • ๋ฌธ๋‹จ์œผ๋กœ ํ‘œํ˜„ํ• ๋•Œ ์‚ฌ์šฉ
  • p,/p๋กœ ์‚ฌ์šฉ
  • ๋ฌธ๋‹จ์˜ ์ฒซ ์ค„ ์œ„์— ์ค„ ๋ฐ”๊ฟˆ์ด ์ ์šฉ๋จ

Line Break

  • HTML์€ ์ค„ ๋ฐ”๊ฟˆ์ด ์ ์šฉ๋˜์ง€ ์•Š์Œ
  • ๋ฌธ์žฅ ์‚ฌ์ด์— ์ค„ ๋ฐ”๊ฟˆ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Line Break ์ ์šฉ ํ•„์š”
  • br ์‚ฌ์šฉ

Bold

  • ํŠน์ • ๋ฌธ์ž๋ฅผ ๊ฐ•์กฐ
  • 2์ข…๋ฅ˜์˜ Tag ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    - b,/b ๋‹จ์ˆœ bold ์ฒ˜๋ฆฌ
    • strong,/strong ์ค‘์š”ํ•œ textํ‘œ์‹œ (์›น ์ ‘๊ทผ์„ฑ, ์Œ์„ฑ๊ฐ•์กฐ๋“ฑ)

Italic

  • ํŠน์ • ๋ฌธ์ž๋ฅผ ์ดํƒค๋ฆญ์ฒด๋กœ ๋ณ€ํ™˜
  • 2์ข…๋ฅ˜์˜ Tag ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    - i,/i ๋‹จ์ˆœ Italic ์ฒ˜๋ฆฌ
    • em,/em ์ค‘์š”ํ•œ textํ‘œ์‹œ (์›น ์ ‘๊ทผ์„ฑ, ์Œ์„ฑ๊ฐ•์กฐ๋“ฑ)

Underline

  • ํŠน์ • ๋ฌธ์ž์— ์–ธ๋”๋ผ์ธ ํ‘œ์‹œ
  • u,/u ์‚ฌ์šฉ

Image

  • HTML ๋ฌธ์„œ์— ์ด๋ฏธ์ง€ ์‚ฝ์ž… ๊ฐ€๋Šฅ
  • img,/img ์‚ฌ์šฉ
  • attribute ์กด์žฌ
    - src : ์ด๋ฏธ์ง€์˜ ์ฃผ์†Œ ์ •๋ณด
    • alt : ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ• ์ˆ˜ ์—†์„ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€์ฒด ํ…์ŠคํŠธ
  • Hypertext์˜ ๋ณธ์งˆ์ธ ๋ฌธ์„œ ๊ฐ„ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑ
  • a,/a ์‚ฌ์šฉ
  • href attribute : ๋งํฌ์˜ ์ฃผ์†Œ

Table

  • Table : ํ•˜๋‚˜์˜ ์ „์ฒด ํ‘œ๋Š” table,/table ํƒœ๊ทธ๋กœ ์ •์˜
  • Table Row : ํ‘œ ๋‚ด๋ถ€์˜ 1๊ฐœ์˜ ํ–‰์€ tr,/tr ํƒœ๊ทธ๋กœ ์ •์˜
  • Table Data : ํ‘œ ๋‚ด๋ถ€์˜ 1๊ฐœ์˜ ์…€์€ td,/tdํƒœ๊ทธ๋กœ ์ •์˜

List

Form

CSS์˜ ๊ธฐ์ดˆ ๊ฐœ๋…

HTMl์˜ ํ•œ๊ณ„

  • ์›น ์ดˆ์ฐฝ๊ธฐ์—๋Š” HTML์— ๋””์ž์ธ์„ ์œ„ํ•œ font ๊ฐ™์€ํƒœ๊ทธ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉฐ ์ฝ”๋“œ์˜ ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์ •๋ณด๋กœ์„œ์˜ ์›น์˜ ๊ฐ€์น˜๊ฐ€ ๋–จ์–ด์ง
  • ์ˆ˜์ • ์šฉ์ด์„ฑ, ๊ฐ€๋…์„ฑ, ์ฝ”๋“œ ์ค‘๋ณต์œผ๋กœ ์ธํ•œ ์ฝ”๋“œ์ด ๋น„์šฉ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง

CSS์˜ ๋“ฑ์žฅ

  • HTML ํƒœ๊ธฐ์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ 
  • HTML ์€ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์ง‘์ค‘ํ•˜๊ณ 
  • CSS๋Š” HTML ๋ฌธ์„œ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๊พธ๋ฏธ๋Š” ๊ธฐ๋Šฅ์— ์ง‘์ค‘ํ•˜๋Š” ๊ธฐ์ˆ 
  • ์ •๋ณด์™€ ๋””์ž์ธ์„ ๋ถ„๋ฆฌํ• ์ˆ˜ ์žˆ๋‹ค.
  • ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ๋””์ž์ธ๋งŒ ๋ณ€๊ฒฝํ• ์ˆ˜ ์žˆ๋‹ค.
  • CSS(Cascading Style Sheets)



๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์˜ ์ดํ•ด

SW ์•„ํ‚คํ…์ฒ˜

  • ๊ฑด์ถ•์„ ํ•  ๋•Œ ์„ค๊ณ„๋„๋ฅผ ๊ทธ๋ฆฌ์„œ ๊ฑด๋ฌผ์ด ์–ด๋–ป๊ฒŒ ์ง€์–ด์งˆ์ง€ ๊ตฌ์ƒ
  • SW๋„ ์‹ค์ œ ์ฝ”๋“œ ๊ฐœ๋ฐœ์ „์— ์ตœ์ข… SW๊ฐ€ ๋˜์–ด์•ผ ํ•  ๋ชจ์Šต์„ ์„ค๊ฒŒํ•จ
  • SW์•„ํ‚คํ…์ณ๋ž€, SW์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•œ ๊ฒƒ์œผ๋กœ SW๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ฃผ์š” ์š”์†Œ๋“ค๊ณผ ์š”์†Œ๋“ค์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•œ๊ฒƒ

๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด

  • SW๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์—ญํ• ์„ ํ•˜๋Š” 3,4๊ฐœ์˜ ๊ณ„์ธต์„ ๊ตฌ๋ถ„
    - Presentation Layer
    • Application Layer
    • Business Layer
    • Data Access Layer
  • ๊ณ„์ธต๊ฐ„์— ํ˜ธ์ถœ์„ ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ ํ˜‘๋ ฅํ•˜๋ฉฐ ์ „์ฒด ์›น์„œ๋น„์Šค ๊ตฌ์„ฑ

Spring Controller์˜ ์ดํ•ด

Spring Controller

  • ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์˜ Presentation Layer์— ํ•ด๋‹น
  • Client(์›น ๋ธŒ๋ผ์šฐ์ €, ๋ชจ๋ฐ”์ผ ์•ฑ) ์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ 
  • Application Layer์— ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์œ„์ž„
  • Client์— ์ตœ์ข… ์‘๋‹ต์„ ํ•˜๋Š” ์—ญํ• 
    - view : Client๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•œ ๋‹ต์˜ ๊ฒฐ๊ณผ๋กœ ๋ณด๊ฒŒ ๋˜๋Š” ์›นํŽ˜์ด์ง€
    • data : Client๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ

Controller ์ฝ”๋“œ

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

@Controller VS @RestController

  • ์‘๋‹ตํ˜•ํƒœ ๋‹ค๋ฆ„
    - Controller : view ์‘๋‹ต(html ํŒŒ์ผ๋“ฑ)
    - RestController : data ์‘๋‹ต

RequestMapping๊ณผ URI

RequestMapping๊ณผ URI

  • RequestMapping Annotation์— URI Path ์ •๋ณด๋ฅผ ๋ช…์‹œ
    - @RequestMapping(value = "/user")
profile
์ž˜ํ•ด ๋ณด๊ฒ ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€