๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ’Š Java & Kotlin & Spring/- spring framework +43

[Spring Framework] DI Application์„ ๋งŒ๋“ค์–ด๋ณด์ž. ์ด๋ฒˆ ๊ธ€์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” SKplanet Tacademy - Spring Framework Basic ๋™์˜์ƒ ๊ฐ•์˜ ์ž๋ฃŒ์— ์žˆ๋Š” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ง€๋‚œ ์‹œ๊ฐ„ IoC ์ปจํ…Œ์ด๋„ˆ์™€ DI์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…๊ณผ ์šฉ์–ด๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด์ œ ์˜ค๋Š˜์€ Ioc Container(DI Container)๋ฅผ ์–ด๋–ป๊ฒŒ Spring์—์„œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž. POJO ํด๋ž˜์Šค ์ž‘์„ฑ ์„ค์ • ๋ฉ”ํƒ€์ •๋ณด XML ์ž‘์„ฑ DI ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ์ž‘์„ฑ POJO ํด๋ž˜์Šค์˜ ๋‹ค์ด์–ด๊ทธ๋žจ ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์ œ๋กœ ๊ตฌ์„ฑํ•  POJOํด๋ž˜์Šค์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. Hello.class Printer.interface StringPrinter.class ConsolePrinter.class beans.xml :: XML ์„ค์ •.. 2020. 9. 5.
[Spring Framework] Spring์˜ ํ•ต์‹ฌ IoC/DI์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. ์šฐ๋ฆฌ๋Š” ์ง€๋‚œ ์‹œ๊ฐ„ ๋ฌด์—‡์ด Framework์ด๋ฉฐ ์™œ Spring์ด์–ด์•ผ ํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. Framework์˜ ํŠน์„ฑ์ด IoC, ์ฆ‰ ์ œ์–ด์˜ ์—ญ์ „์ด๋ผ๊ณ  ํ•˜์˜€๋Š”๋ฐ ์˜ค๋Š˜์€ ๊ทธ ์ œ์–ด์˜ ์—ญ์ „์— ์˜๋ฏธ์™€ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ œ์–ด๋ฅผ ์—ญ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ DI์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค. ๊ฒฐ๋ก ์„ ๋ฏธ๋ฆฌ ๋ง ํ•˜์ž๋ฉด Spring IoC Container๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์„ค์ •์„ ํ†ตํ•ด์„œ Bean์„ ๊ด€๋ฆฌํ•œ๋‹ค. ์ง€๊ธˆ ์ด ๋ง์„ ํ•˜๋‚˜๋„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ด ์ •์ƒ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ์ง๋ฉดํ–ˆ์œผ๋‹ˆ ํ•˜๋‚˜ ํ•˜๋‚˜ Divide And Conquer ๋ฅผ ํ•ด๋ณด์ž ์šฐ๋ฆฌ๋Š” ์œ„์˜ ๋ฌธ์žฅ์„ ์ž˜๊ฒŒ ๋‚˜๋ˆ ๋ณผ ๊ฒƒ์ด๋‹ค. IoC Container Bean ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ด 3 ๊ฐ€์ง€๋งŒ ์•Œ๋ฉด ์œ„์˜ ๋ฌธ์žฅ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์กฐ๊ธˆ ๊ฐˆ ๊ฒƒ ๊ฐ™๋‹ค. IoC Container Fram.. 2020. 9. 4.
[Spring Framework] ์™œ Spring์ธ๊ฐ€? Spring์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์•Œ์•„๋ณด์ž ์ด๋ฒˆ ๊ธ€์€ GDG Spring Framework Study์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  Spring ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ณตํ†ต์ ์œผ๋กœ ์•Œ์•„์•ผํ•  Spring์˜ ์—ญ์‚ฌ์— ๋Œ€ํ•ด์„œ ์ž ์‹œ ์ด์•ผ๊ธฐํ•ด๋ณด๋ ค ํ•œ๋‹ค. Framework vs Library ์ผ๋‹จ Spring์„ ์‚ฌ์šฉํ•˜๊ธฐ์ „์— ๋ฌด์—‡์ด Library์ด๊ณ  ์™œ Framework์„ ์™œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํƒ„์ƒํ–ˆ๋Š”์ง€๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹จ์ˆœ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ๋“ค์˜ ์ง‘ํ•ฉ์„ ๋งํ•œ๋‹ค. Library ์šฐ๋ฆฌ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์‹œ์— ๊ธฐ์กด์— ๋งŒ๋“ค์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ์žฌํ™œ์šฉํ•จ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์ž‘ํ•œ๋‹ค. Framework ์™œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํƒ„์ƒํ–ˆ๋Š”์ง€๋Š” ํ•œ ๋‹จ์–ด๋กœ ์ •๋ฆฌํ•˜์ž๋ฉด Choas State -> Reusable State ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ฒฐ๊ตญ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค๋กœ ํ•˜๋‚˜์˜ ๋ผˆ๋Œ€๋ฅผ .. 2020. 9. 3.
[Springboot] IntelliJ๋ฅผ ์ด์šฉํ•˜์—ฌ Springboot + Mysql + Jpa + Lombok ํ”„๋กœ์ ํŠธ Setup ํ›„ Rest API ์„œ๋ฒ„ CRUD ํ…Œ์ŠคํŠธ (MacOS) ๋ณธ ๊ธ€์€ Springboot์™€ Mysql + Jpa + Lombok ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ธ”๋กœ๊ทธ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  Springboot + Jpa ๊ด€๋ จ ๊ธ€์€ ์ด ๊ธ€์— ์กด์žฌํ•˜๋Š” ๋‚ด์šฉ์„ ์ „์ œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ˆœ์„œ Springboot Project ์ƒ์„ฑ Gradle ์˜์กด์„ฑ ์ถ”๊ฐ€ application.properties ์„ค์ • db table ์ƒ์„ฑ Lombok ์„ค์ • ์ฝ”๋“œ ๊ตฌํ˜„ (model, controller, repository ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ) CRUD ํ…Œ์ŠคํŠธ ์ˆœ์„œ๋Š” IntelliJ IDE๊ฐ€ ๊น”๋ ค์žˆ๋‹ค๋Š” ์ „์ œ ํ•˜์— ์ง„ํ–‰๋œ๋‹ค. Springboot Project ์ƒ์„ฑ ์šฐ๋ฆฌ๋Š” Springboot ํ”„๋กœ์ ํŠธ๋ฅผ ์ด์šฉํ•ด์„œ JPA๋ฅผ ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ด๋ฏ€๋กœ Springboot ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ง์ ‘ S.. 2020. 8. 27.
[Spring & Springboot] Generic์„ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  Request, Response์— Header์™€ CRUD ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด์ž. ์ด ์‹œ๋ฆฌ์ฆˆ๋Š” Spring์—์„œ Generic์„ ์ด์šฉํ•˜์—ฌ CRUD ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด์ž.์™€ ์ด์–ด์ง€๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. Generic(์ œ๋„ˆ๋ฆญ)์„ ํ•ต์‹ฌ๋งŒ ์ดํ•ดํ•ด๋ณด์ž. Spring์—์„œ Generic์„ ์ด์šฉํ•˜์—ฌ CRUD ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด์ž. ์ด ๊ธ€์€ ์‹ค์ „์— ๊ด€ํ•œ ๊ธ€์ด๊ณ  ์ œ๋„ˆ๋ฆญ์— ๋Œ€ํ•œ ์ด๋ก ์ด ๋ถ€์กฑํ•˜์‹  ๋ถ„๋“ค์€ 1๋ฒˆ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ถฉ๋ถ„ํžˆ ์ˆ™์ง€ํ•˜๊ณ  ์˜ค์‹œ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ œ๋„ค๋ฆญ์„ ์‹ค์ „์—์„œ ์‚ฌ์šฉํ•ด๋ณด์ž. ์ง€๋‚œ ์‹œ๊ฐ„์— ๋ฐฐ์šด ์ œ๋„ค๋ฆญ์— ์ด์–ด์„œ ์ด์ œ ์‹ค์ „์—์„œ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ์œ„ํ•ด ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ํ•ด๋ณด์ž. Jpa + Springboot + Mysql ์—ฐ๋™์— ๋Œ€ํ•ด์„œ๋Š” ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  Http ํ†ต์‹ ์— Header๋ผ๋Š” ๊ณตํ†ต ๋ถ€๋ถ„์ด ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋‹ค. ์›๋ž˜๋ผ๋ฉด request, response ์— setHeader๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํ—ค๋”๋ฅผ ๊ด€.. 2020. 8. 27.
[Spring-Core] ์Šคํ”„๋ง์˜ ์ปค๋งจ๋“œ ๊ฐ์ฒด(Command Object)๋ฅผ ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž. ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๊ฒƒ์€ Spring-Command Object์ด๋‹ค. ์ปค๋งจ๋“œ ๊ฐ์ฒด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Spring์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์ด๋ผ๋Š” ๊ฐ€์ •์„ ํ•˜๊ณ  ๋ถˆํŽธํ•จ์„ ๋จผ์ € ์ƒ๊ฐํ•ด๋ณด๊ณ  Spring์ด ์ด ๋ถˆํŽธํ•จ์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ€๋ ค๊ณ  ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋กํ•˜์ž. ๋ถˆํŽธํ•จ : ๊ธฐ์กด์˜ Http ์š”์ฒญ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ์•ฝ request๋กœ 100๊ฐ€์ง€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. public String joinMember(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); String address = request.getParameter("addre.. 2020. 7. 30.