Chanho

[SpringDB] JDBC, Hibernate, JPA ๊ธฐ์ดˆ

JDBC (Java Database Connectivity) โ€˜JDBCโ€™๋Š” ์ž๋ฐ” ์–ธ์–ด๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๊ธฐ์ˆ ์ด๋‹ค. ์ด๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ‘œ์ค€ SQL ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. โ€˜JDBCโ€™๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜๋ฉฐ ๊ฐ โ€˜๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒค๋”โ€™(์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ด€๋ จ๋œ ...

[Solution] Spring - web server failed to start. port 8080 was already in use ํ•ด๊ฒฐ

Spring์—์„œ ์›น ์„œ๋ฒ„๋ฅผ ์‹คํ–‰์‹œ ์‹œ์ž‘ ์‹คํŒจ์™€ ํ•ด๋‹น ํฌํŠธ๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ์ค‘์ด๋ผ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋งˆ์ฃผ์น˜๋ฉฐ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์„ ๊ธฐ๋กํ•˜๊ณ ์ž ํ•œ๋‹ค. ํ•ด๋‹น ์˜ค๋ฅ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 8080 ํฌํŠธ๊ฐ€ ์ด๋ฏธ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ์‚ฌ์šฉ ์ค‘์ธ ํฌํŠธ ํ™•์ธ ๋ฐ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ ํฌํŠธ ํ™•์ธ # Window $ netstat -ano | find "...

[Spring] ์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ์ „๋žต์  ๊ธฐ๋Šฅ๋“ค

์Šคํ”„๋ง ๋ถ€ํŠธ(Spring Boot)๋Š” ํ˜„๋Œ€์ ์ธ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ์ „๋žต์  ํŠน์ง•์„ ์ œ๊ณตํ•œ๋‹ค. Auto-Configuration Spring Boot๋Š” โ€˜Classpathโ€™์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค....

[Spring] CDI(Contexts and Dependency Injection)

โ€˜Jakarta Contexts and Dependency Injectionโ€™์€ โ€˜Java EE(Enterprise Edition)โ€™ ํ™˜๊ฒฝ์—์„œ ์˜์กด์„ฑ ์ฃผ์ž…๊ณผ ๊ด€๋ จ๋œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ๊ธฐ๋Šฅ์ด๋‹ค. CDI๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ๋Š์Šจํ•œ ๊ฒฐํ•ฉ์„ ํ†ตํ•ด ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. ๐Ÿ’ก CDI๋ฅผ ์™œ...

[Spring] ์‹ฑ๊ธ€ํ†ค & ํ”„๋กœํ† ํƒ€์ž… Bean Scope

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋นˆ(Bean)์˜ ์Šค์ฝ”ํ”„(Scope)๋Š” ๋นˆ์ด ์ƒ์„ฑ๋˜๊ณ , ์กด์žฌํ•˜๋ฉฐ, ๊ด€๋ฆฌ๋˜๋Š” ๋ฐฉ์‹์„ ์ •์˜ํ•œ๋‹ค. ๊ฐ ์Šค์ฝ”ํ”„๋Š” ๋นˆ์˜ ์ƒ๋ช…์ฃผ๊ธฐ์™€ ๊ฐ€์šฉ์„ฑ์„ ๊ฒฐ์ •ํ•œ๋‹ค. ์ฃผ์š” ๋นˆ ์Šค์ฝ”ํ”„ (Bean Scope) ์‹ฑ๊ธ€ํ†ค(Singleton) ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ธฐ๋ณธ ์Šค์ฝ”ํ”„ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋‹น ๋นˆ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋œ๋‹ค. ...

[Spring] Bean์˜ ์ฆ‰์‹œ ๋กœ๋”ฉ๊ณผ ์ง€์—ฐ ๋กœ๋”ฉ

์Šคํ”„๋ง(Spring) ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ โ€˜์ฆ‰์‹œ ๋กœ๋”ฉ(Eager Loading)โ€™๊ณผ โ€˜์ง€์—ฐ ๋กœ๋”ฉ(Lazy Loading)โ€™์œผ๋กœ ๋นˆ(Bean)์„ ์ดˆ๊ธฐํ™” ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•œ๋‹ค. ์ง€์—ฐ ๋กœ๋”ฉ(Lazy Loading) ์ง€์—ฐ ๋กœ๋”ฉ์€ ๋นˆ์ด ์‹ค์ œ๋กœ ํ•„์š”ํ•  ๋•Œ๊นŒ์ง€ ์ƒ์„ฑ์„ ์ง€์—ฐ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋นˆ์— ๋Œ€ํ•œ ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ ํ•ด๋‹น ๋นˆ์„ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™” ํ•œ๋‹ค. ์ด ...

[Spring] ์Šคํ”„๋ง ๋นˆ(Bean), ์˜์กด์„ฑ ์ฃผ์ž…(DI)์— ๊ด€ํ•ด์„œ

Bean ์Šคํ”„๋ง ๋นˆ(Spring Beans)์€ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ์ด๋‹ค. ์ด๋“ค์€ ์Šคํ”„๋ง์˜ IoC(์ œ์–ด์˜ ์—ญ์ „)์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ์ธ์Šคํ„ด์Šคํ™” ๋˜๊ณ , ์กฐ๋ฆฝ๋˜๋ฉฐ, ๊ด€๋ฆฌ๋œ๋‹ค. ๋นˆ์€ ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์š”์†Œ์ด๋ฉฐ, ์ฃผ๋กœ ์„œ๋น„์Šค, ๋ ˆํฌ์ง€ํ† ๋ฆฌ, ์ปจํŠธ๋กค๋Ÿฌ ๋“ฑ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ด€๋ จ Annotation @Bean ...

[SQL] ์„œ๋ธŒ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด _ SUBQUERY

์„œ๋ธŒ์ฟผ๋ฆฌ(Subquery)๋ž€? SQL๋ฌธ์—์„œ ๋ฉ”์ธ์ฟผ๋ฆฌ ๋‚ด๋ถ€์— ํฌํ•จ๋˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ์ผ๋ถ€๋ถ„์œผ๋กœ์„œ, ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰, ํ•„ํ„ฐ๋ง, ๋น„๊ตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๊ด„ํ˜ธ( )๋กœ ๋‘˜๋Ÿฌ์‹ธ์—ฌ ์žˆ์œผ๋ฉฐ, SELECT๋ฌธ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. โœ๏ธ ์˜ˆ์ œ ํ…Œ์ด๋ธ” (Grade) Id ...

ยฉ chanho. Some rights reserved.