Develop

Develop/Web

์‹ค์‹œ๊ฐ„ ๊ณต์œ  ๋ฌธ์„œ ํŽธ์ง‘์„ ์œ„ํ•œ WebSocket ์ดํ•ด

WebSocket WebSocket์€ ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹  ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ์—๋Š” ๋ถ€์ ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. WebSocket์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. WebSocket์€ HTTP์™€ ๋น„์Šทํ•œ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์ผ๋ฐ˜์ ์ธ HTTP์™€๋Š” ๋‹ฌ๋ฆฌ ๊ณ„์†์ ์ธ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์›น์†Œ์ผ“์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์† ์š”์ฒญ์„ ํ•˜๊ณ  ์›น ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•œ ํ›„ ์—ฐ๊ฒฐ์„ ๋Š๋Š” ๊ฒƒ์ด..

Develop/API

ChatGPT API๋ฅผ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์จ๋ณด๊ธฐ

https://platform.openai.com/docs/api-reference OpenAI API An API for accessing new AI models developed by OpenAI platform.openai.com API Key ๋ฐœ๊ธ‰ ๋ฐ›๊ธฐ ๋ฐœ๊ธ‰ ๋ฐ›์€ ํ‚ค๋Š” ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์—†๋‹ค. ๋‹ค๋ฅธ๊ณณ์— ๋ณด๊ด€ํ•˜์ž APIํ‚ค๋ฅผ ํฌํ•จํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊นƒํ—™์— ์—…๋กœ๋“œํ•˜๋ฉด ๋‹ค์‹œ ์ƒ์„ฑํ•ด์•ผ๋œ๋‹ค. ๋ชจ๋ธ ์„ ํƒ text-davinci-003 ์„ ์„ ํƒํ–ˆ๋‹ค. RestTemplate์œผ๋กœ API ์š”์ฒญํ•˜๊ธฐ @Service public class ChatGptService { private String API_KEY = ""; private static final String ENDPOINT = "https://api.openai.c..

Develop/Git

Intellij ์—์„œ ๊นƒํ—ˆ๋ธŒ ๊ด€๋ฆฌํ•˜๊ธฐ

Intellij ์—์„œ ๊นƒํ—ˆ๋ธŒ Repository ์ƒ์„ฑํ•˜๊ธฐ Share Project on Github : Git Repository ์—ฐ๊ฒฐ ์ƒˆ๋กœ ์ƒ์„ฑํ•  Repository์˜ ์ด๋ฆ„๊ณผ Private ์—ฌ๋ถ€, Description ๋“ฑ์„ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ดˆ ์ปค๋ฐ‹์„ ํ•˜๋„๋ก ์ฐฝ์ด ๋œน๋‹ˆ๋‹ค. Commit ๊นƒํ—ˆ๋ธŒ Repository ์— ์—ฐ๋™ํ•˜๊ธฐ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ HTTPS ์ฃผ์†Œ๋Š” IntelliJ ์—ฐ๋™์‹œ ํ•„์š”ํ•œ ์ฃผ์†Œ์ด๋ฏ€๋กœ ๋ณต์‚ฌ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ ๊ฒƒ์€ Git์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์€ ์›Œํฌ์ŠคํŽ˜์ด์Šค ํŒŒ์ผ์ด๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. GitHub์˜ Repository ์™€ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ Git -> Manage Remotes ํด๋ฆญ ๋ณต์‚ฌํ•ด๋‘” Repository ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

Develop/API

์นด์นด์˜ค ๋กœ๊ทธ์ธ API ๊ตฌํ˜„ ํ•˜๊ธฐ (REST API ๋ฐฉ์‹)

์นด์นด์˜ค ๋กœ๊ทธ์ธ API (OAuth 2.0) ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์—์„œ ์ˆ˜๋งŽ์€ ์‚ฌ์ดํŠธ์˜ ๋ชจ๋“  ์•„์ด๋”” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์Œ ๋˜ํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ ๋˜ํ•œ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๊ด€ํ•˜์—ฌ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋‹ด ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์—ฐ๋™ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ์นด์นด์˜ค API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• 1. ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ์‚ฌ์ดํŠธ์— ๊ฐ€์ž…ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋กํ•˜๊ธฐ ์นด์นด์˜ค API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ์‚ฌ์ดํŠธ์— ๊ฐ€์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ž… ํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋“ฑ๋กํ•˜๊ณ , ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ๊ธฐ๋Šฅ๊ณผ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. Kakao Developers ์นด์นด์˜ค API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•ด๋ณด์„ธ์š”. ์นด์นด์˜ค ๋กœ๊ทธ์ธ, ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ, ์นœ๊ตฌ API, ์ธ๊ณต์ง€๋Šฅ API ๋“ฑ์„ ..

Develop/Git

Git & Github ์†Œ๊ฐœ

๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(VCS) ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๋ฒ„๊ทธ๋ฐœ์ƒ์‹œ ํŠน์ •์‹œ์ ์œผ๋กœ ๋˜๋Œ์•„๊ฐ€๊ธฐ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ˆ„๊ฐ€ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ์ถ”์  ์ ์šฉ์ด ์ž˜๋ชป๋˜์—ˆ์„๋•Œ ๋ณต๊ตฌ ๋Œ€๊ทœ๋ชจ ์ˆ˜์ •์ž‘์—…์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ง„ํ–‰ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋™์‹œ ์ž‘์—… git ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ Github ์€ ‘git’ ์„ ์ œ๊ณตํ•˜๋Š” ์›นํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค Git ๋ช…๋ น์–ด & ๋™์ž‘ ๋ฐฉ์‹ ๋‚ด ์ปดํ“จํ„ฐ์˜ ํŒŒ์ผ์„ ๊นƒํ—ˆ๋ธŒ์— ์˜ฌ๋ฆฌ๋ ค๋ฉด, ๊นƒํ—ˆ๋ธŒ์— '์›๊ฒฉ ์ €์žฅ์†Œ'๋ฅผ ๋งŒ๋“ค๊ณ , ๋‚ด ์ปดํ“จํ„ฐ์— '๋กœ์ปฌ ์ €์žฅ์†Œ'๋ฅผ ๋งŒ๋“  ๋’ค ๋‘˜์„ ์—ฐ๊ฒฐํ•ด์„œ ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ํŒŒ์ผ์„ ์›๊ฒฉ์ €์žฅ์†Œ๋กœ ๋ณด๋‚ด๋ผ๊ณ  ๋ช…๋ นํ•˜๋ฉด ๋œ๋‹ค. ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ git init ๋กœ์ปฌ ์ €์žฅ์†Œ ๋งŒ๋“ค๊ธฐ //๋กœ์ปฌ ์ €์žฅ์†Œ ์ƒ์„ฑ $ git init ๊ด€๋ฆฌํ•  ํด๋” ์ •ํ•˜๊ธฐ git add ๊ด€๋ฆฌ ํ•  ํŒŒ์ผ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋กœ์ปฌ ์ €์žฅ์†Œ์™€ ์›๊ฒฉ ์ €์žฅ์†Œ ์—ฐ๊ฒฐ ..

Develop/OSS

์˜คํ”ˆ์†Œ์Šค ์‚ฌ์šฉ / ์ฃผ์š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ

Open Source Software ์ €์ž‘๊ถŒ์ž๊ฐ€ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜์—ฌ ๋ˆ„๊ตฌ๋‚˜ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ, ์ˆ˜์ •, ์žฌ๋ฐฐํฌ ํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ผ๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ์†Œ์Šค ์ฝ”๋“œ๋Š” ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์—…์ด ์˜คํ”ˆ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๋น„์šฉ์ ˆ๊ฐ / ์ตœ์‹ ๊ธฐ์ˆ  ํ™•๋ณด / ์˜คํ”ˆ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์€ ์ฆ๊ฐ€ / ๋…์  ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฐ์†Œ ์˜คํ”ˆ์†Œ์Šค ์„ ํƒ ๊ธฐ์ค€ ๊ธฐ๋Šฅ ๋น„๊ต ๋ถ„์„ ํ”„๋กœ์ ํŠธ์—์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ ์ถฉ์กฑ - ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด ์ ํ•ฉํ•˜๊ฒŒ ์ œ๊ณต๋˜๋Š”๊ฐ€? - ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณตํ•˜๋Š”๊ฐ€? - ํŒ€์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ์— ์–ด๋ ต์ง€๋Š” ์•Š์€๊ฐ€? (๋ ˆํผ๋Ÿฐ์Šค?) ( ํŒ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด ์œ ๋ฆฌ ) - ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ˆ˜์ •์€ ๊ฐ€๋Šฅํ•œ๊ฐ€? (LGPL ๋ผ์ด์„ ์Šค์‚ฌ์šฉ์‹œ ์†Œ์Šค์ฝ”๋“œ ๊ณต๊ฐœ ๋ฌธ์ œ์ ) ํ”„๋กœ์ ํŠธ์™€์˜ ํ˜ธํ™˜์„ฑ ๋ฐ..

Develop/OSS

์˜คํ”ˆ์†Œ์Šค

