์ „์ฒด ๊ธ€ 479

๐ŸŸข [Spring] [Project] ํ•ญ๊ณต๊ถŒ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ

๐Ÿ“‘ ํ•ญ๊ณต๊ถŒ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 2023-07-17 ~ 2023-07-28 ๐Ÿ“‹ Spring MVC Projcet ๊ฐœ๋ฐœ ํ™˜๊ฒฝ โœ… UI ์–ธ์–ด ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : HTML / CSS / JavaScript / JSP / jQuery โœ… Language : JDK 8 / Spring Framework 4.3.9 / MyBatis / Maven โœ… Infra : Apache Tomcat v9.0 / Oracle DataBasse 11g XE โœ… Configuration : Github / ERD Cloud / Notion Spring MVC Project ๋ฅผ ํ•˜๋ฉฐ ์‚ฌ์šฉํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋กœ View ๋‹จ์— ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์€ Jsp ์™€ jQuery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฐ ๋™์  ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์—ˆ..

๐ŸŸข [Spring] No converter found for return value of type: class java.lang.Boolean

Jsp์™€ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜์ด๋‹ค. @ResponseBody ๋„ ์จ๋ณด๊ณ  ResponseEntity๋„ ์‚ฌ์šฉํ•ด๋ดค๋Š”๋ฐ ๋˜์ง€ ์•Š์•„์„œ pom.xml์—์„œ ์˜์กด์„ฑ ์„ค์ •์„ ํ•ด์ฃผ์—ˆ๋”๋‹ˆ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. com.fasterxml.jackson.core jackson-core 2.9.2 com.fasterxml.jackson.core jackson-databind 2.9.2 ์œ„์˜ ์ฝ”๋“œ๋ฅผ pom.xml์— ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๐Ÿ“‘ ErrorNote 2023.07.21

๐ŸŸข [Spring] Spring ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ์ค‘ Commit

๐Ÿšฉ SQL ์—์„œ Commit ํ•˜๊ธฐ Spring ๊ฐœ๋ฐœ ๋„์ค‘ update๋ฅผ ํ•˜๋Š”๋ฐ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค. Controller์— ๊ฐ’์€ ๋ชจ๋‘ ์ž˜ ๋„˜์–ด๊ฐ€๊ณ  update๋งŒ ์‹คํ–‰๋˜๋ฉด ๋˜๋Š”๋ฐ ๋”์ด์ƒ ๋„˜์–ด๊ฐ€์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ ๋‚ด๊ฐ€ SQL Developer์—์„œ Update ๋ฅผ ์‹คํ–‰ ํ›„ Commit ์„ ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ด ๋•Œ ํŠธ๋žœ์žญ์…˜์ด ์ข…๋ฃŒ๋˜์ง€ ์•Š์•„ ๋‚ด Controller์˜ Update๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ด๋‹ค. SQL Developer์—์„œ Update๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Lock์ด ๊ฑธ๋ฆฐ๋‹ค๊ณ  ํ•œ๋‹ค.

๐Ÿ“‘ ErrorNote 2023.07.20

๐ŸŸข [Spring] @Pattern ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿšฉ Spring์—์„œ ๊ฒ€์ฆ ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉํ•˜๊ธฐ org.hibernate hibernate-validator-annotation-processor 4.1.0.Final javax.validation validation-api 1.0.0.GA javax.xml.bind jaxb-api 2.3.0 pom.xml ์— ์œ„์˜ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•ด์ค€๋‹ค. ๋ฒ„์ „์€ ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ์— ๋งž๊ฒŒ๋” ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๐ŸŸข [Spring] @RequiredArgsConstructor ์ƒ์„ฑ์ž ์ฃผ์ž…

