[SpringBoot] ์Šคํ”„๋ง ๋ถ€ํŠธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ
ยท
๐Ÿ”งFramework/SprintBoot
ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ž€?ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์˜๋„๋Œ€๋กœ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” test ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ž‘์—…ํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ํŒจํ„ด์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํŒจํ„ด์€ "given-when-then" ํŒจํ„ด์ด๋‹ค.  @DisplayName("Save New Pet") @Test public void savePetTest(){ // given : ๋ฐ˜๋ ค๋™๋ฌผ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„ ๊ณผ์ • final String name = "BlackCherry"; final int age = 4; final Pet pet = new Pet(name, age); // when : ์‹ค์ œ๋กœ ์ €์žฅ final..
[SpringBoot] ์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ๊ตฌ์กฐ
ยท
๐Ÿ”งFramework/SprintBoot
์Šคํ”„๋ง ๋ถ€ํŠธ 3์˜ ๊ตฌ์กฐ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ๊ฐ ๊ณ„์ธต์ด ์–‘ ์˜†์˜ ๊ณ„์ธต๊ณผ ํ†ต์‹ ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ฐ ๊ณ„์ธต์€ ์„œ๋กœ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๊ณ„์ธต์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ์ฃผ์ง€๋Š” ์•Š๋Š”๋‹ค. ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธตHTTP ์š”์ฒญ์„ ๋ฐ›์•„ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต์œผ๋กœ ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต ์—ญํ• ์„ ํ•˜๋ฉฐ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์—ฌ๋Ÿฌ๊ฐœ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋กœ์ง์ธ ์„œ๋น„์Šค๊ฐ€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต์˜ ์—ญํ• ์„ ํ•œ๋‹ค. ํผ์‹œ์Šคํ„ด์Šค ๊ณ„์ธต๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” DAO(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณ„์ธต๊ณผ ์ƒํ˜ธ์ž‘์šฉ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด)๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Repository๊ฐ€ ํผ์‹œ์Šคํ„ด์Šค ๊ณ„์ธต์˜ ์—ญํ• ์„ ํ•œ๋‹ค.  ์Šคํ”„๋ง ๋ถ€ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์„ฑmain์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ณต๊ฐ„. ..
[SpringBoot] ์Šคํ”„๋ง ๋ถ€ํŠธ ์•Œ์•„๋ณด๊ธฐ - 2
ยท
๐Ÿ”งFramework/SprintBoot
@SpringBootApplicationimport org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์€ ์ž๋ฐ”์˜ main() ๋ฉ”์„œ๋“œ์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค. @SpringBootApplication ์• ๋„ˆํ…Œ์ด์…˜์€ ์Šคํ”„๋ง๋ถ€ํŠธ์— ํ•„์š”ํ•œ ๊ธฐ๋ณธ ์„ค์ •์„ ํ•ด์ค€๋‹ค. "SpringApplication.run(..
[SpringBoot] ์Šคํ”„๋ง ๋ถ€ํŠธ ์•Œ์•„๋ณด๊ธฐ - 1
ยท
๐Ÿ”งFramework/SprintBoot
์Šคํ”„๋ง ๋ถ€ํŠธ ๊ฐ„๋‹จ ์˜ˆ์ œ@RestControllerpublic class TestController{ @GetMapping("/test") public String test() { return "Hello World!"; }}TestController.java์— ์œ„ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  SpringBoot๋ฅผ ์‹คํ–‰ํ•˜๊ณ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ https://localhost:8080/test๋กœ ์ ‘์†ํ•˜๋ฉด Hello world๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค localhost์ธ 127.0.0.0์€ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฃจํ”„๋ฐฑ ํ˜ธ์ŠคํŠธ๋ช…์ด๋ฉฐ ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ ์ปดํ“จํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 8080์€ ์Šคํ”„๋ง์˜ ํฌํŠธ ๋ฒˆํ˜ธ์ด๊ณ , /test๋Š” @GetMapping์ด๋ผ๋Š” ์• ๋„ˆํ…Œ์ด์…˜์œผ๋กœ ๋ฉ”์„œ๋“œ์™€ ๋งคํ•‘ํ•  ๋•Œ ์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ ์„ค์ •ํ•œ ๊ฒฝ๋กœ์ด๋‹ค.  ์Šค..
[SpringBoot] ์Šคํ”„๋ง๊ณผ ์Šคํ”„๋ง ๋ถ€ํŠธ
ยท
๐Ÿ”งFramework/SprintBoot
์Šคํ”„๋ง์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ : ๋Œ€๊ทœ๋ชจ์˜ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œํ”„ํŠธ์›จ์–ด ๋ถ„์•ผ๊ฐ€ ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ ์•คํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‚ฌ์šฉ์ž์˜ ๋งŽ์€ ์š”์ฒญ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ด์„œ๋ฒ„์˜ ์„ฑ๋Šฅ, ๋ณด์•ˆ, ์•ˆ์ •์„ฑ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.  ์Šคํ”„๋ง์€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜์—ฌ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์„œ๋ฒ„ ์„ฑ๋Šฅ, ์•ˆ์ •์„ฑ, ๋ณด์•ˆ์„ ๋†’์€ ์ˆ˜์ค€์œผ๋กœ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋Š” ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.  ์Šคํ”„๋ง ๋ถ€ํŠธ์Šคํ”„๋ง์€ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ์ด์ง€๋งŒ, ์„ค์ •์ด ๋งค์šฐ ๋ณต์žกํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์Šคํ”„๋ง๋ถ€ํŠธ๋Š” ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค. ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์„ค์ •์„ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ์˜์กด์„ฑ ์„ธํŠธ๋ผ๊ณ  ํ•˜๋Š” ์Šคํƒ€ํ„ฐ๋ฅผ ํ™œ์šฉ..
์—ฌ์šฐ๋น„_YoBi
'๐Ÿ”งFramework/SprintBoot' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก