์ „์ฒด ๊ธ€

๐Ÿ“‚์ปดํ“จํ„ฐ๊ณผํ•™:CS

[์šด์˜์ฒด์ œ]6์žฅ. cpu์Šค์ผ€์ค„๋ง

ํ”„๋กœ๊ทธ๋žจ ๋™์ž‘์ˆœ์„œ 1. ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ 2. PC(ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ)๋ผ๋Š” ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ํ˜„์žฌ CPU์—์„œ ์ˆ˜ํ–‰ํ•  ์ฝ”๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋จ 3. CPU๋Š” PC๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ์˜ ๊ธฐ๊ณ„์–ด ๋ช…๋ น์„ ํ•˜๋‚˜์”ฉ ์ˆ˜ํ–‰ ๊ธฐ๊ณ„์–ด ๋ช…๋ น ์ข…๋ฅ˜ cpu๋‚ด์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๋ช…๋ น (์˜ˆ : ADD๋ช…๋ น) ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ํ•„์š”๋กœ ํ•˜๋Š” ๋ช…๋ น (์˜ˆ : Load๋ช…๋ น, Store๋ช…๋ น) ์ž…์ถœ๋ ฅ์„ ๋™๋ฐ˜ํ•˜๋Š” ๋ช…๋ น 1๋ฒˆ, 2๋ฒˆ์€ ๋น„๊ต์  ๋น ๋ฅธ๋ช…๋ น (์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์ง์ ‘ cpu๋ฅผ ๊ฐ€์ง€๊ณ  ์ˆ˜ํ–‰) ๐Ÿ‘‰ CPU๋ฒ„์ŠคํŠธ 3๋ฒˆ์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆฐ ๋ช…๋ น ๐Ÿ‘‰ I/O ๋ฒ„์ŠคํŠธ ํ”„๋กœ๊ทธ๋žจ๋“ค์€ CPU๋ฒ„์ŠคํŠธ๊ฐ€ ๊ธด ๊ฒฝ์šฐ๋„ ์žˆ๊ณ  ์งง์€ ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , I/O๋ฒ„์ŠคํŠธ๊ฐ€ ๊ธด ๊ฒฝ์šฐ, ์งง์€ ๊ฒฝ์šฐ ์žˆ๊ณ  ๋‹ค์–‘ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ CPU ์Šค์ผ€์ค„๋ง์ด ํ•„์š”ํ•จ. CPU์Šค์ผ€์ค„๋ง์˜ ๋‘ ๊ฐ€์ง€ ๋ถ„๋ฅ˜ ๋น„์„ ์ ํ˜•..

๐Ÿ“‚๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค:DB

SQLD

1๊ณผ๋ชฉ ๋ฐœ์ƒ์‹œ์ ์— ๋”ฐ๋ฅธ ์—”ํ‹ฐํ‹ฐ ๋ถ„๋ฅ˜ ๊ธฐ๋ณธ/ํ‚ค์—”ํ‹ฐํ‹ฐ : ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ์ฃผ์‹๋ณ„์ž๋ฅผ ์ƒ์†๋ฐ›์ง€ ์•Š๊ณ  ์ž์‹ ์˜ ๊ณ ์œ ํ•œ ์ฃผ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง€๋ฉฐ ์‚ฌ์›, ๋ถ€์„œ, ๊ณ ๊ฐ, ์ƒํ’ˆ, ์ž์žฌ ๋“ฑ์ด ์˜ˆ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ์—”ํ„ฐํ‹ฐ ์ค‘์‹ฌ์—”ํ‹ฐํ‹ฐ ํ–‰์œ„์—”ํ‹ฐํ‹ฐ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์ด๋ž€ ์ •๋ณด์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ด€์ ์˜ ์—…๋ฌด ๋ถ„์„ ๊ธฐ๋ฒ• ํ˜„์‹ค์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์•ฝ์†๋œ ํ‘œ๊ธฐ๋ฒ•์— ์˜ํ•ด ํ‘œํ˜„ํ•˜๋Š” ๊ณผ์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์„/์„ค๊ณ„์˜ ๊ณผ์ • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์œ ์˜์  ์ค‘๋ณต ๋น„์œ ์—ฐ์„ฑ : ๋ฐ์ดํ„ฐ์˜ ์ •์˜์™€ ๋ฐ์ดํ„ฐ์˜ ์‚ฌ์šฉ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ„๋ฆฌ ๋น„์ผ๊ด€์„ฑ ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์€ DB๊ตฌ์ถ•ํ•˜๊ธฐ๋งŒ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ชจ๋ธ๋ง ์ž์ฒด๋กœ์„œ ์—…๋ฌด๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋†’๊ณ  ์—…๋ฌด์ค‘์‹ฌ์ ์ด๊ณ  ํฌ๊ด„์ ์ธ ์ˆ˜์ค€์˜ ๋ชจ๋ธ๋ง ์ง„ํ–‰. ์ „์‚ฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ..

๐Ÿ“‚๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค:DB

[MySQL] ์ตœ์ƒ์œ„ ๋ ˆ์ฝ”๋“œ ํ•˜๋‚˜ ๊ฐ€์ ธ์˜ค๊ธฐ

order by์™€ limit์„ ํ™œ์šฉ SELECT name from animal_ins order by datetime limit 1;

๐Ÿ“‚๋ฐฑ์—”๋“œ : BackEnd

REST API

REST : Representational State Transfer ํ•˜๋‚˜์˜ URI๋Š” ํ•˜๋‚˜์˜ ๊ณ ์œ ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€ํ‘œํ•˜๋„๋ก ์„ค๊ฒŒ๋œ๋‹ค๋Š” ๊ฐœ๋…์— ์ „์†ก๋ฐฉ์‹์„ ๊ฒฐํ•ฉํ•ด์„œ ์›ํ•˜๋Š” ์ž‘์—…์„ ์ง€์ •ํ•œ๋‹ค. URI + GET / POST / PUT / DELETE HTTP URI๋ฅผ ํ†ตํ•ด ์ œ์–ดํ•  ์ž์›์„ ๋ช…์‹œํ•˜๊ณ , HTTP Method(GET, POST, PUT, DELETE)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›(Resource)์„ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ๋ฐฉ์‹์˜ ์•„ํ‚คํ…์ฒ˜ ๊ธฐ์กด Service : ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ ํ›„ ๊ฐ€๊ณต๋œ data๋ฅผ ์ด์šฉํ•ด ํŠน์ • ํ”Œ๋žซํผ์— ์ ํ•ฉํ•œ ํ˜•ํƒœ์˜ View๋กœ ๋งŒ๋“ค์–ด์„œ ๋ฐ˜ํ™˜. REST Service : data์ฒ˜๋ฆฌ๋งŒ ํ•œ๋‹ค๊ฑฐ๋‚˜, ์ฒ˜๋ผ ํ›„ ๋ฐ˜ํ™˜๋  data๊ฐ€ ์žˆ๋‹ค๋ฉด JSON์ด๋‚˜ XMLํ˜•์‹์œผ๋กœ ์ „๋‹ฌ. View์— ๋Œ€ํ•ด์„œ๋Š” ์‹ ๊ฒฝ์“ธ ํ•„์š”๊ฐ€..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

๋ฒจ๋งŒ ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๊ฐ„์„  ์ค‘์‹ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ‘‰ ๊ทธ๋ž˜ํ”„๋“ค์„ ์—์ง€ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ ์Œ์ˆ˜ ๊ฐ„์„ ์ด ํฌํ•จ๋œ ์ƒํ™ฉ์—์„œ์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๋ฌธ์ œ์— ์‚ฌ์šฉ. ์Œ์ˆ˜ ๊ฐ„์„ ์˜ ์ˆœํ™˜์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Œ. ๋งค๋ฒˆ ๋ชจ๋“  ๊ฐ„์„ ์„ ์ „๋ถ€ ํ™•์ธ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๋ฆฌ์ŠคํŠธ์—์„œ ์—…๋ฐ์ดํŠธ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋Š” V - 1 ์‹œ๊ฐ„๋ณต์žก๋„ : O(VE), ๋‹ค์ต์ŠคํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋น„ํ•ด ๋А๋ฆฌ๋‹ค ์Œ์ˆ˜๊ฐ„์„ ์ด ์žˆ์–ด๋„ ์ˆœํ™˜์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. (์Œ์ˆ˜๊ฐ„์„ ์˜ ์ˆœํ™˜์ด ๋ฐœ์ƒํ•˜๋ฉด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ์Œ์˜ ๋ฌดํ•œ์ธ ๋…ธ๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋จ) ๋™์ž‘์›๋ฆฌ 1. ์ถœ๋ฐœ ๋…ธ๋“œ๋ฅผ ์„ค์ • 2. ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์„ ์ดˆ๊ธฐํ™” 3. ๋‹ค์Œ์˜ ๊ณผ์ •์„ N-1 ๋ฒˆ ๋ฐ˜๋ณต 3-1. ์ „์ฒด ๊ฐ„์„  E๊ฐœ๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธ 3-2. ๊ฐ ๊ฐ„์„ ์„ ๊ฑฐ์ณ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๋น„์šฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹  4. ๋งŒ์•ฝ ์Œ์ˆ˜ ๊ฐ„์„  ์ˆœํ™˜์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ฒดํฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด 3..

