๐๋ฐฑ์๋ : Backend
2024.01.12
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์ ๋ํด์๋ ์ ๊ฒฝ์ธ ํ์๊ฐ..
๐ฅ์ฝ๋ฉํ
์คํธ:Algorithm
2024.01.12
๊ฐ์ ์ค์ฌ ์๊ณ ๋ฆฌ์ฆ ๐ ๊ทธ๋ํ๋ค์ ์์ง ๋ฆฌ์คํธ๋ก ๊ตฌํ ์์ ๊ฐ์ ์ด ํฌํจ๋ ์ํฉ์์์ ์ต๋จ ๊ฑฐ๋ฆฌ ๋ฌธ์ ์ ์ฌ์ฉ. ์์ ๊ฐ์ ์ ์ํ์ ๊ฐ์งํ ์ ์์. ๋งค๋ฒ ๋ชจ๋ ๊ฐ์ ์ ์ ๋ถ ํ์ธ ์ต๋จ ๊ฑฐ๋ฆฌ ๋ฆฌ์คํธ์์ ์
๋ฐ์ดํธ ๋ฐ๋ณต ํ์๋ V - 1 ์๊ฐ๋ณต์ก๋ : O(VE), ๋ค์ต์คํธ ์๊ณ ๋ฆฌ์ฆ์ ๋นํด ๋๋ฆฌ๋ค ์์๊ฐ์ ์ด ์์ด๋ ์ํ์ด ๋ฐ์ํ์ง ์๋๋ค๋ฉด ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ ์ ์๋ค. (์์๊ฐ์ ์ ์ํ์ด ๋ฐ์ํ๋ฉด ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ์์ ๋ฌดํ์ธ ๋
ธ๋๊ฐ ๋ฐ์ํ๊ฒ ๋จ) ๋์์๋ฆฌ 1. ์ถ๋ฐ ๋
ธ๋๋ฅผ ์ค์ 2. ์ต๋จ ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ์ด๊ธฐํ 3. ๋ค์์ ๊ณผ์ ์ N-1 ๋ฒ ๋ฐ๋ณต 3-1. ์ ์ฒด ๊ฐ์ E๊ฐ๋ฅผ ํ๋์ฉ ํ์ธ 3-2. ๊ฐ ๊ฐ์ ์ ๊ฑฐ์ณ ๋ค๋ฅธ ๋
ธ๋๋ก ๊ฐ๋ ๋น์ฉ์ ๊ณ์ฐํ์ฌ ์ต๋จ๊ฑฐ๋ฆฌ ํ
์ด๋ธ์ ๊ฐฑ์ 4. ๋ง์ฝ ์์ ๊ฐ์ ์ํ์ด ๋ฐ์ํ๋์ง ์ฒดํฌํ๊ณ ์ถ๋ค๋ฉด 3..
๐๋ฐ์ดํฐ๋ฒ ์ด์ค:DB
2024.01.06
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
2024.01.06
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
2024.01.05
๐ก์๊ฒ๋ ์ : 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; ์ ๊ฐ์ด ํ๋ฉด ๋๋ค. ์คํ๊ฒฐ๊ณผ
๐์ธ์ด:Language
2024.01.05
java๋ฅผ ๊ณต๋ถํ๋ฉฐ ๊ธฐ๋กํ ๋ด์ฉ์
๋๋ค.JAVA์ ๋์๊ณผ์ ๊ฐ์ฒด์งํฅ ์ธ์ด์ ์ฅ์ 1. ์์ ๊ธฐ๋ฅ์ ํตํด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๋ค.2. ์ผ์์ํ ๋ชจ์ต์ ๊ตฌ์กฐ๊ฐ ๊ฐ์ฒด์ ์์ฐ์ค๋ฝ๊ฒ ๋
น์๋ค์ด ์๊ธฐ ๋๋ฌธ์ ์๊ฐํ๊ณ ์๋ ๊ฒ์ ๊ทธ๋๋ก ์์ฐ์ค๋ฝ๊ฒ ๊ตฌํํ ์ ์๋ค.3. ์ ์ค๊ณ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ๋
๋ฆฝ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ํฅ์์ํฌ ์ ์์. ๊ฐ์ฒด์งํฅ ์ธ์ด์ ๋จ์ 1. ๊ฐ์ฒด๊ฐ ์ฒ๋ฆฌํ๋ ค๋ ๊ฒ์ ๋ํ ์ ํํ ์ดํด๊ฐ ํ์ํ๊ธฐ์ ์ค๊ณ๋จ๊ณ๋ถํฐ ๋ง์ ์๊ฐ์ด ์๋ชจ๋๋ค.2. ๊ฐ์ฒด์งํฅ ์ธ์ด๋ ๋์ฒด์ ์ผ๋ก ์คํ์๋๊ฐ ๋๋ฆฌ๋ค.3. ๋ค์ค์์์ด ์ง์๋๋ c++์ ๊ฒฝ์ฐ์๋ ๋๋ฌด ๋ณต์กํด์ ธ ์ฝ๋ฉ์ ๋์ด๋๊ฐ ์์นํ ์ ์๋ค. ์๋ฐ ํ๋ก๊ทธ๋จ ์คํ๊ณผ์ 1. ์๋ฐ์ปดํ์ผ๋ฌ(javac)์ ์ํด์ .java ์์ค์ฝ๋๋ฅผ ์๋ฐ ๋ฐ์ดํธ์ฝ๋(.clas..
๐ฅ๏ธ์ปดํจํฐ๊ณผํ:CS
2024.01.05
ํ๋ก์ธ์ค : ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ(context) : ํ๋ก์ธ์ค๊ฐ ํ์ฌ ์ด๋ค ์ํ์์ ์ํ๋๊ณ ์๋์ง ์ ํํ ๊ท๋ช
ํ๊ธฐ ์ํด ํ์ํ ์ ๋ณด. CPU์ ์ํ ์ํ๋ฅผ ๋ํ๋ด๋ ํ๋์จ์ด ๋ฌธ๋งฅ Program Counter ๊ฐ์ข
register ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ code, data, stack ํ๋ก์ธ์ค ๊ด๋ จ ์ปค๋ ์๋ฃ ๊ตฌ์กฐ PCB Kernel stack ํ๋ก์ธ์ค์ ์ํ ์คํ(running) CPU๋ฅผ ์ก๊ณ instruction์ ์ํ์ค์ธ ์ํ ์ค๋น(ready) CPU๋ง ๋ณด์ ํ๋ฉด ๋น์ฅ ๋ช
๋ น์ ์คํํ ์ ์๋ ์ํ(๋ฉ๋ชจ๋ฆฌ ๋ฑ ๋ค๋ฅธ ์กฐ๊ทผ์ ๋ชจ๋ ๋ง์กฑํ๊ณ ์์) ๋ด์(blocked, wait, sleep) CPU๋ฅผ ์ฃผ์ด๋ ๋น์ฅ instruction์ ์ํํ ์ ์๋ ์ํ ํ๋ก์ธ์ค๊ฐ ์์ฒญํ ์
์ถ๋ ฅ ์์
์ด ์งํ์ค..
๐๋ฐ์ดํฐ๋ฒ ์ด์ค:DB
2024.01.04
group by์ ์ง๊ณํจ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด select ์ ์์ ์ง๊ณํจ์๋ฅผ ์ฐ๋ ์ปฌ๋ผ์ ์ ์ธํ ๋ชจ๋ ์ปฌ๋ผ์ group by ์ ์ธ์๋ก ์จ์ค์ผ ํจ! SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS, ROUND(AVG(R.REVIEW_SCORE),2) SCORE FROM REST_INFO AS I JOIN REST_REVIEW AS R ON I.REST_ID=R.REST_ID WHERE I.ADDRESS LIKE '์์ธ%' GROUP BY I.REST_ID , I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS ORDER BY SCORE desc, I.FAVORITES DESC; ํ๋ก๊ทธ๋๋จธ์ค ์์ธ์ ์์น ์..