์บก์ฐจ(CAPTCHA, ์›น์‚ฌ์ดํŠธ ๋“ฑ๋ก์ธ์ฆ ์„œ๋น„์Šค) ์˜คํ”ˆ์†Œ์Šค์˜ ์ •์˜ ์ €์ž‘๊ถŒ์ž๊ฐ€ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜์—ฌ ๋ˆ„๊ตฌ๋‚˜ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ, ์ˆ˜์ •, ์žฌ๋ฐฐํฌ ํ•  ์ˆ˜ ์žˆ๋Š” ์ž์œ ๋กœ์šด ์†Œํ”„ํŠธ์›จ์–ด Free ์†Œํ”„ํŠธ์›จ์–ด: ๊ณต๋™์ฒด ์ „์ฒด๊ฐ€ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ์ด๋ฅผ ๋ฐฐํฌ ์˜คํ”ˆ ์†Œ์Šค์˜ ์˜๋ฏธ๋Š” ‘์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋“ค์—ฌ๋‹ค ๋ณผ ์ˆ˜ ์žˆ๋‹ค.’๋Š” ๊ฒƒ์œผ๋กœ Free ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ์ค€์—๋Š” ๋ชป๋ฏธ์นœ๋‹ค. - GNU ๋ผ์ด์„ ์Šค(License)๋Š” ๋Œ€์—ฌ ๊ทœ์น™์„ ์ •์˜ํ•ด ๋†“์€ ์‚ฌ์šฉ ํ—ˆ๊ฐ€๊ถŒ(License) ์˜คํ”ˆ์†Œ์Šค ์‚ฌ์šฉ์ž๋Š” ๋ผ์ด์„ ์Šค๋ฅผ ์ค€์ˆ˜ํ•ด์•ผ ํ•  ์˜๋ฌด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์˜๋ฌด์‚ฌํ•ญ “์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ถœ์ฒ˜๋ฅผ ๋ฐํžˆ๋Š” ๊ฒƒ์€ ๊ฐœ๋ฐœ์ž์˜ ์˜๋ฌด์‚ฌํ•ญ” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•ด์•ผํ•˜๋Š” GPL ์†Œํ”„ํŠธ์›จ์–ด GPL์˜ ๊ฒฝ์šฐ ์†Œ์Šค์ฝ”๋“œ ์ „์ฒด ๊ณต๊ฐœ ์˜๋ฌด์‚ฌํ•ญ MPL, EPL ๋“ฑ์˜ ๋ผ์ด์„ ์Šค๋Š” ์ˆ˜์ •ํ•œ ๋ถ€๋ถ„์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœ

Develop/DB

[RDBMS Modeling ๊ธฐ์ดˆ] 6. ๊ด€๊ณ„(Relation) - ์—ฐ์Šต๋ฌธ์ œ1

๋ช…์‚ฌ์™€ ๋™์‚ฌ๋ฅผ ๋นผ๊ณ  ๋‹ค ์ œ๊ฑฐํ•˜์ž ๊ณผ๋ชฉ / ํ•™๋…„ / ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์‹œํ—˜(์ค‘๊ฐ„๊ณ ์‚ฌ,๊ธฐ๋ง๊ณ ์‚ฌ) ํ•™์ƒ / ํ•™๋…„ / ๋ฐ˜ / ๋ฐฐ์ •ํ•˜๋‹ค / ๊ณ ์œ ๋ฒˆํ˜ธ(๋ฐ˜๋ณ„) ๋‹ด์ž„์„ ์ƒ๋‹˜ / ์„ ์ƒ๋‹˜ # ํ•œ ๋ฐ˜์˜ ํ•™์ƒ 40๋ช… # ๋‚จ๋…€ ๊ณตํ•™ #์„์ฐจ(๋‚จ๋…€ ๊ณตํ†ต 1๋“ฑ๋ถ€ํ„ฐ ์ˆœ์„œ) ๋งˆ์Šคํ„ฐ ํ…Œ์ด๋ธ”์„ ์„ค๊ณ„ํ•˜์ž 1:M ๊ด€๊ณ„๋ฅผ ์ฐพ์•„๋ณด์ž ํ•˜๋‚˜์˜ ํ•™๋…„์ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ˜์„ ๊ฐ–๋Š”๋‹ค ๋ฐ˜ ์ž…์žฅ์—์„œ ๋ณด๋ฉด ํ•™๋…„์€ ํ•˜๋‚˜๋‹ค ( 1ํ•™๋…„ 1๋ฐ˜์ด์ง€๋งŒ 2ํ•™๋…„ 1๋ฐ˜ ์ผ์ˆ˜๋Š” ์—†๋‹ค ) ํ•™๋…„์€ 1,2,3 ํ•™๋…„ ๋ฐ–์— ์—†๋‹ค ๊ฐ’์„ ๋„ฃ์–ด์ค„์ˆ˜ ์žˆ๋Š” DB๋Š” ๋„ฃ์–ด์ฃผ๊ณ  ๋ด‰์ธ์‹œํ‚ค์ž ( SELECT ๋งŒ ์—ด์–ด๋‘๊ณ  ๋‹ค ๋ง‰๋Š”๋‹ค )

hello_u
'Develop' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก