์ „์ฒด ๊ธ€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ
350 ๊ฐœ์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

SQL | FROM ์„œ๋ธŒ์ฟผ๋ฆฌ ์ธ๋ผ์ธ๋ทฐ ์‚ฌ์šฉ ์„ฑ๋Šฅํ–ฅ์ƒ ํŠœ๋‹

์ฟผ๋ฆฌ ๊ฐ€์ด๋“œ ๋ผ์ธ ๊ฐ€๊ธ‰์  WHERE ์กฐ๊ฑด์—์„œ๋Š” ์ธ๋ฑ์Šค ์ปฌ๋Ÿผ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋†“๋”๋ผ๋„ WHERE ์กฐ๊ฑด์„ ์–ด๋–ป๊ฒŒ ๋ช…์‹œํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด A์™€ B๋ผ๋Š” ์ปฌ๋Ÿผ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, WHERE ์กฐ๊ฑด์—์„œ A ์ปฌ๋Ÿผ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ธ๋ฑ์Šค๋ฅผ ํƒ€์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. ์˜ˆ) CONTRACT ํ…Œ์ด๋ธ”์—์„œ CONTRACT_NO, CONTRACT_REV ์ปฌ๋Ÿผ์ด CON_NO_IDX ์ธ๋ฑ์Šค๋กœ ๋งŒ๋“ค์–ด์ ธ ์žˆ์„ ๋•Œ, ์•„๋ž˜์™€ ๊ฐ™์€ ์ฟผ๋ฆฌ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  FULL SCAN์„ ํ•˜๊ฒŒ ๋œ๋‹ค. SELECT * FROM CONTRACT WHERE CONTRACT_REV ='1' ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•œ๋‹ค. SELECT * FROM CONTRACT WHERE CON..

๋น…๋ฐ์ดํ„ฐ์˜ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„ ์›Œํฌ | presto | hive

๋น…๋ฐ์ดํ„ฐ์˜ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ์˜ ํ”„๋ ˆ์ž„ ์›Œํฌ ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ์™€ ๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ๋น„์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” SQL๋กœ ์ œ๋Œ€๋กœ ์ง‘๊ณ„ํ•  ์ˆ˜ ์—†๋‹ค. NoSQL ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๊ฐ€ ์ด๋Ÿฌํ•œ ์Šคํ‚ค๋งˆ๋ฆฌ์Šค ๋ฐ์ดํ„ฐ์— ๋Œ€์‘ํ•˜๊ณ  ์žˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์šฐ์„  ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ์— ์ €์žฅํ•œ ํ›„, ๋ถ„์„ํ•˜๊ธฐ ์šฉ์ดํ•˜๊ฒŒ ๋ถ„์‚ฐ์Šคํ† ๋ฆฌ์ง€์— ์˜ฎ๊ธฐ๋Š” ํŒŒ์ดํ”„๋ผ์ธ์ด ํ•„์š”ํ•˜๋‹ค. ํ•˜๋‘ก์˜ ์—ด์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€ Apache ORC ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ ์—ด์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€๋กœ ์ฒ˜์Œ์— ์Šคํ‚ค๋งˆ๋ฅผ ์ •ํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. Apache Parquet ์Šคํ‚ค๋งˆ๋ฆฌ์Šค์— ๊ฐ€๊นŒ์šด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ๋˜์–ด์ž‡์–ด json๊ฐ™์€ ๋ฐ์ดํ„ฐ๋„ ๊ทธ๋Œ€๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ ๋น„ ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋„ ์—ด์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•˜๋Š”๋ฐ, ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด Hadoop๊ณผ Spark ๋‹ค. Hadoop ๋ถ„์‚ฐ ๋ฐ..

์ฟ ํ‚ค์™€ ์„ธ์…˜ ๊ฐœ๋… | ๊ณตํ†ต์„ธ์…˜ : HTTP

