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

Java18

[Java] a.equlas(b)๋ณด๋‹ค๋Š” Object.equlas(a,b) ์‚ฌ์šฉํ•˜๊ธฐ ๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๋‹ค~ Objects.equals(a, b)์„ ๊ถŒ์žฅํ•˜๋Š” ์ด์œ  1. ์–ด๋–ค ์ปฌ๋Ÿฝ๋“ค์„ ๋น„๊ตํ•˜๋Š”์ง€ ๋ณด๊ธฐ ์ข‹๋‹ค. a.equlas(b) ๋ณด๋‹ค Objects.equals(a,b)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด a ์ปฌ๋Ÿผ๊ณผ b ์ปฌ๋Ÿผ์„ ๋น„๊ตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ•œ๋ˆˆ์— ํ™•์ธํ•˜๊ธฐ ์ข‹๋‹ค. 2. NPE์— ์ทจ์•ฝํ•˜์ง€ ์•Š๋‹ค. Objects.equals ๋ฉ”์†Œ๋“œ๋ฅผ ๋ณด๋ฉด ๋น„๊ต ๋Œ€์ƒ ๊ฐ์ฒด a์˜ null ์ฒดํฌ๋ฅผ ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ›„ equals ๋น„๊ต๋ฅผ ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. equals๊ณผ hashcode๋ฅผ ํ•จ๊ป˜ ์žฌ ์ •์˜ํ•ด์•ผํ•˜๋Š” ์ด์œ  equals๋งŒ ์žฌ์ •์˜ํ•˜์˜€์„ ๊ฒฝ์šฐ public static void main(String[] args) { var email1 = new Email("gg"); var email2 = new Email("gg"); Sy.. 2022. 12. 1.
[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] 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.
[TIL] 221028 - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค MySQL ๊ณ ๊ธ‰๊ธฐ๋Šฅ ์‹ค๋ฆฌ์ฝ˜ ๋ฐธ๋ฆฌ์—์„œ ๋‚ ์•„์˜จ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค - 5. MySQL ๊ณ ๊ธ‰๊ธฐ๋Šฅ ์‚ดํŽด๋ณด๊ธฐ 1. ํŠธ๋žœ์žญ์…˜ ์†Œ๊ฐœ ํŠธ๋žœ์žญ์…˜ - Atomic ํ•˜๊ฒŒ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” SQL๋“ค์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ์ž‘์—…์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• : ํ…Œ์ด๋ธ” ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๋Š” SQL์ด ์—ฐ๋‹ฌ์•„ ์‹คํ–‰๋˜๋ฉฐ ๋งˆ์น˜ ํ•˜๋‚˜์˜ SQL์ฒ˜๋Ÿผ ์ „๋ถ€ ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ์ „๋ถ€ ์‹คํŒจ ๋˜์–ด์•ผํ•œ๋‹ค. (COMMIT์„ ์•ˆํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์„ closeํ•˜๋ฉด ๋ชจ๋‘ ๋ฌดํšจํ™” → rollback์ด๋ž‘ ๋™์ผํ•œ ํšจ๊ณผ) : SELECT์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์—†์Œ : BEGIN/END ํ˜น์€ BEGIN/COMMIT ์‚ฌ์ด์— ํ•ด๋‹น SQL๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉฐ ROLLBACK atomicํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋™๊ธฐํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜ ์ปค๋ฐ‹ ๋ชจ๋“œ : autocommit autocommit = True : ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ ์ž‘์—…์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ”๋กœ ์ปค๋ฐ‹๋œ๋‹ค. .. 2022. 10. 28.