๐Ÿšฉ @RequiredArgsConstructor ์ƒ์„ฑ์ž ์ฃผ์ž… ์•ž์„œ ์˜์กด์„ฑ ์ฃผ์ž…์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…์„ ํ–ˆ์—ˆ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์€ ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ ์ค‘ ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์‚ฌ์šฉ์„ ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ด์ „์— ์„ค๋ช…์„ ํ–ˆ๋‹ค. ๊ทธ ๋•Œ ์„ค๋ช…ํ•  ๋‹น์‹œ์—๋Š” @Autowired ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด์„œ ๋ชจ๋“  ์ƒ์„ฑ์ž์— ์ถ”๊ฐ€๋ฅผ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€์œผ๋‚˜ Lombok์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋” ๊น”๋”ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•ด์ง„๋‹ค. https://dev-wnstjd.tistory.com/447 ๐ŸŸข [Spring] ์Šคํ”„๋ง ์˜์กด์„ฑ ์ฃผ์ž…(DI) - [1] ๐Ÿšฉ ์˜์กด์„ฑ ์ฃผ์ž…์˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ [ ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ž€โ“] Spring ํ”„๋ ˆ์ž„์›Œํฌ๋Š” 3๊ฐ€์ง€ ํ•ต์‹ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋‹ค ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection, DI) ์ด๋‹ค. DI๋Š” ์™ธ๋ถ€์—์„œ ..

๐ŸŸข [Spring] Eclipse ์Šคํ”„๋ง(Spring) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

๐Ÿšฉ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„ ์›Œํฌ ์Šคํ”„๋ง์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฉด์ด ์žˆ๋‹ค. ์„ค์ • ํŒŒ์ผ๋„ ๋งŽ๊ณ  ์ž๋ฐ” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋„ ์„ค์ •ํ•ด์ค˜์•ผํ•˜๊ณ  ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๊ธฐ์—๋Š” ์–ด๋ ต์ง€๋งŒ ๊ทธ๋งŒํผ ๋งŽ์ด ์“ฐ์ด๊ณ  ์•„์ง๊นŒ์ง€ ์šฐ๋ฆฌ๋‚˜๋ผ์—์„œ๋Š” ์ž๋ฐ”๊ณตํ™”๊ตญ์ด๋ผ๋Š” ๋ง์ด ์žˆ์–ด ๊ผญ ๋ฐฐ์›Œ์•ผ ํ•  ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ Eclipse๋ฅผ ํ†ตํ•ด ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์•ž์„œ ๋งํ•œ ์ž๋ฐ” ์„ค์ •์€ ๋‹ค ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ์„ค๋ช…์„ ์ง„ํ–‰ํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค. ๐Ÿšฉ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ผ๋‹จ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ์œ„ํ•ด Eclipse๋ฅผ ์ผœ๊ณ  ์™ผ์ชฝ ๋งจ ์œ„์— ์žˆ๋Š” File -> New -> Spring Legacy Project ๋ฅผ ์„ ํƒํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Project name์— ์ž์‹ ์ด ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ๋„ฃ๋Š”๋‹ค. ์•„๋ž˜์˜ Templates์—์„œ๋Š” Spring ..

๐ŸŸข [Spring] ์Šคํ”„๋ง ์˜์กด์„ฑ ์ฃผ์ž…(DI) - [2]

๐Ÿšฉ ์ƒ์„ฑ์ž ์˜์กด์„ฑ ์ฃผ์ž… [ DI ] ์„ ์จ์•ผํ•˜๋Š” ์ด์œ  ์ €๋ฒˆ ๊ธ€์—์„œ ์˜์กด์„ฑ ์ฃผ์ž…์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์˜€๋‹ค. ํ•„๋“œ ์ฃผ์ž…, ์ˆ˜์ •์ž ์ฃผ์ž…, ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์„ค๋ช…ํ•˜์˜€๋Š”๋ฐ ์ด ์ค‘ ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์จ์•ผํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•  ๊ฒƒ์ด๋‹ค. ์ƒ์„ฑ์ž ์ฃผ์ž…(Constructor Injection)์€ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์˜์กด ๊ด€๊ณ„๋ฅผ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. @Controller public class ControllerTest{ IServiceTest service; @Autowired public Controller(IServiceTest service){ this.service = service; } ์™œ ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ? ์ƒ์„ฑ์ž ์ฃผ์ž…์€ ์ƒ์„ฑ์ž์˜ ํ˜ธ์ถœ ์‹œ์ ์— 1ํšŒ ํ˜ธ์ถœ ๋˜๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฃผ์ž…๋ฐ›์€ ๊ฐ์ฒด๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฐ˜๋“œ์‹œ ๊ฐ์ฒด..

๐ŸŸข [Spring] ์Šคํ”„๋ง ์˜์กด์„ฑ ์ฃผ์ž…(DI) - [1]

๐Ÿšฉ ์˜์กด์„ฑ ์ฃผ์ž…์˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ [ ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ž€โ“] Spring ํ”„๋ ˆ์ž„์›Œํฌ๋Š” 3๊ฐ€์ง€ ํ•ต์‹ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection, DI) ์ด๋‹ค. DI๋Š” ์™ธ๋ถ€์—์„œ ๋‘ ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ฒฐ์ •ํ•ด์ฃผ๋Š” ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ, ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์ด์— ๋‘ฌ์„œ ๊ธ€๋ž˜์Šค ๋ ˆ๋ฒจ์—์„œ๋Š” ์˜์กด๊ด€๊ณ„๊ฐ€ ๊ณ ์ •๋˜์ง€ ์•Š๋„๋ก ํ•˜๊ณ  ๋Ÿฐํƒ€์ž„ ์‹œ์— ๊ด€๊ณ„๋ฅผ ๋™์ ์œผ๋กœ ์ฃผ์ž…ํ•˜์—ฌ ์œ ์—ฐ์„ฑ์„ ํ™•๋ณดํ•˜๊ณ  ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. public class testController{ private testService service; } ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด testController ๊ฐ์ฒด๊ฐ€ testService ๊ฐ์ฒด์— ์˜์กด์„ฑ์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด ๋‘˜์˜ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด์ฃผ๋Š” ๊ฒƒ์„ ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ผ๊ณ  ํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ์ฃผ์ž…..

