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

์ „์ฒด ๊ธ€46

[SQL ๋ ˆ๋ฒจ์—…] 4์žฅ: ์ง‘์•ฝ๊ณผ ์ž๋ฅด๊ธฐ ์ง‘์•ฝ 1. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ํ•œ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋กœ ์ง‘์•ฝ - GROUP BY๋ฅผ ์‚ฌ์šฉํ•ด ์ง‘์•ฝ - ์ง‘์•ฝ ํ•จ์ˆ˜: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ํ•œ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋กœ ์ง‘์•ฝํ•˜๋Š” ํ•จ์ˆ˜, COUNT, SUM, AVG, MAX, MIN - ์ง‘์•ฝ ์‹œ SELECT ๊ตฌ์— ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ: ์ƒ์ˆ˜, GROUP BY์—์„œ ์‚ฌ์šฉ๋œ ์ง‘์•ฝ ํ‚ค, ์ง‘์•ฝ ํ•จ์ˆ˜ CASE ์‹๊ณผ GROUP BY ์‘์šฉ ๋น„์ง‘์•ฝ ํ…Œ์ด๋ธ”์„ ์ง‘์•ฝ ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“œ๋Š” SQL ๊ตฌ๋ฌธ SELECT id, MAX(CASE WHEN data_type='A' THEN data_1 ELSE NULL END) AS data_1, MAX(CASE WHEN data_type='A' THEN data_2 ELSE NULL END) AS data_2, MAX(CASE WHEN data_type='B' THEN .. 2022. 4. 18.
์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ ์„ ํƒ ์ •๋ ฌ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ์•„ ๋งจ ๋งˆ์ง€๋ง‰์˜ ์›์†Œ์™€ swap O(N^2) int arr[10] = {2, 53, 76, 4, 5, 3, 13, 32, 88, 25}; int n=10; for(int i=n-1;i>0;i--){ swap(*max_element(arr, arr+i+1), arr[i]); } ๋ฒ„๋ธ” ์ •๋ ฌ ์•ž์—์„œ๋ถ€ํ„ฐ ์ธ์ ‘ํ•œ ๋‘ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ํฐ ๊ฐ’์„ ๋’ค๋กœ ๋ณด๋ƒ„ -> ์ ์ฐจ ๊ฐ€์žฅ ํฐ ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ€๊ฒŒ ๋จ O(N^2) int arr[5] = {-2, 2, 4, 6, 13}; int n=5; for(int i=0;i 2022. 4. 14.
IT ๊ธฐ์ˆ ๋ฉด์ ‘ ํ•„์ˆ˜ ์งˆ๋ฌธ ์ •๋ฆฌ ์›น - HTTP, HTTPS(TLS(SSL)) ๋”๋ณด๊ธฐ HTTP๋Š” ๋”ฐ๋กœ ์•”ํ˜ธํ™” ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์— ํŒจํ‚ท์„ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ๊ณ , ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด ๋ณด์•ˆ์ด ์ทจ์•ฝํ•ด์ง HTTPS๋Š” ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„์— ์•”ํ˜ธํ™” ๊ณ„์ธต์„ ๊ฑฐ์ณ์„œ ํŒจํ‚ท์„ ์•”ํ˜ธํ™”ํ•จ - HTTP 1.1 2.0 3.0 - HTTP RESTFUL ๋”๋ณด๊ธฐ Representational State Transfer์˜ ์•ฝ์ž ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ(๋˜๋Š” ์ •๋ณด)๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธ ์›น์˜ ๊ธฐ์กด ๊ธฐ์ˆ ๊ณผ HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ทธ๋Œ€๋กœ ํ™œ์šฉ -> ์›น์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ - HTTP ์‘๋‹ต์ฝ”๋“œ ๋”๋ณด๊ธฐ 200๋ฒˆ๋Œ€: ํ†ต์‹  ์„ฑ๊ณต 300๋ฒˆ๋Œ€: ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ 400๋ฒˆ๋Œ€: ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜ 500๋ฒˆ๋Œ€: ์„œ๋ฒ„ ์˜ค๋ฅ˜ - ์›น๋ธŒ๋ผ์šฐ์ €์— .. 2022. 4. 14.
[SQL ๋ ˆ๋ฒจ์—…] 3์žฅ: SQL์˜ ์กฐ๊ฑด ๋ถ„๊ธฐ UNION์„ ์‚ฌ์šฉํ•œ ๊ธด ํ‘œํ˜„ UNION์„ ์‚ฌ์šฉํ•œ ์กฐ๊ฑด ๋ถ„๊ธฐ๋Š” ์ƒ๊ฐํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ ์„ฑ๋Šฅ์ ์ธ ์ธก๋ฉด์—์„œ ๋ณด๋ฉด SELECT๋ฌธ์„ ์—ฌ๋Ÿฌ๊ฐœ ์‹คํ–‰ํ•˜์—ฌ ํ…Œ์ด๋ธ” ์ ‘๊ทผ ํšŸ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ -> I/O๋น„์šฉ ์ฆ๊ฐ€ 1. UNION ์‚ฌ์šฉํ•œ ์กฐ๊ฑด ๋ถ„๊ธฐ ์˜ˆ์ œ SELECT Item_name, year, price_tax_ex AS price FROM Items WHERE year 2001; ๊ฑฐ์˜ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ๋‘๋ฒˆ ์‹คํ–‰ํ•˜์—ฌ ๊ฐ€๋…์„ฑ ์ €ํ•˜ Items ํ…Œ์ด๋ธ”์— 2ํšŒ ์ ‘๊ทผํ•˜์—ฌ ์„ฑ๋Šฅ ์ €ํ•˜ -> ์ •ํ™•ํ•œ ํŒ๋‹จ ์—†์ด UNION ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ž์ œํ•˜์ž 2. SELECT ๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ ์กฐ๊ฑด ๋ถ„๊ธฐ ์˜ˆ์ œ SELECT item_name, year, CASE WHEN year ํ…Œ์ด๋ธ”์ด ํฌ๊ณ  WHERE ์กฐ๊ฑด์œผ๋กœ ์„ ํƒ๋˜๋Š” ๋ ˆ์ฝ”๋“œ ์ˆ˜๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ž‘๋‹ค๋ฉด UNION์ด ๋” ๋น ๋ฆ„ ์ ˆ์ฐจ ์ง€.. 2022. 4. 11.
[SQL ๋ ˆ๋ฒจ์—…] 2์žฅ: SQL ๊ธฐ์ดˆ SELECT ๊ตฌ๋ฌธ 1. SELECT ๊ตฌ์™€ FROM ๊ตฌ ๊ฒ€์ƒ‰(=์งˆ์˜=์ถ”์ถœ): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ๋•Œ ํ•ต์‹ฌ์ด ๋˜๋Š” ์ฒ˜๋ฆฌ SELECT ๊ตฌ๋ฌธ: ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” SQL ๊ตฌ๋ฌธ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ SELECT (field1), (field2) FROM (table name); 2. WHERE ๊ตฌ WHERE ๊ตฌ: SELECT ๊ตฌ๋ฌธ ์‚ฌ์šฉํ•˜์—ฌ ๋ ˆ์ฝ”๋“œ ์„ ํƒ ์‹œ ์ถ”๊ฐ€์ ์ธ ์กฐ๊ฑด ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ - ๋‹ค์–‘ํ•œ ์กฐ๊ฑด ์ง€์ • ์—ฐ์‚ฐ์ž ์˜๋ฏธ = ~์™€ ๊ฐ™์Œ ~์™€ ๊ฐ™์ง€ ์•Š์Œ >=, , Address ํ…Œ์ด๋ธ”์—์„œ address๊ฐ€ tokyo๋‚˜ seoul์ธ ๋ ˆ์ฝ”๋“œ๋งŒ ๊ฒ€์ƒ‰ํ•˜๋Š” ์ฟผ๋ฆฌ - IS NULL ์‚ฌ์šฉํ•ด NULL๊ฐ’์ธ ๋ ˆ์ฝ”๋“œ ๊ฒ€์ƒ‰ SELECT name, phone_nbr FROM Address WHERE phone_nbr IS NULL; ->.. 2022. 4. 10.
์šด์˜์ฒด์ œ ๋ฉด์ ‘ ์งˆ๋ฌธ ์ •๋ฆฌ ์šด์˜์ฒด์ œ๋ž€? ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ์ฐจ์ด ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹  ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  context switching๊ฐœ๋…, ์‚ฌ์šฉ ์ด์œ  ๋ฐ๋“œ๋ฝ ์ •์˜, ๋ฐœ์ƒ ์กฐ๊ฑด banker’s algorithm ์„ธ๋งˆํฌ์–ด๋ž€? ๋ฎคํ…์Šค๋ž€? ํŽ˜์ด์ง•์ด๋ž€? ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์ด๋ž€? CPU ์Šค์ผ€์ค„๋ง ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๐Ÿ€ ์šด์˜์ฒด์ œ๋ž€ - ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด์—์„œ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋ฉฐ ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด - ์—ญํ• : ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ, ์ €์žฅ์žฅ์น˜ ๊ด€๋ฆฌ, ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ์ง€์›, ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ, ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„ ๊ด€๋ฆฌ ๋”๋ณด๊ธฐ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ: ์šด์˜์ฒด์ œ์—์„œ ์ž‘๋™ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ด€๋ฆฌ, CPU๋ฅผ ์ ์œ ํ•ด์•ผ ํ•  ํ”„๋กœ์„ธ์Šค ๊ฒฐ์ •, CPU๋ฅผ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น, ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๊ณต์œ  ์ž์› ์ ‘๊ทผ๊ณผ ํ†ต์‹  ๋“ฑ์„ ๊ด€๋ฆฌ ์ €์žฅ์žฅ์น˜ ๊ด€๋ฆฌ: ๋ฉ”์ธ.. 2022. 4. 9.
[์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ] 7. M:N ๊ด€๊ณ„์˜ ์„ค๊ณ„์™€ ๊ตฌํ˜„ 1. M:N ๊ด€๊ณ„์˜ ํŠน์ง• ์˜ํ™”์™€ ํšŒ์› ๋งคํ•‘ ํ…Œ์ด๋ธ” JPA์—์„œ M:N ์ฒ˜๋ฆฌ 2. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค ์„ค๊ณ„ 3. M:N Repository์™€ ํ…Œ์ŠคํŠธ Repository ์ž‘์„ฑ ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ๋˜๋Š” ์˜ํ™”๋ณ„ ํ‰๊ท  ๋ณ„์  / ๋ฆฌ๋ทฐ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ ํŠน์ • ์˜ํ™”์˜ ๋ชจ๋“  ์ด๋ฏธ์ง€์™€ ํ‰๊ท  ๋ณ„์ /๋ฆฌ๋ทฐ ๊ฐœ์ˆ˜ ํŠน์ • ์˜ํ™”์˜ ๋ชจ๋“  ๋ฆฌ๋ทฐ์™€ ํšŒ์›์˜ ๋‹‰๋„ค์ž„ ํšŒ์› ์‚ญ์ œ ๋ฌธ์ œ์™€ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ 1. M:N ๊ด€๊ณ„์˜ ํŠน์ง• ๋…ผ๋ฆฌ์ ์ธ ์„ค๊ณ„์™€ ์‹ค์ œ ํ…Œ์ด๋ธ”์˜ ์„ค๊ณ„๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Œ ์˜ํ™”์™€ ํšŒ์› ํšŒ์›: ์—ฌ๋Ÿฌ ํŽธ์˜ ์˜ํ™”๋ฅผ ํ‰๊ฐ€ ์˜ํ™”: ํ•œ ํŽธ์˜ ์˜ํ™”์— ์—ฌ๋Ÿฌ ํšŒ์›์ด ์กด์žฌ ์˜ํ™”๋ฒˆํ˜ธ ์˜ํ™” ์ด๋ฆ„ ํšŒ์› 1 ํƒ€์งœ a, b 2 ์ธํ„ฐ์Šคํ…”๋ผ b, c, d 3 ์œ„๋Œ€ํ•œ ๊ฐœ์ธ ๋น„ a, c ์œ„์™€ ๊ฐ™์ด ํ•ด๋‹น ์ƒํ’ˆ์ด ์—ฌ๋Ÿฌ ์นดํ…Œ๊ณ ๋ฆฌ์— ์†ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ์ •๋œ ์ˆ˜์˜ ์นผ๋Ÿผ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ์ง€.. 2022. 4. 6.
[์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ] ์ด ์ฑ…์„ ์ฝ๊ธฐ ์‹œ์ž‘ํ•œ ์ด์œ  http://www.yes24.com/Product/Goods/96051853 ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ - YES24 ‘์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ข€ ๋” ๊ฐ„๋‹จํžˆ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†์„๊นŒ?’์ด ์ฑ…์˜ ์‹œ์ž‘์€ ์œ„์˜ ์งˆ๋ฌธ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. ์ข€ ๋” ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” www.yes24.com ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์Šคํ”„๋ง ๋ถ€ํŠธ ๊ฐ•์ขŒ๋‚˜ ์ฑ…์ด ๊ธฐ๋ณธ์ ์ธ CRUD๊นŒ์ง€๋งŒ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ํ•œ๊ณ„๊ฐ€ ๋งŽ์ด ์ฐพ์•„์™”๋‹ค. ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๋‚œ๊ด€์€ ๋ฌผ๊ฑด์— ๋Œ€ํ•œ ํ‰์  ํ‰๊ท ๊ณผ ๋ฆฌ๋ทฐ์ˆ˜๋ฅผ ์–ป์–ด๋‚ด ๋ฌผ๊ฑด์„ ์ •๋ ฌํ•˜๋Š” ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ •๋ง ๋งŽ์ด ๊ตฌ๊ธ€๋ง์„ ํ–ˆ์ง€๋งŒ ๋งŒ์กฑํ•˜๋Š” ๋‹ต์„ ๋ชป์ฐพ๋˜ ์™€์ค‘ ์ด ์ฑ…์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด ์ฑ…์„ ์ฝ์œผ๋ฉด์„œ ๋‚ด๊ฐ€ ๊ฒช์€ ๋‚œ๊ด€์— ๋Œ€.. 2022. 4. 6.
velog์—์„œ ํ‹ฐ์Šคํ† ๋ฆฌ๋กœ ๋„˜์–ด์˜จ ์ด์œ  https://velog.io/@oliviarla oliviarla (Minkyeong Kim) - velog ๋งต ์ž๋ฃŒํ˜•์„ ์•Œ์•„๋ณด์ž dictionary์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐkey, value์˜ ์Œ์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒํ˜•๋ฆฌ์ŠคํŠธ๋‚˜ ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์ˆœ์ฐจ์ ์œผ๋กœ(index๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ) ๊ฐ’์„ ์ฐพ์ง€ ์•Š๊ณ , key๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ์–ป์ŒHashMap ๊ฐ์ฒด ์ƒ์„ฑHashMap 2022. 4. 4.