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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ69

[๋””์ž์ธ ํŒจํ„ด] ์‹ฑ๊ธ€ํ„ด ๋””์ž์ธ ํŒจํ„ด์ด๋ž€? ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ํŠน์ • ๋งฅ๋ฝ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ๋“ค์ด ๋˜ ๋ฐœ์ƒํ–ˆ์„๋•Œ ์žฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ›Œ๋ฅญํ•œ ํ•ด๊ฒฐ์ฑ… ๋””์ž์ธ ํŒจํ„ด์˜ ์ข…๋ฅ˜ ์ƒ์„ฑ ํŒจํ„ด : ๊ฐ์ฒด ์ƒ์„ฑ์— ๊ด€๋ จ๋œ ํŒจํ„ด. ๊ฐ์ฒด๋ฅผ ๊ฐญ์Аํ™”ํ•ด ๋ณ€ํ™”์— ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ๊ตฌ์กฐ ํŒจํ„ด : ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋ฅผ ์กฐํ•ฉํ•ด ๋” ํฐ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ํŒจํ„ด ํ–‰์œ„ ํŒจํ„ด : ๊ฐ์ฒด๋‚˜ ํด๋ž˜์Šค ์‚ฌ์ด์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ์ฑ…์ž„ ๋ถ„๋ฐฐ์— ๊ด€๋ จ๋œ ํŒจํ„ด. ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ์ฒด๋กœ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฐฐํ• ์ง€, ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด์„œ๋„ ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์— ์ค‘์ ์„ ๋‘”๋‹ค. ์ƒ์„ฑ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์— ์†ํ•˜๋Š”, ์‹ฑ๊ธ€ํ„ด(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.
[TIL] 221027 - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค SQL : JOIN ์‹ค๋ฆฌ์ฝ˜๋ฐธ๋ฆฌ์—์„œ ๋‚ ์•„์˜จ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค - 4. SQL ๊ณ ๊ธ‰ ๋‹ค๊ธฐ์ง€(JOIN) 1. INSERT / UPDATE / DELET MySQL ์ปฌ๋Ÿผ ํƒ€์ž… Numeric Type INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT DECIMAL, NUMERIC FLOAT, DOUBLE, BIT Date and Time DATE, DATETIME, TIMESTAMP, TIME, YEAR String Type CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM, SET JSON Type : ๋‹ค์–‘ํ•œ JSON ์กฐ์ž‘ํ•จ์ˆ˜ ์ œ๊ณต Spatial Type : ์œ„๋„ ๊ฒฝ๋„ ์ค‘์‹ฌ ์œ„์น˜ ๊ด€๋ จ ํƒ€์ž… INSERT INTO _ VALUES(_) : primary ke.. 2022. 10. 28.
JUnit ์‚ฌ์šฉ๊ธฐ (feat. IntelliJ) JUnit : ์ž๋ฐ” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์„ ์œ„ํ•œ ํ…Œ์ŠคํŒ… ํ”„๋ ˆ์ž„์›Œํฌ JUnit ์‹œ์ž‘ํ•˜๊ธฐ Java(no Spring) , IntelliJ (2022.2.3 ver), gradle ์‚ฌ์šฉ Junit์€ spring-boot-starter-test dependency์— ํฌํ•จ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ค„ ํ•„์š”๊ฐ€ ์—†๋‹ค. Spring Initializr์‹œ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜์–ด์ง„๋‹ค. maven dependency org.springframework.boot spring-boot-starter-test test ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  gradle ๋นŒ๋“œ๋ฅผ ๋งˆ์น˜๋ฉด ์ž๋™์œผ๋กœ test ํด๋”๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ํ…Œ์ŠคํŠธ ํด๋”๋ฅผ ์šฐํด๋ฆญํ•ด์„œ ์ง์ ‘ test class ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด๋„ ๋˜๊ณ  test ์›ํ•˜๋Š” class๋ฅผ ์šฐํด๋ฆญํ•ด์„œ test ํŒŒ์ผ์„ ์ƒ์„ฑ.. 2022. 10. 26.
[TIL] 221026 - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค SQL : SELECT, GROUP BY ์‹ค๋ฆฌ์ฝ˜๋ฐธ๋ฆฌ์—์„œ ๋‚ ์•„์˜จ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค - 3. SQL ๊ธฐ๋ณธ๋‹ค์ง€๊ธฐ(SELECT์™€ GROUP BY) 1. ์‹ค์Šตํ™˜๊ฒฝ SQL Workbench๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SQL ์‹ค์Šต SQL Workbench : MySQL ์‚ฌ์ดํŠธ์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋ฌด๋ฃŒ ํด๋ผ์ด์–ธํŠธ SQL ์—๋””ํ„ฐ ์„ค์น˜ connection ๋งŒ๋“ค๊ธฐ (์ž‘์—…์ด ์ง„ํ–‰๋  ์„œ๋ฒ„ - rds) ๋“ค์–ด๊ฐ€๊ธฐ์ „ SHOW DATABASES; USE prod; SHOW TABLES; 2. SELECT ํ…Œ์ด๋ธ”์—์„œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฝ์–ด์˜ค๋Š”๋ฐ ์‚ฌ์šฉ CASE WHEN : ํ•„๋“œ ๊ฐ’์˜ ๋ณ€ํ™˜์„ ์œ„ํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ CASE WHEN ์กฐ๊ฑด THEN ์ฐธ์ผ ๋•Œ ๊ฐ’ ELSE ๊ฑฐ์ง“์ผ๋•Œ ๊ฐ’ END ํ•„๋“œ์ด๋ฆ„ NULL : null์— ์‚ฌ์น™์—ฐ์‚ฐ์„ ํ•˜๋ฉด null IN / LIKE : ๋ฌธ์ž์—ด ๋งค์นญ / BETWEEN STRING function.. 2022. 10. 26.