๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์Šคํ”„๋ง ๋ถ€ํŠธ ๋ฐฐ๋„ˆ ์ ์šฉํ•˜๊ธฐ(+ ๋ณ€ํ™˜ ์‚ฌ์ดํŠธ ์ถ”์ฒœ ๋ฐ color ๋ณ€๊ฒฝ) ์‹ค๋ฌด์—์„œ ๋ชจ ์„œ๋น„์Šค๋ฅผ ์šด์˜ ๊ฐœ๋ฐœ ํ•˜๋˜ ์ค‘.. ํ•œ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋กœ์ปฌ์—์„œ ๊ธฐ๋™ํ• ๋•Œ๋งˆ๋‹ค ๋ฌด์–ธ๊ฐ€ ๋ฐ‹๋ฐ‹ํ•จ์„ ๋Š๋ผ๊ณค ํ–ˆ๋Š”๋ฐ ๊ทธ ๋Š๋‚Œ์˜ ์ด์œ ๋Š” ๋ฐ”๋กœ ๋ฐฐ๋„ˆ์˜€๋‹ค. ๊ธฐ๋™ํ•  ๋•Œ ๋งˆ๋‹ค ์ฝ˜์†”์— ์ด๋Ÿฐ ๋ฉ‹๋“œ๋Ÿฌ์ง€์ง€ ์•Š์€ ๊ธฐ๋ณธ ๋ฐฐ๋„ˆ๊ฐ€ ์ฐํ˜”๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์ตœ๊ทผ์— ์Šคํ”„๋ง ๋ถ€ํŠธ๋กœ ์ „ํ™˜๋๊ณ , ์ „ํ™˜ ๋‹น์‹œ ๋ฐฐ๋„ˆ ๋ถ€๋ถ„์€ ๋”ฑํžˆ ์†๋ณด์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ง˜์— ๋“ค์ง€ ์•Š์•„.. ๊ทธ๋Ÿผ, ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ์˜ ๋ฐฐ๋„ˆ๋ฅผ ๋ฐ”๊ฟ”๋ณด์ž. ์Šคํ”„๋ง ๋ถ€ํŠธ ๋ฐฐ๋„ˆ ๋ณ€๊ฒฝ - banner.txt ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ resources/banner.txt๊ฐ€ ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น ํ…์ŠคํŠธ๋ฅผ ๊ธฐ๋™ ์‹œ ๋ฐฐ๋„ˆ๋กœ ๋ฟŒ๋ ค์ค€๋‹ค. ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ๋‹ค. ๐Ÿ“„ banner.txt ==================== My Banner ==================== ์ด์ œ ๋‹ค์‹œ .. 2021. 8. 31.
๋„ทํ”Œ๋ฆญ์Šค ์œ ๋ ˆ์นด(Eureka)๋ฅผ ์‚ฌ์šฉํ•œ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ ๊ตฌํ˜„ ๋„ทํ”Œ๋ฆญ์Šค ์œ ๋ ˆ์นด(Eureka)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์ž. ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ 2๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ•˜๋‚˜๋Š” ๋””์Šค์ปค๋ฒ„๋ฆฌ ์„œ๋ฒ„, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋””์Šค์ปค๋ฒ„๋ฆฌ ํด๋ผ์ด์–ธํŠธ ์—ญํ• ์„ ํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค. java 11 spring boot 2.4.9 gradle ๋””์Šค์ปค๋ฒ„๋ฆฌ ์„œ๋ฒ„ - ์œ ๋ ˆ์นด ์„œ๋ฒ„ ์šฐ์„  ๋””์Šค์ปค๋ฒ„๋ฆฌ ์„œ๋ฒ„ ์—ญํ• ์„ ํ•  ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ธํŒ…ํ•œ๋‹ค. Dependency spring-cloud-starter-eureka-server ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server' ์œ ๋ ˆ์นด ์„œ๋ฒ„ ํ™œ์„ฑํ™” ์Šคํ”„๋ง ๋ถ€ํŠธ ๋ฉ”์ธ ํด๋ž˜์Šค์— @EnableEurekaServer .. 2021. 8. 2.
[Spring Boot/Spring Web MVC] ViewController๋ฅผ ์ด์šฉํ•ด์„œ ๋ทฐ ๋งคํ•‘ํ•˜๊ธฐ [Spring Boot/Spring Web MVC] ViewController๋ฅผ ์ด์šฉํ•ด์„œ ๋ทฐ ๋งคํ•‘ํ•˜๊ธฐ @GetMapping("/hello") public String hello() { return "hello"; } ์œ„์™€ ๊ฐ™์ด ํŠน์ • ์š”์ฒญ url์— ๋Œ€ํ•ด ์ปจํŠธ๋กค๋Ÿฌ ๋กœ์ง ์—†์ด ๋ฐ”๋กœ ๋ทฐ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ๊ฒฝ์šฐ ViewController๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ทฐ๋ฅผ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ๋‹ค. @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/hello").setViewName("hell.. 2020. 3. 26.
์Šคํ”„๋ง ๋ถ€ํŠธ ํ…Œ์ŠคํŠธ - ๋‚ด์žฅ ์„œ๋ฒ„ ๋žœ๋ค ํฌํŠธ๋กœ ๋„์šฐ๊ธฐ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ…Œ์ŠคํŠธ - ๋‚ด์žฅ ์„œ๋ฒ„ ๋žœ๋ค ํฌํŠธ๋กœ ๋„์šฐ๊ธฐ ๐Ÿ‘‰ Dependency spring-boot 2.2.5.RELEASE junit 4.12 @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class WebtoonApiControllerTest { @LocalServerPort private int port; @Test public void printPort() throws Exception { System.out.println(port); assertNotEquals(port, 0); } @Autowired private TestRestTemplate.. 2020. 3. 24.
์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ์˜์กด์„ฑ ๊ด€๋ฆฌ(Dependency Management) ์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ์˜์กด์„ฑ ๊ด€๋ฆฌ(Dependency Management) ๊ธฐ๋ณธ์ ์ธ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ์˜ pom.xml ํŒŒ์ผ์„ ๋ณด๋ฉด ์˜์กด์„ฑ ์„ค์ •์ด spring-boot-starter-web๊ณผ spring-boot-starter-test ๋‘ ๊ฐœ ๋ฟ์ด๊ณ  ๋ฒ„์ „ ๋˜ํ•œ ๋ช…์‹œํ•˜์ง€ ์•Š๊ณ  ์žˆ์ง€๋งŒ ์ˆ˜ ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์•Œ์•„์„œ ๊ฐ€์ ธ์˜จ๋‹ค. org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์˜์กด์„ฑ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์ด๋‹ค. ๊ธฐ๋ณธ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋Š” spring-boot-starter-.. 2020. 3. 11.
์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ - Spring Initializr ์›น ๋„๊ตฌ ์‚ฌ์šฉ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ - Spring Initializr ์›น ๋„๊ตฌ ์‚ฌ์šฉ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• ์ค‘์—๋Š” Spring์—์„œ ์ œ๊ณตํ•˜๋Š” Spring Initializr ์›น ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ„ํŽธํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. https://start.spring.io/ ์— ์ ‘์†ํ•˜์ž. ์œ„ ์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ์ด๋Ÿฐ ํ™”๋ฉด์ด ๋ณด์ผ๊ฒƒ์ด๋‹ค. ์‹œ๊ฐ„์ด ํ๋ฆ„์— ๋”ฐ๋ผ UI๋Š” ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค. ์„ ํƒํ•ด์•ผํ•˜๋Š” ์˜ต์…˜์€ ์ฐจ๋ก€๋กœ, Project: ์‚ฌ์šฉํ•  ๋นŒ๋“œ ํˆด ์„ ํƒ (Maven/Gradle) Maven, Gradle์€ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ  ๋นŒ๋“œ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํˆด์ด๋‹ค. ๊ณผ๊ฑฐ์—๋Š” Maven์„, ์ตœ๊ทผ์—๋Š” Gradle์„ ์‚ฌ์šฉํ•˜๋Š” ์ถ”์„ธ์ด๋‹ค. ์Šคํ”„๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ ์ž์ฒด๋„ ์ตœ๊ทผ์—๋Š” Gradle๋กœ ํ•˜๊ณ  ์žˆ๋‹ค. Language: ์–ธ์–ด .. 2020. 3. 11.
[Spring] ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ - PropertyEditor, Converter ๊ทธ๋ฆฌ๊ณ  Formatter [Spring] ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ - PropertyEditor, Converter ๊ทธ๋ฆฌ๊ณ  Formatter 1. Data Binding(๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ)์˜ ์ •์˜ ๐Ÿ“ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์›น์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜์—ฌ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์€ ์ฃผ๋กœ ๋ฌธ์ž์—ด์ด๋ฉฐ, ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ด ๋ฌธ์ž์—ด์„ ๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ํƒ€์ž…(int, date, boolean, ... ๋˜๋Š” ๋„๋ฉ”์ธ ๊ฐ์ฒด ํƒ€์ž… ๊ทธ ์ž์ฒด)์œผ๋กœ ๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด ๊ฐ’์„ ํ”„๋กœํผํ‹ฐ ํƒ€์ž…์— ๋งž์ถฐ ๋ณ€ํ™˜ํ•˜์—ฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์ด๋ผ ํ•œ๋‹ค. 2. Spring์˜ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ Spring์€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ๊ธฐ๋Šฅ์„ ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ถ”์ƒํ™”ํ•˜์—ฌ ์ œ๊ณตํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ฃผ๋กœ ์›น MVC์—์„œ ์‚ฌ์šฉํ•˜์ง€๋งŒ web์— ๊ตญํ•œ๋˜์–ด ํŠนํ™”๋œ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๊ณณ.. 2020. 3. 6.