๐Ÿ“‚๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค:DB

[MySQL] union๊ณผ join์˜ ์ฐจ์ด

Union์€ ํ…Œ์ด๋ธ”์„ ์ˆ˜์ง ๋ฐฉํ–ฅ์œผ๋กœ ํ•ฉ์นœ๋‹ค ์ด๋•Œ union์€ ์ค‘๋ณต row๋ฅผ ์ œ๊ฑฐํ•˜์ง€๋งŒ, union all ์€ ์ค‘๋ณต row๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๋Š”๋‹ค. Join์€ ํ…Œ์ด๋ธ”์„ ์ˆ˜ํ‰ ๋ฐฉํ–ฅ์œผ๋กœ ํ•ฉ์นœ๋‹ค ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค sql ๋ฌธ์ œ ์ค‘ " ์˜คํ”„๋ผ์ธ/์˜จ๋ผ์ธ ํŒ๋งค ๋ฐ์ดํ„ฐ ํ†ตํ•ฉํ•˜๊ธฐ" ๋ฌธ์ œ์—์„œ Union์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ONLINE_SALE ํ…Œ์ด๋ธ” OFFLINSE_SALE ํ…Œ์ด๋ธ” ONLINE_SALE ํ…Œ์ด๋ธ”๊ณผ OFFLINE_SALE ํ…Œ์ด๋ธ”์—์„œ 2022๋…„ 3์›”์˜ ์˜คํ”„๋ผ์ธ/์˜จ๋ผ์ธ ์ƒํ’ˆ ํŒ๋งค ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. (OFFLINE_SALE ํ…Œ์ด๋ธ”์˜ USER_ID๊ฐ’์€ NULL ๋กœ ํ‘œ์‹œํ•˜๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ์—ˆ๋‹ค.) ๋‘ ํ…Œ์ด๋ธ”์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์น˜๊ธฐ ์œ„ํ•ด UNION์„, ์˜คํ”„๋ผ์ธ ํ…Œ์ด๋ธ”์˜ USER_ID๋ฅผ NULL ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด NULL as user_id..

๐Ÿ“‚๋ฐฑ์—”๋“œ : BackEnd

MyBatis

MyBatis Java Object์™€ SQL๋ฌธ ์‚ฌ์ด์˜ ์ž๋™ Mapping ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ORM Framework MyBatis๋Š” SQL์„ ๋ณ„๋„์˜ ํŒŒ์ผ(XML ํ˜น์€ ์ž)๋กœ ๋ถ„๋ž˜ํ•ด์„œ ๊ด€๋ฆฌ Object ์™€ SQL ์‚ฌ์ด์˜ parameter mapping ์ž‘์—…์„ ์ž๋™์œผ๋กœ ํ•ด ์คŒ. ์ž๋ฐ”์™€ SQL์„ ์—ฐ๊ฒฐ๋งŒ ํ•ด์ค€๋‹ค! JAVA - MyBatis - MySQL myBatis → Java์™€ myBatis → spring ๋”ฐ๋กœ ์žˆ์Œ JDBC Driver Loading (Driver Class) DB์—ฐ๊ฒฐ(Connection๊ฐ์ฒด ์ƒ์„ฑ) (url, id, pwd) SQL ์‹คํ–‰ ์ค€๋น„ SQL๋ฌธ์žฅ Statement์ƒ์„ฑ SQL ์‹คํ–‰ DB ์† ์ข…๋ฃŒ ๐Ÿ’ก ์œ„ ๋ฐฉ์‹์—์„œ ํŒŒ๋ž€์ƒ‰ ๋ถ€๋ถ„์€ MyBatis๊ฐ€ ์•Œ์•„์„œ ํ•ด์ฃผ๊ณ , ์ดˆ๋ก์ƒ‰ ๋ถ€๋ถ„๋งŒ xml์— ์„ค์ •..

๐Ÿ“‚๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค:DB

[MySQL] GROUP BY ... HAVING COUNT(*)

๐Ÿ’ก์•Œ๊ฒŒ๋œ ์  : GROUP BY์˜ HAVING ์กฐ๊ฑด์— COUNT(*) ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ…Œ์ด๋ธ”์—์„œ, ๋™์ผํ•œ ํšŒ์›(USER_ID)์ด ๋™์ผํ•œ ์ƒํ’ˆ(PRODUCT_ID)์„ ์žฌ๊ตฌ๋งคํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌํ•˜๋ ค๋ฉด SELECT USER_ID, PRODUCT_ID, COUNT(*) FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(*) >= 2; ์™€ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค. ์‹คํ–‰๊ฒฐ๊ณผ

mc.thd
song