๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€67

[TIL] 221103 - SpringBoot Part1 - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†์„ฑ ๊ด€๋ฆฌ SpringBoot Part1 (4) 1. Enviroment profile ApplicationContext๋Š” EnvironmentCapable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์œผ๋ฉฐ getEnvironment() ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. profile์— ๋”ฐ๋ผ ํ™˜๊ฒฝ์ด ๋ฐ”๋€Œ๊ณ  ๊ทธ์— ๋”ฐ๋ผ properties๊ฐ€ ๋ฐ”๋€๋‹ค. properties : ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†์„ฑ์„ property๋กœ ์ •์˜ํ•˜๊ณ  ์„ค์ •ํ•œ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. resources > application.properties : springboot์—์„œ default๋กœ ์‚ฌ์šฉํ•˜๋Š” property ํŒŒ์ผ : key/value ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ version = v1.0.0 kdt.version = v1.0.0 kdt.support-vendors = a,b,c,d,.. 2022. 11. 6.
[TIL] 221102 - SpringBoot Part1 : Dependecy injection, ์ปดํฌ๋„ŒํŠธ ์Šค์บ” SpringBoot Part1 (3) Dependecy injection, Circular Dependency IoC๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋‹ค์–‘ํ•œ ํŒจํ„ด๋“ค(์ „๋žต ํŒจํ„ด, ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด, ํŒฉํ† ๋ฆฌ ํŒจํ„ด, ์˜์กด๊ด€๊ณ„ ์ฃผ์ž… ํŒจํ„ด) ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…๋ฐ›๋Š” ์ฑ„ํ„ด์„ ์ƒ์„ฑ์ž ์ฃผ์ž… ํŒจํ„ด์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ๊ทธ ์™ธ์—๋„ ์Šคํ”„๋ง์€ ์„ธํ„ฐ ๊ธฐ๋ฐ˜์˜ ์˜์กด ๊ด€๊ณ„๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Dependency Resoulation Precess ์˜์กด๊ด€๊ณ„๊ฐ€ ํ˜•์„ฑ๋œ๋‹ค. ApplicationContext๋ฅผ ๋งŒ๋“ค์–ด์งˆ๋•Œ Configuration Metadata๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ๊ทธ ์•ˆ์— Bean๋“ค์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค. ( new AnnotationConfigApplicationContext(AppConfiguration.class) ) ์ด๋•Œ ๊ฐ Bean์— ๋Œ€ํ•œ ์˜์กด๊ด€๊ณ„๊ฐ€.. 2022. 11. 3.
[TIL] 221101 - SpringBoot Part1 : IoC, DDD, ApplicationContext SpringBoot Part1 (2) IoC (์ œ์–ด์˜ ์—ญ์ „) Inversion of Control : ์ž์‹ ์ด ์‚ฌ์šฉํ•  ๊ฐ์ฒด๋ฅผ ์Šค์Šค๋กœ ์„ ํƒํ•˜์ง€๋„, ์ƒ์„ฑํ•˜์ง€๋„ ์•Š๋Š”๋‹ค. : ์„œ๋ธ”๋ฆฟ, ์Šคํ”„๋ง๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ œ์–ด ๊ถŒํ•œ์ด ๊ฐ์ฒด ์ž์‹ ์—๊ฒŒ ์—†๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ์— ์žˆ๊ฒŒ ๋œ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‹จ์ง€ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘” ๋ฐ˜ ์ œํ’ˆ์ด๋‚˜ ํ™•์žฅํ•ด์„œ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๊ฒŒ ์ค€๋น„๋œ ๋ฐ˜์ œํ’ˆ์ด ์•„๋‹Œ ์ „์ฒด ํ๋ฆ„์„ ์ œ์–ด์˜ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ฒŒ ๋œ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ๋ฆ„์„ ์ง์ ‘ ์ œ์–ดํ•˜์ง€๋งŒ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฑฐ๊พธ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ์— ์˜ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์งœ๋†“์€ ํ‹€์—์„œ ์ˆ˜๋™์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‚ด๊ฐ€ ํ˜ธ์ถœํ•˜์ง€์•Š๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํ˜ธ์ถœํ• ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. OrderContext : .. 2022. 11. 3.
[TIL] 221031 - SpringBoot Part1 SpringBoot Part1 (1) Spring ๊ธฐ์ดˆ์˜ ๋ชฉํ‘œ Spring Framework ํ•ต์‹ฌ ๊ฐœ๋…๋“ค์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. Spring Framework Core ๋ชจ๋“ˆ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. Spring Framework JDBC ๋ชจ๋“ˆ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. Spring Framework ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. Spring Boot๋กœ ์Šคํ”„๋ง ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•œ๋‹ค. ์Šคํ”„๋ง(๋ถ€ํŠธ) ์‹œ์ž‘ํ•˜๊ธฐ Spring Boot ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ Spring Framework์ดํ•ดํ•˜๊ธฐ ์Šคํ”„๋ง ๋ถ€ํŠธ ์ดํ•ดํ•˜๊ธฐ ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—…ํ•˜๊ธฐ ๋ฐ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ JDBC ์ด์šฉ Spring Framework์˜ JdbcTemplate ์‚ฌ์šฉ AOP ์ดํ•ดํ•˜๊ธฐ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœํ•˜๊ธฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ดํ•ดํ•˜๊ธฐ ๊ฐ„๋‹จํ•œ ์„œ๋ธ”๋ฆฟ ๋ง›๋ณด๊ธฐ ์Šคํ”„๋ง MVC ๋™์ž‘์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ CO.. 2022. 11. 2.
[๋””์ž์ธ ํŒจํ„ด] ์‹ฑ๊ธ€ํ„ด ๋””์ž์ธ ํŒจํ„ด์ด๋ž€? ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ํŠน์ • ๋งฅ๋ฝ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ๋“ค์ด ๋˜ ๋ฐœ์ƒํ–ˆ์„๋•Œ ์žฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ›Œ๋ฅญํ•œ ํ•ด๊ฒฐ์ฑ… ๋””์ž์ธ ํŒจํ„ด์˜ ์ข…๋ฅ˜ ์ƒ์„ฑ ํŒจํ„ด : ๊ฐ์ฒด ์ƒ์„ฑ์— ๊ด€๋ จ๋œ ํŒจํ„ด. ๊ฐ์ฒด๋ฅผ ๊ฐญ์Šํ™”ํ•ด ๋ณ€ํ™”์— ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ๊ตฌ์กฐ ํŒจํ„ด : ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋ฅผ ์กฐํ•ฉํ•ด ๋” ํฐ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ํŒจํ„ด ํ–‰์œ„ ํŒจํ„ด : ๊ฐ์ฒด๋‚˜ ํด๋ž˜์Šค ์‚ฌ์ด์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ์ฑ…์ž„ ๋ถ„๋ฐฐ์— ๊ด€๋ จ๋œ ํŒจํ„ด. ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ์ฒด๋กœ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฐฐํ• ์ง€, ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด์„œ๋„ ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์— ์ค‘์ ์„ ๋‘”๋‹ค. ์ƒ์„ฑ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์— ์†ํ•˜๋Š”, ์‹ฑ๊ธ€ํ„ด(Singleton) ์‹ฑ๊ธ€ํ„ด์€ ํด๋ž˜์Šค์— ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ๋„๋ก ํ•˜๋ฉด์„œ ์ด ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ „์—ญ ์ ‘๊ทผ(์•ก์„ธ์Šค) ์ง€์ ์„ ์ œ๊ณตํ•˜๋Š” ์ƒ์„ฑ ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์ผ ๋•Œ ๋ฌธ์ œ๊ฐ€ ์ƒ.. 2022. 10. 31.
Java์˜ ๋žŒ๋‹ค (Lambda) โœ… ๋žŒ๋‹ค๋ž€? ์‹๋ณ„์ž ์—†์ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜. ๋žŒ๋‹ค ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์œผ๋กœ ์ต๋ช… ํ•จ์ˆ˜๋ผ๊ณ ๋„ ํ•œ๋‹ค. Java์—์„œ์˜ ๋žŒ๋‹ค Java8 ๋ถ€ํ„ฐ ์ง€์›๋˜๋ฉฐ, ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ณ  ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ๋‘๊ณ ์žˆ๋‹ค. ๋žŒ๋‹ค์‹์˜ ๋„์ž…์œผ๋กœ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์ธ ์ž๋ฐ”๊ฐ€ ๋™์‹œ์— ํ•จ์ˆ˜ํ˜• ์–ธ์–ด์˜ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ฒŒ ๋˜์—ˆ๋‹ค. ์ž๋ฐ”๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋งค๋ฒˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ด ๋žŒ๋‹ค ํ‘œํ˜„์‹ public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { System.out.println("Hello"); } }).star.. 2022. 10. 31.