๐Ÿ’ป ๊ฐœ๋ฐœ

๋งค๋ฒˆ ์ธ์ฆ, ์ธ๊ฐ€์— ๋Œ€ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ˆ™์ง€ํ•˜์ง€ ์•Š๊ณ , ์ฝ”๋“œ๋งŒ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹ค. ํšŒ์‚ฌ์—์„œ๋„ ์ด์— ๋Œ€ํ•ด ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์—†๋‹ค ๋ณด๋‹ˆ ์ตœ๊ทผ ํ† ์ด ํ”„๋กœ์ ํŠธ๋กœ ํŒจ์…˜ ์ด์ปค๋จธ์Šค ํ”Œ๋žซํผ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์— ๋Œ€ํ•ด ๊ณต๋ถ€๋„ ํ•ด๋ณด๊ณ , ์–ด๋Š ์ •๋„ ๊ธฐ๋ณธ์ ์ธ ์ดํ•ด๋ฅผ ํ•˜๋ฉฐ ์ ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฃผ๋กœ ์œ ๋ฐ๋ฏธ(Udemy)์˜ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ดํ•ดํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€๊ณ , ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์˜ ๊ธฐ๋ณธ ๋™์ž‘ ํ๋ฆ„์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜์˜€๋‹ค. Spring Security๋ž€? Spring ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€(https://spring.io/projects/spring-security)์—์„œ๋Š” Spring Security๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค. ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€๊ฐ€ ์ œ์ผ ์ •ํ™•ํ•˜๊ณ  ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…์ด ๋˜์–ด์žˆ์œผ๋‹ˆ ๋งŒ์•ฝ ๋” ์•Œ๊ณ  ์‹ถ๋‹ค..
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..
์ตœ๊ทผ ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…ํ–ˆ๋˜ ๊ฒฝํ—˜์„ ํ†ตํ•ด ์•Œ๊ฒŒ ๋œ ์ ์„ ์ ์–ด๋ณผ๊นŒ ํ•œ๋‹ค. ๊ฐœ๋ฐœํ–ˆ๋˜ ๋กœ์ง flow๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด, ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ์— ์žˆ๋Š” ๊ณ ๊ฐ์„ ์ถ”์ถœํ•˜์—ฌ ์ค‘๋ณต ๊ณ ๊ฐ์„ ํ†ตํ•ฉํ•˜๊ณ  ์‹ ๊ทœ ์‹œ์Šคํ…œ์— ์ด๊ด€ํ•˜๋Š” ETL ์ž‘์—…์ด๋‹ค. ์ž‘์—… ํ™˜๊ฒฝ์€ ๊ณ ๊ฐ์‚ฌ์˜ DB ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ CentOS 7์— MariaDB๋ฅผ rpm์œผ๋กœ ์„ค์น˜ํ•˜์—ฌ 5.x ๋ฒ„์ „์œผ๋กœ ์„ค์น˜๊ฐ€ ๋˜์–ด ์žˆ์—ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์‹ ๊ทœ ๊ณ ๊ฐ์„ Insert ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ.. ๊ทธ ์ „์— ์ž ๊น ์˜ˆ์ „์—๋„ ๋น„์Šทํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ ๋‹น์‹œ ๊ณ ๊ฐ์‚ฌ DB Server๋Š” Oracle์„ ์‚ฌ์šฉํ–ˆ์–ด์„œ, ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ nextval, currval๋กœ ID๋ฅผ return ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋‹น์—ฐํžˆ ์ด๋ฒˆ์—๋„ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•ด์„œ ID๋ฅผ ๋ฐ›์•„์•ผ์ง€ ํ–ˆ์ง€๋งŒ... ๊ทธ๋žฌ๋‹ค.. M..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ์บ์‹œ (LV.2) ๋ฌธ์ œ๋งํฌ https://school.programmers.co.kr/learn/courses/30/lessons/17680 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด ๊ณผ์ • 1. ์šฐ์„  ์บ์‹œ ์‚ฌ์ด์ฆˆ๊ฐ€ 0์ด๋ฉด, cache hit์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋ฐฐ์—ด๊ธธ์ด * 5๋ฅผ ํ•ด์„œ ๋ฐ”๋กœ return ํ•ด์ค€๋‹ค. 2. ์บ์‹œ ์‚ฌ์ด์ฆˆ์— ๋งž๊ฒŒ ๋ฌธ์ž์—ด์„ ๋‹ด์„ ๋ฐฐ์—ด cache๊ณผ ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ์บ์‹œ์— ๋ช‡ ํ„ด๋™์•ˆ ๋‹ด๊ณ  ์žˆ์—ˆ๋Š”์ง€ ์นด์šดํŠธํ•  ์ •์ˆ˜ ๋ฐฐ์—ด cnt์„ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค. 3. ๋จผ์ € ์ž…๋ ฅ๋ฐ›์€ ๋„์‹œ์ด๋ฆ„ ๋ฐฐ์—ด cities๋ฅผ for๋ฌธ์œผ๋กœ ๋Œ๋ฉฐ ..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ (LV.2) ๋ฌธ์ œ๋งํฌ https://school.programmers.co.kr/learn/courses/30/lessons/12951 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด ๊ณผ์ • 1. JadenCase๋Š” ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์˜ ๋ชจ๋“  ๋‹จ์–ด ์ฒซ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ด๊ณ , ๊ทธ ์™ธ๋Š” ์†Œ๋ฌธ์ž์ด์–ด์•ผ ํ•œ๋‹ค. ๊ฐ’์„ ๊ณต๋ฐฑ๋ฌธ์ž(" ")๋กœ splitํ•˜์—ฌ String ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ”์ฃผ์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€, '๊ณต๋ฐฑ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.' ๋ผ๋Š” ์ œํ•œ ์กฐ๊ฑด์ด ์กด์žฌํ•œ๋‹ค. split() ๋ฉ”์†Œ๋“œ๋Š” ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์— ์žˆ๋Š” ๊ณต..
* 2023.09.06 ์ถ”๊ฐ€ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ๋กœ ๋นŒ๋“œํ•˜์˜€๋‹ค. mac์šฉ ์‹คํ–‰ ํŒŒ์ผ๋„ ๋ฐฐํฌํ•˜๋ ค ํ–ˆ์ง€๋งŒ, ์•Œ ์ˆ˜ ์—†๋Š” ์—๋Ÿฌ๋กœ ์ธํ•ด ํ•˜๋ฃจ๋ฅผ ๊ผฌ๋ฐ• ์จ๋„ ์›์ธ์„ ๋ชป ์ฐพ์•„ ์šฐ์„  ์œˆ๋„์šฐ์šฉ ์‹คํ–‰ ํŒŒ์ผ๋งŒ ๊นƒํ—ˆ๋ธŒ์— ์ถ”๊ฐ€ํ•˜์˜€๋‹ค. ์•„ ๊ทธ๋ฆฌ๊ณ , ์ง์ ‘ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ถˆํŽธํ•œ ์ ์ด์—ˆ๋˜ ์บก์ฒ˜ ์†๋„ ์กฐ์ ˆ์„ GUI์—์„œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ํ•˜์˜€๊ณ , ์ดˆ๊ธฐํ™” ๋ฒ„ํŠผ๋„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค. ์บก์ณ ์†๋„๋ฅผ ์ถ”๊ฐ€ํ•œ ์ด์œ ๋Š”, ์‹คํ–‰ํ•˜๋Š” ํ™˜๊ฒฝ๋งˆ๋‹ค e-book์—์„œ ๋‹ค์Œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ๋•Œ, ํ™”๋ฉด ๋กœ๋”ฉ์ด ๋Š๋ฆฐ ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์—ˆ๋‹ค. ๋•Œ๋ฌธ์— ์บก์ฒ˜ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋„˜๊ฒจ๋ณด๋ฉด์„œ ์–ด๋Š ์ •๋„์˜ ํ…€์œผ๋กœ ์บก์ฒ˜ํ• ์ง€ ํŒ๋‹จํ•˜์—ฌ ์ง€์ •ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์€ ์•„๋ž˜ ๊นƒํ—ˆ๋ธŒ ๋งํฌ๋กœ ๋“ค์–ด๊ฐ€์„œ dist ํด๋” ์•ˆ์— ebook_to_pdf.exe์„ ๋ฐ›์œผ๋ฉด ๋œ๋‹ค. ์‹คํ–‰..
๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜์˜ ์šด์˜์ฒด์ œ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ๊ฐœ์ธ์ ์œผ๋กœ ์ฐพ์•„ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ๊ณผ ํ•จ๊ป˜ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ํ”„๋กœ์„ธ์Šค? ํ”„๋กœ์„ธ์Šค๋ž€ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋Ÿผ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ? ๐Ÿ’ก ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํ“จํ„ฐ์—์„œ ํŠน์ • ์ž‘์—… ๋˜๋Š” ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋œ ํŠน์ • ์ง€์นจ ์ง‘ํ•ฉ์ด ํฌํ•จ๋œ ์‹คํ–‰ ํŒŒ์ผ(์˜ˆ๋ฅผ ๋“ค์–ด exe ํŒŒ์ผ)์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์ด๋Ÿฌํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ ํ™œ์„ฑ ์—”ํ„ฐํ‹ฐ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ๋งฅ (Process Context) ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ˜„์‹œ์ ์—์„œ ์–ด๋””๊นŒ์ง€ ์ˆ˜ํ–‰์ด ๋˜์—ˆ๋Š”์ง€๋ฅผ ์•Œ๊ธฐ ์œ„ํ•œ ์ •๋ณด ๐Ÿ—ฃ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค์—์„œ ์ œ๊ฑฐ๋  ๋•Œ๋งˆ๋‹ค ํ˜„์žฌ ์ž‘๋™ ์ƒํƒœ์— ๋Œ€ํ•œ ์ถฉ๋ถ„ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜์–ด ํ”„๋กœ์„ธ์„œ์—์„œ ๋‹ค์‹œ ์‹คํ–‰๋˜๋„๋ก ์˜ˆ์•ฝ๋  ๋•Œ ๋™์ผํ•œ ์œ„์น˜์—์„œ ์ž‘์—…์„ ์žฌ๊ฐœ..
์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์„ ์ด์šฉํ•œ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํŒŒ์ด์ฌ ์Šคํฌ๋ฆฝํŠธ๋กœ ์•Œ์•„๋ณด์ž. ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(GCD)๋ž€? - ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณตํ†ต๋œ ์•ฝ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜(LCM)๋ž€? - ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณตํ†ต๋œ ๋ฐฐ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ = ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณฑ / ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•(Euclidean algorithm) ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ• ํฐ ์ˆ˜์—์„œ ์ž‘์€ ์ˆ˜๋ฅผ ๋นผ๋ฉด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋‘˜ ์ค‘ ๋” ํฐ ๊ฐ’์„ ๋ฐ˜๋ณตํ•ด์„œ ๋นผ๋ฉด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ ๋œ๋‹ค. ( ex. 60, 36 ⇒ 60-36=24, 36-24=12, 24-12=12, 12-12=0. ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ 12) ๋นผ๊ธฐ ๋Œ€์‹  ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋‹ค๊ฐ€ 0์ด ๋  ๋•Œ์˜ ์ž‘์€ ๊ฐ’์ด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์ด๋‹ค. ( ex. 12, 28 ⇒ ..
EastShine_
'๐Ÿ’ป ๊ฐœ๋ฐœ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก