๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (69)

๋‚˜์˜ ๋ชจ์–‘

031 | RDBMS, SQL, ACID

๐Ÿ’™ SQL ๐Ÿค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•„์š”์„ฑ In-Memory ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๋ถˆ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์—†์Œ File I/O ํŒŒ์ผ์„ ์ฝ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ํ˜•ํƒœ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ์ „์ฒด ํŒŒ์ผ์„ ์ฝ์–ด์•ผํ•จ. ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋น„ํšจ์œจ์ ์ธ ๋‹จ์ ์ด ์žˆ์Œ ๐Ÿค SQL(Structed Query Language) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด, ๊ตฌ์กฐํ™”๋œ ์ฟผ๋ฆฌ ์–ธ์–ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ ์ข…๋ฅ˜: MySQL, Oracle, SQLite, PostgreSQL ๐Ÿค NoSQL ๋ฐ์ดํ„ฐ๊ฐ€ ๊ตฌ์กฐํ™”๋˜์–ด์žˆ์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ์ €์žฅ ์ข…๋ฅ˜: MongoDB ๐Ÿค ์ฟผ๋ฆฌ(Query) ์งˆ์˜๋ฌธ(์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต) ๊ธฐ์กด ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰์–ด๋กœ ํ•„ํ„ฐ๋งํ•ด์ฃผ๋Š” ๊ฒƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ..

SEB/TIL 2022. 8. 4. 20:33
030 | REST API

๐Ÿ’™API & REST ๐Ÿค API(Application Programming Interface) ํŠน์ • ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธํŠธ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค ๋ชฉ๋ก์„ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉ ์›น ์•ฑ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ๋„ค์ด๋ฒ„ ๋กœ๊ทธ์ธ์„ ํ•ด์•ผ๋˜๋Š” ์ƒํ™ฉ์ด๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, ๋„ค์ด๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” OpenAPI๋ฅผ ํ†ตํ•ด ๋„ค์ด๋ฒ„์˜ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•˜์—ฌ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์Œ ๐Ÿค REST(Representational State Transfer) REST๋Š” ์›”๋“œ ์™€์ด๋“œ ์›น๊ณผ ๊ฐ™์€ ๋ถ„์‚ฐ ํ•˜์ดํผ๋ฏธ๋””์–ด ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์˜ ํ•œ ํ˜•์‹์œผ๋กœ, ์ž์›์„ ์ด๋ฆ„(์ž์›์˜ ํ‘œํ˜„)์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธํ•จ ์‰ฝ๊ฒŒ ๋งํ•ด API๋ฅผ ๊ตฌ์ถ•ํ• ๋•Œ URI์™€ HTTP Method๋ฅผ ํ™œ์šฉํ•˜์—ฌ API์˜ ๊ธฐ๋Šฅ์„ ์ถ”..

SEB/TIL 2022. 8. 3. 23:52
029 | ๋„คํŠธ์›Œํฌ - ์›น์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ์ˆ 

๐Ÿ’™ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘๋™์›๋ฆฌ ๐Ÿค ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠน์ • ๊ธฐ๊ธฐ์— ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜… ๊ทธ๋ƒฅ ๋ญ ์–ดํ”Œ ๋‹ค์šด๋ฐ›๋Š”๊ฑฐ ํŠน์ • ์‹คํ–‰ํ™˜๊ฒฝ์— ์ข…์†(Apple iOS, Android OS, Windows, …) iOS์šฉ์œผ๋กœ ๋‚˜์˜จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์‹คํ–‰ ๋ถˆ๊ฐ€ ๐Ÿ‘๐Ÿป ์žฅ์  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณด๋‹ค ๋น ๋ฆ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ค์น˜๋œ ๊ธฐ๊ธฐ์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์ด ์šฉ์ด (ex. GPS, ์นด๋ฉ”๋ผ, …) ์˜คํ”„๋ผ์ธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋น„ํ•ด ์•ˆ์ „ (๋ชจ๋ฐ”์ผ์€ ์•ฑ์Šคํ† ์–ด ์Šน์ธ ํ•„์š”) ๐Ÿ‘Ž๐Ÿป ๋‹จ์  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋น„ํ•ด ๋งŽ์ด ๋“œ๋Š” ๊ฐœ๋ฐœ๋น„์šฉ (๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ๊ฐœ๋ฐœ ๋“ฑ) ์–ด๋ ค์šด ๋น ๋ฅธ ์—…๋ฐ์ดํŠธ ์•ฑ์Šคํ† ์–ด ์Šน์ธ ์‹œ ๋น„์šฉ ๋ฐœ์ƒ, ์Šน์ธ๋„ ํž˜๋“ฆ ๐Ÿค ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๐Ÿ‘๐Ÿป ์žฅ์  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜..

SEB/TIL 2022. 8. 2. 19:44
026 | Greedy, Brute-Force, Binary Search Algorithm

๐Ÿ’™ Greedy Algorithm ์„ ํƒ์˜ ์ˆœ๊ฐ„๋งˆ๋‹ค ๋‹น์žฅ ๋ˆˆ์•ž์— ๋ณด์ด๋Š” ์ตœ์ ์˜ ์ƒํ™ฉ์œผ๋กœ ์ตœ์ข…์ ์ธ ํ•ด๋‹ต์— ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์„ ํƒ ์ ˆ์ฐจ(Selection Procedure): ํ˜„์žฌ ์ƒํƒœ์—์„œ์˜ ์ตœ์ ์˜ ํ•ด๋‹ต์„ ์„ ํƒ ์ ์ ˆ์„ฑ ๊ฒ€์‚ฌ(Feasibility Check): ์„ ํƒ๋œ ํ•ด๊ฐ€ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ๊ฒ€์‚ฌ ํ•ด๋‹ต ๊ฒ€์‚ฌ(Solution Check): ์›๋ž˜์˜ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๊ณ , ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์„ ํƒ ์ ˆ์ฐจ๋กœ ๋Œ์•„๊ฐ€ ์œ„์˜ ๊ณผ์ • ๋ฐ˜๋ณต ๐Ÿค ํƒ์š• ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์กฐ๊ฑด ํƒ์š•์  ์„ ํƒ ์†์„ฑ(Greedy Choice Property): ์•ž์˜ ์„ ํƒ์ด ์ดํ›„์˜ ์„ ํƒ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ(Optimal Substructure): ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ตœ์ข… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€, ๋ถ€๋ถ„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ตœ์  ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌ์„ฑ ⇒ ํ•ญ์ƒ ์ตœ์ ์˜ ๊ฒฐ..

SEB/TIL 2022. 7. 29. 02:33