์ฟ ํ‚ค์™€ ์„ธ์…˜ : ์›น์—์„œ ์ƒํƒœ์œ ์ง€๋ฅผ ์œ„ํ•œ ๊ธฐ์ˆ  HTTPํ”„๋กœํ† ์ฝœ์€ ์ƒํƒœ ์œ ์ง€๊ฐ€ ์•ˆ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €(ํด๋ผ์ด์–ธํŠธ)์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•˜๊ณ  ๋‚˜๋ฉด ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ์™€์˜ ์—ฐ๊ฒฐ์„ ์ง€์†ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „์— ๋ฌด์—‡์„ ํ–ˆ๊ณ  ์ง€๊ธˆ ๋ฌด์—‡์„ ํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ƒํƒœ๋ฅผ ์œ ์ง€ํ• ์ˆ˜ ์žˆ๋Š” Cookie์™€ Session๊ธฐ์ˆ ์ด ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜ ๋™์ž‘๋ฐฉ์‹ 1) ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์‹œ ์„œ๋ฒ„์—์„œ ์œ ์ง€ํ•ด์•ผํ•  ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด ์„œ๋ฒ„์ธก์—์„œ 2)์„ธ์…˜ํ‚ค ์ƒ์„ฑ, 3)์„ธ์…˜ํ‚ค ์ €์žฅ์†Œ ์ƒ์„ฑ(์ €์žฅ์†Œ์— ๋กœ๊ทธ์ธ์— ํ•„์š”ํ•œ ์•„์ด๋””์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์ €์žฅ) 4) ์„ธ์…˜ํ‚ค ๋‹ด์€ ์ฟ ํ‚ค ์ƒ์„ฑ( ์ถ”ํ›„ ํด๋ผ์ด์–ธํŠธ์˜ ์žฌ์š”์ฒญ์‹œ ํด๋ผ์ด์–ธํŠธ์˜ ์„ธ์…˜ํ‚ค๋ฅผ ํ†ตํ•ด ์ €์žฅ์†Œ ์œ„์น˜๋ฅผ ์•Œ๊ธฐ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์€ ์ฟ ํ‚ค) 5) ์‘๋‹ต์‹œ ์„ธ์…˜ํ‚ค๋ฅผ ๋‹ด์€ ์ฟ ํ‚ค๋ฅผ..

DB | SQL ์˜ค๋ผํด ์ผ๋ จ๋ฒˆํ˜ธ ์ฑ„๋ฒˆ | ์‹œํ€ธ์Šค | MAX+1

์‹œํ€ธ์Šค Sequence ์œ ์ผํ•œ ๊ฐ’์„ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์˜ค๋ผํด ๊ฐ์ฒด์ด๋‹ค. ์ผ๋ จ๋ฒˆํ˜ธ, ์ž๋™์ฆ๊ฐ€ ๊ฐ’์„ ์ƒ์„ฑํ•œ๋‹ค. ์‹œํ€€์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ด๋ธ”๊ณผ ๋ณ„๊ฐœ๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋ชจ๋“  DBMS์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์‹œํ€€์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ์— Cacheํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. NEXTVAL ๋ฐ CURRVAL ์‚ฌ์šฉ๊ฐ€๋Šฅ ์กฐ๊ฑด ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ์•„๋‹Œ SELECT์ ˆ INSERT๋ฌธ์˜ SELECT์ ˆ INSERT๋ฌธ์˜ VALUE์ ˆ UPDATE๋ฌธ์˜ SET์ ˆ NEXTVAL ๋ฐ CURRVAL ์‚ฌ์šฉ๋ถˆ๊ฐ€ ์กฐ๊ฑด VIEW์˜ SELECT์ ˆ DISTINCT ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋Š” SELECT๋ฌธ GROUP BY, HAVING, ORDER BY์ ˆ์ด ์žˆ๋Š” SELECT๋ฌธ SELECT, DELETE, UPDATE์˜ ์„œ๋ธŒ์ฟผ๋ฆฌ CREATE TABLE, ALTER TABLE ๋ช…๋ น์˜ DEFAU..

Spring 4.3 | jsp [์•„์ด๋””, ์ด๋ฆ„, ์ด๋ฉ”์ผ] DB์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ | ์ œ๋„ค๋ฆญ <E> | mybatis | @RequestParam | MultiValueMap

