์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„(์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ, ERD, API ์„ค๊ณ„) - ํ•ญํ•ด ํ”Œ๋Ÿฌ์Šค ํšŒ๊ณ  (3์ฃผ์ฐจ)
ยท
๐Ÿ  ์ผ์ƒ/๐Ÿ““ ์ผ์ƒ ์ผ๊ธฐ
๋“ค์–ด๊ฐ€๋ฉฐ์ด๋ฒˆ ์ฃผ์ฐจ๋Š” ๋งˆ์ง€๋ง‰ 10์ฃผ๊นŒ์ง€ Developํ•  ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์„ ํƒํ•˜๊ณ , ํ•ด๋‹น ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋Š” ํ•œ ์ฃผ์˜€๋‹ค.๊ฐ ์กฐ๋งˆ๋‹ค ๊ฐ™์€ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์„ ์ •ํ•ด์„œ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์„ ๊ฒƒ์ด๋ผ๋Š” ์กฐ์–ธ์„ ๋“ฃ๊ณ , ์šฐ๋ฆฌ ์กฐ๋Š” ์ œ์ผ ๋‚œ์ด๋„๊ฐ€ ๋†’์€ ์ฃผ์ œ์ธ "์ฝ˜์„œํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค"๋ฅผ ์„ ํƒํ–ˆ๋‹ค.  ์‹œ๋‚˜๋ฆฌ์˜ค์ฝ˜์„œํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค์—์„œ ์ œ์ผ ์ค‘์š”ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ์ˆ ์˜ ํ•ต์‹ฌ์€ ๋ฐ”๋กœ "๋Œ€๊ธฐ์—ด"์ด๋‹ค.์„œ๋ฒ„์˜ ํ•œ์ •๋œ ์ž์›์„ ๊ฐ€์ง€๊ณ  ํŠธ๋ž˜ํ”ฝ์ด ๊ธ‰์ฆํ–ˆ์„ ๋•Œ, ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋Œ€๊ธฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ์œจ์„ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.- ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›๋Š” API๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.- ํ† ํฐ์€ ์œ ์ €์˜ UUID ์™€ ํ•ด๋‹น ์œ ์ €์˜ ๋Œ€๊ธฐ์—ด์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด ( ๋Œ€๊ธฐ ์ˆœ์„œ or ์ž”์—ฌ ์‹œ๊ฐ„ ๋“ฑ ) ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.- ์ดํ›„ ๋ชจ๋“  AP..
Clean Architecture - ํ•ญํ•ด ํ”Œ๋Ÿฌ์Šค ํšŒ๊ณ  (2์ฃผ์ฐจ)
ยท
๐Ÿ  ์ผ์ƒ/๐Ÿ““ ์ผ์ƒ ์ผ๊ธฐ
๋“ค์–ด๊ฐ€๋ฉฐ ์ด๋ฒˆ 2์ฃผ ์ฐจ ํ•ญํ•ด๋„ ๋ฌด์‚ฌํžˆ ๋งˆ์ณค๋‹ค. ์ด๋ฒˆ ๊ณผ์ œ์—์„œ๋Š” ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ ์„ค๊ณ„์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ค‘์ ์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜์˜€๋‹ค.๊ทธ๋™์•ˆ ์ฃผ๋กœ 3-tier ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•ด ์™”์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š”ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜์™€ ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜์˜ ํŠน์ง•, ์žฅ๋‹จ์  ๋ถ„์„์„ ํ†ตํ•ด ๊ฐ์ฒด์ง€ํ–ฅ์  ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ์— ๋Œ€ํ•ด ๊นŠ์ด ๊ณ ๋ฏผํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.     ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ & ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋Š” ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์™ธ๋ถ€ ์˜์กด์„ฑ์œผ๋กœ๋ถ€ํ„ฐ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๊ณ , ์™ธ๋ถ€ ๋ณ€ํ™”์— ๋Œ€ํ•œ ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.  1. ์—”ํ‹ฐํ‹ฐ (Entities)์—”ํ‹ฐํ‹ฐ๋Š” ์‹œ์Šคํ…œ์˜ ์ „์‚ฌ์  ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ์บก์Šํ™”ํ•œ ๊ฐ์ฒด๋กœ, ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ์˜ ๋ณ€ํ™”์— ์˜์กดํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Š” ๊ฐ€์žฅ ํ•ต์‹ฌ..
๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ (synchronized, reentrantLock)
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ€ Spring
1. ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ๋Š” ์™œ ํ•˜๋Š”๊ฑธ๊นŒ?๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์œ ์ €๊ฐ€ ํฌ์ธํŠธ๋ฅผ ๋™์‹œ์— ์ถฉ์ „ ๋˜๋Š” ์‚ฌ์šฉํ•  ๋•Œ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” Race Condition(๊ฒฝ์Ÿ ์ƒํƒœ) ํ˜„์ƒ์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, Race Condition์ด๋ž€ ๊ณต์œ  ์ž์›์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผ์„ ์‹œ๋„ํ•  ๋•Œ, ์‹คํ–‰ ์ˆœ์„œ๋‚˜ ์‹œ๊ฐ„์— ์˜ํ•ด ๊ฒฐ๊ณผ ๊ฐ’์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์„ ํ†ตํ•ด Race Condition์— ๋Œ€ํ•œ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด 2๊ฐœ์˜ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋œ ๊ฐ๊ฐ์˜ ํƒœ์Šคํฌ๊ฐ€ point๋ผ๋Š” ๋ณ€์ˆ˜์— ๋™์‹œ์— ์ ‘๊ทผํ•˜์—ฌ ์ดˆ๊ธฐ๊ฐ’ 0์„ ์ฝ์–ด์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ 500์„ ๋”ํ•˜๋Š” ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , point์— ๊ฒฐ๊ณผ ๊ฐ’์„ ๋Œ€์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋Œ€์™€..
TDD, ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ - ํ•ญํ•ด ํ”Œ๋Ÿฌ์Šค ํšŒ๊ณ  (1์ฃผ์ฐจ)
ยท
๐Ÿ  ์ผ์ƒ/๐Ÿ““ ์ผ์ƒ ์ผ๊ธฐ
๋“ค์–ด๊ฐ€๋ฉฐ ๋“œ๋””์–ด 1์ฃผ ์ฐจ๊ฐ€ ๋๋‚ฌ๋‹ค..! (์ด์ œ 10ํผ ํ–ˆ๋‹ค..) ์ •๋ง ์ง€๋‚œ ํ•œ ์ฃผ๋Š” ๋‚ด ๋จธ๋ฆฌ๋กœ ๋“ค์–ด์˜ค๋Š” ์ธํ’‹ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋งˆ์–ด๋งˆํ•œ ์ผ์ฃผ์ผ์ด์—ˆ๋‹ค.์ง€๋‚œ ํ† ์š”์ผ, ์˜คํ”„๋ผ์ธ ์„ธ์…˜ ๋ชจ์ž„์—์„œ 10์ฃผ๋™์•ˆ ํ•จ๊ป˜ ํ•  ํŒ€์›๋“ค๊ณผ ์ฒซ ๋Œ€๋ฉด์„ ํ•˜๊ณ , 1์ฃผ ์ฐจ ๊ณผ์ œ์— ๋Œ€ํ•œ ๋ฐœ์ œ๋ฅผ ๋“ค์—ˆ๋‹ค. ๊ทธ๋ƒฅ ์•„์ด์Šค๋ธŒ๋ ˆ์ดํ‚น ํ•˜๋ฉฐ ์„œ๋กœ ๊ถ๊ธˆํ•œ ๊ฒƒ๋“ค ์–˜๊ธฐ ๋‚˜๋ˆ„๊ณ , ์ฝ”์น˜๋‹˜์—๊ฒŒ ๊ณผ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ’€์–ด๊ฐˆ ๊ฒƒ ์ธ๊ฐ€์— ๋Œ€ํ•œ ์„ค๋ช…๋งŒ ๋“ค์—ˆ์„ ๋ฟ์ธ๋ฐ ์ง€๊ธˆ ํšŒ์‚ฌ์—์„œ๋Š” ๊ฒฝํ—˜ํ•ด ๋ณด์ง€๋„, ๋Š๊ปด๋ณด์ง€๋„ ๋ชปํ–ˆ๋˜ ๋‚ด์šฉ๋“ค์— ์ ์ž–์€ ์ถฉ๊ฒฉ๊ณผ ์„ค๋ ˜๊ณผ ๊ธด์žฅ์ด ๋’ค์„ž์—ฌ์žˆ์—ˆ๋‹ค.  ๋‚˜๋Š” ์ง€๊ธˆ ํšŒ์‚ฌ์—์„œ ๊ทธ๋ž˜๋„ ๋‚˜์˜์ง€ ์•Š์€ ์„ฑ๊ณผ๋ฅผ ๋‚ด๊ณค ์žˆ์ง€๋งŒ, ์ง€๋‚œ 20๋Œ€ ์‹œ์ ˆ ๋‹ค๋ฅธ ๋ถ„์•ผ์˜ ์ผ์„ ํ•˜๋ฉด์„œ โ€˜์šฐ๋ฌผ ์•ˆ ๊ฐœ๊ตฌ๋ฆฌโ€™๊ฐ€ ๋ญ”์ง€๋ฅผ ํ•œ๋ฒˆ ์Ž„๊ฒŒ ๋Š๊ปด๋ณด์•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฒˆ์—๋„ ๊ทธ๋Ÿด ๊ฒƒ์ด๋ผ๋Š” ๊ฑธ ๊ฐ์˜คํ•˜๊ณ  ์™”์—ˆ๋‹ค.์•„๋‹ˆ๋‚˜ ๋‹ค๋ฅผ๊นŒ..
ํ•ญํ•ด ํ”Œ๋Ÿฌ์Šค ๋ฐฑ์—”๋“œ 6๊ธฐ - ํšŒ๊ณ  (0์ฃผ์ฐจ)
ยท
๐Ÿ  ์ผ์ƒ/๐Ÿ““ ์ผ์ƒ ์ผ๊ธฐ
์ง€๊ธˆ๊นŒ์ง€์˜ ํšŒ๊ณ ์ฒซ ์ง์žฅ์—์„œ ๊ฐœ๋ฐœ์ž๋กœ ์ผ์„ ์‹œ์ž‘ํ•œ ์ง€ ๋ฒŒ์จ ๋งŒ 3๋…„์ด ๋„˜์—ˆ๋‹ค. ์ง€๊ธˆ ํšŒ์‚ฌ์—์„œ๋Š” ์ฃผ๋กœ SI ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๊ณ , ์ž‘์€ ํšŒ์‚ฌ๋‹ค ๋ณด๋‹ˆ ์ •ํ•ด์ง„ ํฌ์ง€์…˜ ์—†์ด ์—ฌ๋Ÿฌ ์ผ์„ ์ˆ˜ํ–‰ํ–ˆ๋‹ค. ์ œ์ผ ๋งŽ์ด ๋‹ค๋ค˜๋˜ ๊ฑด ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์ ์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ฃผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๊ฐœ๋ฐœ์ž๋กœ์„œ ๋ฏธ๋ž˜์˜ ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•œ๋‹ค๋Š” ๊ฒŒ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. 1๋…„ ์ฐจ ๋•Œ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ด ์žฌ๋ฐŒ์—ˆ๊ณ , 2๋…„ ์ฐจ ๋•Œ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ด ์žฌ๋ฐŒ์—ˆ๊ณ , 3๋…„ ์ฐจ ๋•Œ๋Š” ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋ง์ด ์žฌ๋ฐŒ์—ˆ๋‹ค.๋งŒ 3๋…„์ด ๋‹ค๊ฐ€์˜ฌ ๋•Œ์ฏค ๊ณ ๋ฏผ์ด ๋“ค์—ˆ๋‹ค. ์Šค์Šค๋กœ ์ •์ฒด์„ฑ์ด ์—†๊ณ  ๋ฉ”ํƒ€์ธ์ง€๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์‹œ์ ์— ์ด๋ฅด๋ €๋‹ค. ๋‚ด๊ฐ€ ์ง„์งœ ํ•˜๊ณ  ์‹ถ์€ ๊ฑด ๋ฌด์—‡์ผ๊นŒ? ๋‚ด๊ฐ€ ์ž˜ ์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฑธ๊นŒ? ์–ด๋–ค ๊ฑธ ํ•ด์•ผ ๋‚ด๊ฐ€ ๊ฐœ๋ฐœ์ž๋กœ์„œ ํฅ๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ๊พธ์ค€ํžˆ ์„ฑ์žฅ์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?  ์ฐธ์—ฌ..
Spring Security ๋‚ด๋ถ€ ํ๋ฆ„ ์ดํ•ดํ•˜๊ธฐ
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ€ Spring
๋งค๋ฒˆ ์ธ์ฆ, ์ธ๊ฐ€์— ๋Œ€ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ˆ™์ง€ํ•˜์ง€ ์•Š๊ณ , ์ฝ”๋“œ๋งŒ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹ค. ํšŒ์‚ฌ์—์„œ๋„ ์ด์— ๋Œ€ํ•ด ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์—†๋‹ค ๋ณด๋‹ˆ ์ตœ๊ทผ ํ† ์ด ํ”„๋กœ์ ํŠธ๋กœ ํŒจ์…˜ ์ด์ปค๋จธ์Šค ํ”Œ๋žซํผ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์— ๋Œ€ํ•ด ๊ณต๋ถ€๋„ ํ•ด๋ณด๊ณ , ์–ด๋Š ์ •๋„ ๊ธฐ๋ณธ์ ์ธ ์ดํ•ด๋ฅผ ํ•˜๋ฉฐ ์ ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฃผ๋กœ ์œ ๋ฐ๋ฏธ(Udemy)์˜ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ดํ•ดํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€๊ณ , ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์˜ ๊ธฐ๋ณธ ๋™์ž‘ ํ๋ฆ„์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜์˜€๋‹ค. Spring Security๋ž€? Spring ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€(https://spring.io/projects/spring-security)์—์„œ๋Š” Spring Security๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค. ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€๊ฐ€ ์ œ์ผ ์ •ํ™•ํ•˜๊ณ  ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…์ด ๋˜์–ด์žˆ์œผ๋‹ˆ ๋งŒ์•ฝ ๋” ์•Œ๊ณ  ์‹ถ๋‹ค..
์Šคํ”„๋ง ๋ถ€ํŠธ์— OpenAI Whisper API ์ ์šฉํ•˜๊ธฐ
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ€ Spring
Whisper๊ฐ€ ๋ญ”๋ฐ? Whisper๋Š” ์š”์ฆ˜ ChatGPT๋กœ ํ•ซํ•œ OpenAI์—์„œ ๊ฐœ๋ฐœํ•œ ์ž๋™ ์Œ์„ฑ ์ธ์‹ ๋ชจ๋ธ์ด๋‹ค. ์Œ์„ฑ์„ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” STT(Speech-to-Text) ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ, ๋Œ€ํ™” ์Œ์„ฑ ํŒŒ์ผ์„ ํ…์ŠคํŠธ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. OpenAI๋Š” ์˜ฌํ•ด 3์›” 1์ผ GPT-3.5-turbo ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ Whisper API๋ฅผ ์ถœ์‹œํ•˜์˜€๋‹ค. API๊ฐ€ ์ œ๊ณต๋˜๊ธฐ ์ด์ „์—” Whisper๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ๋ถˆํŽธํ–ˆ์ง€๋งŒ, ์ด์   ๊ณ ์„ฑ๋Šฅ ๋ชจ๋ธ(Large-v2)์„ ์•ฝ๊ฐ„์˜ ๊ธˆ์•ก์„ ์ง€๋ถˆํ•˜๊ณ  ์ด์šฉํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋“ค์ด ์‚ฌ์šฉํ•˜๊ธฐ์— ํŽธ์˜์„ฑ์ด ์ข‹์•„์กŒ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ํ™œ์šฉํ•ด์„œ Whisper API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ๋‹ค. ์šฐ์„  ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—, ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ช‡ ๊ฐœ๋งŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€ ๋ณด์ž. ๋ณดํ†ต STT ๊ธฐ์ˆ ์€ W..
[MariaDB] Auto Increment ๋œ ID๊ฐ’ ๋ฐ˜ํ™˜ํ•˜๊ธฐ
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ’พ Database
์ตœ๊ทผ ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…ํ–ˆ๋˜ ๊ฒฝํ—˜์„ ํ†ตํ•ด ์•Œ๊ฒŒ ๋œ ์ ์„ ์ ์–ด๋ณผ๊นŒ ํ•œ๋‹ค. ๊ฐœ๋ฐœํ–ˆ๋˜ ๋กœ์ง flow๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด, ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ์— ์žˆ๋Š” ๊ณ ๊ฐ์„ ์ถ”์ถœํ•˜์—ฌ ์ค‘๋ณต ๊ณ ๊ฐ์„ ํ†ตํ•ฉํ•˜๊ณ  ์‹ ๊ทœ ์‹œ์Šคํ…œ์— ์ด๊ด€ํ•˜๋Š” ETL ์ž‘์—…์ด๋‹ค. ์ž‘์—… ํ™˜๊ฒฝ์€ ๊ณ ๊ฐ์‚ฌ์˜ DB ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ CentOS 7์— MariaDB๋ฅผ rpm์œผ๋กœ ์„ค์น˜ํ•˜์—ฌ 5.x ๋ฒ„์ „์œผ๋กœ ์„ค์น˜๊ฐ€ ๋˜์–ด ์žˆ์—ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์‹ ๊ทœ ๊ณ ๊ฐ์„ Insert ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ.. ๊ทธ ์ „์— ์ž ๊น ์˜ˆ์ „์—๋„ ๋น„์Šทํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ ๋‹น์‹œ ๊ณ ๊ฐ์‚ฌ DB Server๋Š” Oracle์„ ์‚ฌ์šฉํ–ˆ์–ด์„œ, ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ nextval, currval๋กœ ID๋ฅผ return ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋‹น์—ฐํžˆ ์ด๋ฒˆ์—๋„ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•ด์„œ ID๋ฅผ ๋ฐ›์•„์•ผ์ง€ ํ–ˆ์ง€๋งŒ... ๊ทธ๋žฌ๋‹ค.. M..