JavaRush /Java Blog /Random-KO /์ปคํ”ผ ๋ธŒ๋ ˆ์ดํฌ #75. Spring Boot ์‚ฌ์šฉ์˜ ์žฅ์ ๊ณผ ๋‹จ์ . Java์˜ ๋ฌธ์ž์—ด ํ•จ์ˆ˜

์ปคํ”ผ ๋ธŒ๋ ˆ์ดํฌ #75. Spring Boot ์‚ฌ์šฉ์˜ ์žฅ์ ๊ณผ ๋‹จ์ . Java์˜ ๋ฌธ์ž์—ด ํ•จ์ˆ˜

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

Spring Boot ์‚ฌ์šฉ์˜ ์žฅ์ ๊ณผ ๋‹จ์ 

์ถœ์ฒ˜: Dev.to Spring Boot๋Š” Pivotal Software์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ ์†Œ์Šค Java ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์†๋„์™€ ์‚ฌ์šฉ ํŽธ์˜์„ฑ์œผ๋กœ ์ธํ•ด WAR(์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„์นด์ด๋ธŒ) ๋ฐฐํฌ ๋ฐ ๋…๋ฆฝํ˜• Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์†”๋ฃจ์…˜์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปคํ”ผ ๋ธŒ๋ ˆ์ดํฌ #75.  Spring Boot ์‚ฌ์šฉ์˜ ์žฅ์ ๊ณผ ๋‹จ์ .  Java์˜ ๋ฌธ์ž์—ด ํ•จ์ˆ˜ - 1Spring Boot๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์œ ์—ฐํ•œ ์‚ฌ์šฉ์ž ์ •์˜, ๊ฐ•๋ ฅํ•œ ์ผ๊ด„ ์ฒ˜๋ฆฌ, ํšจ์œจ์ ์ธ ์ž‘์—… ํ๋ฆ„ ๋ฐ ๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ Spring ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ’๋ถ€ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์—์„œ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋ณด๋‹ค ๋‹๋ณด์ž…๋‹ˆ๋‹ค.

์Šคํ”„๋ง ๋ถ€ํŠธ ์†Œ๊ฐœ

Spring Boot์— ๊ด€ํ•ด ๊ฐ€์žฅ ๋จผ์ € ์–ธ๊ธ‰ํ•  ์ ์€ Spring Boot์™€ Spring Framework๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. Spring์€ Spring MVC, Spring JDBC, Spring Security ๋“ฑ๊ณผ ๊ฐ™์€ ์ˆ˜๋งŽ์€ ๊ธฐ์„ฑ ๋ชจ๋“ˆ์„ ํฌํ•จํ•˜๋Š” Java ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ „์ฒด ์ƒํƒœ๊ณ„์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— Spring Boot๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Spring์˜ ํ™•์žฅ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ด‰์ง„ํ•˜๊ณ  ์†๋„๋ฅผ ๋†’์—ฌ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋™ ๊ตฌ์„ฑ

์ž๋™ ๊ตฌ์„ฑ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋‹จ๊ณ„ ์ˆ˜๋ฅผ ์ค„์ด๋Š” Spring Boot์—์„œ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด์ „์— ์ถ”๊ฐ€๋œ ์ข…์†์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ Spring ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. Spring Boot ์ž๋™ ๊ตฌ์„ฑ์€ ๋›ฐ์–ด๋‚œ ์œ ์—ฐ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ข…์†์„ฑ ์ฃผ์žฅ

์˜๊ฒฌ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ Spring Boot ์ž์ฒด๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ๊ตฌ์„ฑ Bean ์„ธํŠธ๋ฅผ ์ •์˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ•„์š”ํ•œ ์ข…์†์„ฑ์— ๋”ฐ๋ผ ์„ค์น˜ํ•  ํŒจํ‚ค์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Spring Boot ๊ฐœ๋ฐœ์ž๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์ด ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด์—์„œ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋” ๋งŽ์€ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์„ ์ฆ‰์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ž„๋ฒ ๋””๋“œ ์„œ๋ฒ„

์ž„๋ฒ ๋””๋“œ ์„œ๋ฒ„๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐฐํฌ ํ™˜๊ฒฝ์— ์‚ฌ์ „ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Spring Boot๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Tomcat ์„œ๋ฒ„๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€๋งŒ Jetty ๋˜๋Š” Undertow๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์žฅํ˜• ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณด๋‹ค ํšจ์œจ์ ์ธ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์žฌ์‹œ์ž‘ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค.

์˜คํ”„๋ผ์ธ์œผ๋กœ ์ž‘์—…

Spring Boot๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์›น ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜์ง€ ์•Š๊ณ ๋„ ํ”„๋กœ๋•์…˜ ์ˆ˜์ค€์˜ ๋…๋ฆฝํ˜• Spring ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์›น ์„œ๋ฒ„๋กœ ํŒจํ‚ค์ง•, ์„ ํƒ, ๋กœ๋“œ ๋ฐ ๊ตฌ์„ฑํ•˜๊ณ  ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Spring Boot๋กœ ๊ตฌ์ถ•๋œ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํŒจํ‚ค์ง•๋งŒ ํ•˜๋ฉด ๊ฐ„๋‹จํ•œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ์ค€๋น„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์™œ ๋งŒ๋“œ๋Š”๊ฐ€?

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

๋ด„์„ ๋ฐฐ์›Œ์•ผ ํ• ๊นŒ?

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

์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ์ด์ 