Spring 4.3.X Java 8 ๊ธฐ๋Šฅ์„ ์™„์ „ํžˆ ์ง€์›ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜์˜€๋‹ค. Java 6, Java 7 ์˜ ๊ณ ์œ  ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด์„œ๋„ ๊ฐ๊ฐ ์ง€์›ํ•œ๋‹ค. Starter Pack์˜ ๋“ฑ์žฅ์œผ๋กœ ์ดˆ๊ธฐ ์„ค์ •์ด ๋ณด๋‹ค ์šฉ์ดํ•ด์กŒ๋‹ค. Groovy ๋ฅผ ํ†ตํ•œ Bean ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. Core Container ๋“ค์˜ ๊ธฐ๋Šฅ ์ง€์›์ด ํ™•๋Œ€๋˜์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Spring Data Repository ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„์œผ๋กœ ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. (@Autowired Repository customerRepository) meta-annotation ์ง€์›๊ณผ ํ•จ๊ป˜ custom-annotation ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. Bean ๊ด€๋ฆฌ๊ฐ€ ๋” ์šฉ์ดํ•ด์กŒ๋‹ค. @Order ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ์˜ Bean์„ ์ •๋ ฌ ํ•  ์ˆ˜ ์žˆ๋‹ค. @Lazy..

2021 ๋งˆ์ด๋ฐ์ดํ„ฐ ์ปจํผ๋Ÿฐ์Šค ์š”์•ฝ

๊ธฐ์กฐ๊ฐ•์—ฐ ๋ฐ์ดํ„ฐ ํ˜‘๋™์กฐํ•ฉ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋ฐ์ดํ„ฐ ํ˜‘๋™์กฐํ•ฉ์˜ ๋ฌธ์ œ -> ๊ทœ๋ชจ๊ฐ€ ํฌ๋‹ค. ๊ฐ์‹œ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋‘๋ ค์›€ ์ผ์ž๋ฆฌ ๋นผ์•—์„๊ฑฐ๋ผ๋Š” ๋‘๋ ค์›€ ์ฆ๊ฐ€ ์ธ๊ณต์ง€๋Šฅ์ด ์ œ๊ณตํ• ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์•”์„ ๋ฏธ๋ฆฌ ๊ฐ์ง€ํ•˜๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ์ธ๊ณต์ง€๋Šฅ์˜ ๋Œ€์‘ ๋Šฅ๋ ฅ ํ–ฅ์ƒ ์ธ๊ณต์ง€๋Šฅ์˜ ์˜ˆ์ˆ  ๋Œ€๋งŒ AI ๊ธฐ์ˆ  ์‚ฌ๋žŒ๋“ค์€ ๋ฐ์ดํ„ฐ ๊ฒฝ์ œ์—๋Œ€ํ•ด ๋‘๋ ค์›Œํ•˜๊ณ  ์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‹œ๋ฏผ์˜ ๊ถŒ๋ฆฌ๋ฅผ ์ฐฉ์ทจํ•œ๋‹ค๋Š” ์ด์œ ๋กœ ๋ฐ˜๋Œ€ํ•˜๋Š” ๊ฑด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋Š” ํ•œ๋ช…์ด์ƒ์˜ ์‚ฌ๋žŒ์ด๋ž‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ์ด๋ฉ”์ผ, ์†Œ์…œ๋ฏธ๋””์–ด ๋“ฑ๋“ฑ ๋ฐ์ดํ„ฐ๋Š” ์Šค์Šค๋กœ ์ƒ์„ฑ๋ ์ˆ˜ ์—†๋‹ค. ์‚ฌ๋žŒ๊ณผ์˜ ๊ต๋ฅ˜ ํ˜‘๋ ฅ์—์„œ ์ง์ ‘ ์ƒ์„ฑ๋œ๋‹ค. ์ •๋ถ€๋‚˜ ๊ตญ๊ฐ€์—์„œ ๋ฐ์ดํ„ฐ ์ด๊ด„ํ•œ๋‹ค๋ฉด ํ™œ์šฉ์ด ์–ด๋ ต๋‹ค, ๊ตญ๊ฐ€์˜ ๊ฒฝ๊ณ„์˜ ๋ฒ”์ฃผ๋ฅผ ๋ฒ—์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค, ๋ฐ์ดํ„ฐ ํ˜‘๋™๋ชจ๋ธ ๋Œ€๋งŒ -> ์—์–ด๋ฐ•์Šค -> ์ง‘์—๋‘๋Š” ์ž‘์€ ์„ผ์„œ ์—์–ด๋ฐ•์Šค ๋ฐ์ดํ„ฐ ํ˜‘๋™์กฐํ•ฉ ์‹ค๋‚ด๊ณต๊ธฐ ๋‚ด ..