๐Ÿšฉ 2023 / 06 TIL[Today I Learned] ํšŒ๊ณ 

๐Ÿ“Œ 2023 - 06 ์ด๊ฒƒ์ €๊ฒƒ ํ•˜๋‹ค๋ณด๋‹ˆ 6์›”๋„ ๋ฒŒ์จ ๋‹ค ์ง€๋‚˜๊ฐ”๋‹ค. 6์›”์—๋Š” Spring์„ ํ•˜๋ฉด์„œ ๋ธ”๋กœ๊ทธ๋ฅผ ์ž˜ ์“ฐ๋ ค๊ณ ํ–ˆ๋Š”๋ฐ ์ƒ๊ฐ๋งŒํผ ์‰ฝ์ง€๋Š” ์•Š์•˜๋‹ค. ๊ทธ๋ž˜๋„ ๋‚˜๋ฆ„ ์ •๋ฆฌ๋„ ๋ช‡๊ฐœ ํ•˜๊ณ  ๊ธฐ๋ณธ์ ์ธ ํ‹€์€ ๋‹ค ์žกํžŒ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทผ๋ฐ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ๋„ˆ๋ฌด ์˜ค๋žซ๋™์•ˆ ์•ˆํ•ด์„œ ๋‹ค ๊นŒ๋จน์–ด๋ฒ„๋ ธ๋‹ค. ๊ทธ๋ž˜๋„ ๋ชฉํ‘œ ์„ค์ •์„ ํ•˜๊ณ  ํ‰์ผ์— 6์‹œ์— ์šด๋™์„ ํ•˜๊ณ  ์ถœ๊ทผํ•˜๊ธฐ๋กœ ๋งˆ์Œ๋จน์—ˆ๋Š”๋ฐ ํ•œ๋‹ฌ๋™์•ˆ์€ ์ž˜ ์ง€์ผœ์ ธ์„œ ๊ธฐ๋ถ„์ด ์ข‹๋‹ค. ๐Ÿšฉ 7์›”์˜ ๋ชฉํ‘œ 7์›” ๋ชฉํ‘œ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ๋ฌด๋ฆฌ ์ง“๊ณ  ๋๋‚˜๋ฉด ์ž ์‹œ ํœด์‹์„ ๊ฐ€์ ธ์•ผ๊ฒ ๋‹ค. ์ž๊พธ ๊ธ€์„ ์“ฐ๋‹ค๋ณด๋‹ˆ ์กฐ๊ธˆ ๋Œ€์ถฉ์“ฐ๋Š” ๊ฐ์ด ์žˆ๋Š”๋ฐ ๊ทธ๋ž˜๋„ ๊พธ์ค€ํžˆ ๊ธ€์„ ์“ฐ๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค. ๐Ÿ’ป Github https://github.com/wnstjd9701 wnstjd9701 - Overview wnstjd9701 has 13 repositories..