Spring Boot๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋˜๋Š” ์ดˆ๊ธฐ ์„ค์น˜ ๋ฐ ๋ฐฐํฌ ํ™˜๊ฒฝ ์„ค์ •์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Spring Boot์˜ ์ฃผ์š” ์žฅ์ :
  • Spring์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ๋•์…˜๊ธ‰ Spring ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ž๋™ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์ƒ์‚ฐ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ž„๋ฒ ๋””๋“œ ์„œ๋ฒ„(Tomcat, Jetty ๋ฐ Undertow).
  • ์ธก์ •ํ•ญ๋ชฉ, ์ƒํƒœ ๋“ฑ ๋‚ด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋Šฅ์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” HTTP ์—”๋“œํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค.
  • XML ๊ตฌ์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž„๋ฒ ๋””๋“œ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ๋” ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค.
  • MySQL, Oracle, MongoDB, Redis, ActiveMQ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ๋Œ€๊ธฐ์—ด ์„œ๋น„์Šค์— ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Spring ์ƒํƒœ๊ณ„์™€์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ.
  • ๋Œ€๊ทœ๋ชจ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋‹ค์–‘ํ•œ ๊ต์œก ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ์ž…๋ฌธ ๊ธฐ๊ฐ„์„ ๋”์šฑ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ๋‹จ์ 

  • ํ†ต์ œ๋ ฅ ๋ถ€์กฑ. Spring Boot๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ข…์†์„ฑ์„ ๋งŽ์ด ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๋ฐฐํฌ ํŒŒ์ผ์ด ์ปค์ง‘๋‹ˆ๋‹ค.
  • ๋ ˆ๊ฑฐ์‹œ ๋˜๋Š” ๊ธฐ์กด Spring ํ”„๋กœ์ ํŠธ๋ฅผ Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค.
  • ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๊ฐœ๋ฐœ์ž์— ๋”ฐ๋ฅด๋ฉด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ์ž‘์—…ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์—†์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Spring Boot๋Š” ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด

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

Java์˜ ๋ฌธ์ž์—ด ํ•จ์ˆ˜

์ถœ์ฒ˜: DZone ์ด ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ๋ฏธ์ ์œผ๋กœ ๋ณด๊ธฐ ์ข‹์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด Java์˜ ๋‚ด์žฅ ๋ฌธ์ž์—ด ํ•จ์ˆ˜๋ฅผ ๋” ์ž˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.์ปคํ”ผ ๋ธŒ๋ ˆ์ดํฌ #75.  Spring Boot ์‚ฌ์šฉ์˜ ์žฅ์ ๊ณผ ๋‹จ์ .  Java์˜ ๋ฌธ์ž์—ด ํ•จ์ˆ˜ - 2

๋ฌธ์ž์—ด์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

์„ ์˜ ๋ชจ์–‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

String line;

์„ ์˜ ๊ธธ์ด๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

String line = new String[any length];

์ฝ˜์†”์—์„œ ๋ผ์ธ ์–ป๊ธฐ:

Scanner in = new Scanner(System.in);

String line = in.nextLine();

์œ„์น˜ ์–ป๊ธฐ

๋ฌธ์ž์˜ ์œ„์น˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ indexOf(...) ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š” . ๊ด„ํ˜ธ ์•ˆ์— ์“ฐ์—ฌ์ง„ ๋ฌธ์ž(๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ)์˜ ์ˆซ์ž ๊ฐ’(์œ„์น˜)์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
int pos = line.indexOf('any symbol');
' ' ๋Š” ๋ฌธ์ž์šฉ์ด๊ณ  " " ๋Š” ๋ฌธ์ž์—ด(๋ฌธ์ž ์ง‘ํ•ฉ)์šฉ์ด๋ผ๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์„ธ์š” .

์ž๋ฅด๋‹ค

์œ„์น˜๋ฅผ ํ™•๋ณดํ•œ ํ›„์—๋Š” ๋ผ์ธ์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด line="Hello-World" ๊ฐ€ ์žˆ๊ณ  line="Hello World" ๋ฅผ ์–ป์œผ๋ ค๋Š” ๊ฒฝ์šฐ "-"๋ฅผ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ

substring(...) ์—ฌ๊ธฐ ๊ด„ํ˜ธ ์•ˆ์— (์‹œ์ž‘ ์œ„์น˜, ๋ ์œ„์น˜);. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์œ„์น˜ 0์—์„œ '-' ์œ„์น˜๋กœ ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์œ„์น˜ 5์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ newline = line.substring(0,5); ๊ทธ๋Ÿฐ ๋‹ค์Œ ์„ ์˜ "๊ผฌ๋ฆฌ"("World")๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœํ–‰ += line.substring(6, line.length()); length() ๊ธธ์ด๋Š” ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž ์ˆ˜๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜์œ„ ๋ฌธ์ž์—ด์˜ ๋ ์œ„์น˜๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Equals(...) ๋‘ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋ ค๋ฉด equals(...) ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค . ๋ถ€์šธ ๋ณ€์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ๊ฒฐ๊ณผ๋Š” true ๋˜๋Š” false์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ if ๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค .
if (line.isEmpty()) {
    System.out.println("Your line is empty");
}
match() ์ „์ฒด ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ์ผ๋ถ€ ๋ถ€๋ถ„(ํŒจํ„ด ์‚ฌ์šฉ)์„ ๋น„๊ตํ•˜๋ ค๋ฉด match() ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š” . ํŒจํ„ด์€ ์ •๊ทœ์‹์ž…๋‹ˆ๋‹ค. match()๋Š” ๋ถ€์šธ ๋ณ€์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์ฃผ๋กœ if ๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค .
if (line.matches ("\\d{3}") {
    System.out.println("Your line contains 3 numbers");
}
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION