์ „์ฒด ๊ธ€ 80

[SQL] ๋™๋ช… ๋™๋ฌผ ์ˆ˜ ์ฐพ๊ธฐ - GROUP BY (Lv. 2)

JAVA ๊ธฐ๋ณธ ๊ฐœ๋…1. ๋ฌธ์ œ2. ํ’€์ด1. ๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr 2. ํ’€์ดSELECT NAME, COUNT(NAME) AS 'COUNT' FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) > 1 ORDER BY NAME - COUNT(NAME) AS 'COUNT'๊ฐ ์ด๋ฆ„์ด ๋ช‡ ๋ฒˆ ๋“ฑ์žฅํ–ˆ๋Š”์ง€ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. - GROUP BY NAMEํ•ด๋‹น ์ด๋ฆ„์ด ์‚ฌ์šฉ๋œ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ™์€ ์ด๋ฆ„๋ผ๋ฆฌ ๊ทธ๋ฃนํ™”ํ•ฉ๋‹ˆ๋‹ค. - HAVING COUNT(NAME) > 1ํ•œ ๋ฒˆ ์ด์ƒ ์‚ฌ์šฉ๋œ ์ด๋ฆ„์„ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค

[Monitor] Prometheus, Grafana

Prometheus, Grafana1. ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ2. Prometheus3. Grafana1. ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„œ๋น„์Šค์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์•Œ๋ฆผ์„ ํ†ตํ•ด ์•Œ๋ ค์ฃผ๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.๋งŒ์•ฝ์— ์ด์ƒํ•œ ๋กœ๊ทธ์ธ ์‹œ๋„๋‚˜ ์„œ๋ฒ„ ๋ถ€ํ•˜ ๋“ฑ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ด์ƒ์„ ๊ฐ์ง€ํ•˜๊ณ  ์•Œ๋ฆผ์„ ๋ณด๋‚ด ์ด์— ๋Œ€ํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. Prometheus์„œ๋ฒ„, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์ปจํ…Œ์ด๋„ˆ ๋“ฑ์˜ ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.prometheus๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ˜์†” ๊ธฐ๋ฐ˜์œผ๋กœ ํ™•์ธํ•ด์•ผ ํ•ด์„œ ๋ถˆํŽธํ•˜๊ธฐ ๋•Œ๋ฌธ์— grafana์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 3. Grafana๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋Œ€์‹œ๋ณด๋“œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.์ด๋ฉ”์ผ, Slack ๋“ฑ์œผ๋กœ ์•Œ๋žŒ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Slack์œผ๋กœ ์•Œ๋žŒ์ด ์˜ค๊ฒŒ๋” ์„ค์ •์„ ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ์•Œ๋žŒ์ด ์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ..

[IntelliJ] Code with me ์‚ฌ์šฉํ•˜๊ธฐ

Code with me ์‚ฌ์šฉํ•˜๊ธฐํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๊ณผ์ •์—์„œ ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ๊ณ ์น˜๋ฉด์„œ Code with me๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.์˜จ๋ผ์ธ์œผ๋กœ ์ง„ํ–‰ํ•˜์—ฌ zep์˜ ํ™”๋ฉด ๊ณต์œ  ๊ธฐ๋Šฅ์œผ๋กœ ํ™•์ธํ•˜๋˜ ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ์ง์ ‘ ์ฝ”๋“œ, ํ„ฐ๋ฏธ๋„ ๋“ฑ์— ์ ‘๊ทผํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์œ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.  ์ธํ…”๋ฆฌ์ œ์ด์˜ ์ƒ๋‹จ ์šฐ์ธก์— ์‚ฌ๋žŒ ๋ชจ์–‘์„ ํด๋ฆญํ•˜์—ฌ ์„ธ์…˜ ์‹œ์ž‘์„ ๋ˆ„๋ฅด๋ฉด ์ž์‹ ์˜ ํ™˜๊ฒฝ์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์ดˆ๋Œ€ํ•  ์ˆ˜ ์žˆ๊ณ , ์„ธ์…˜ ์ฐธ์—ฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ฐธ์—ฌ ๋งํฌ๋ฅผ ์ž…๋ ฅํ•œ ํ›„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ™˜๊ฒฝ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์ดˆ๋Œ€ํ•  ๋•Œ  ์ฝ”๋“œ๋งŒ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํ„ฐ๋ฏธ๋„๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜์—ฌ ์„ธ์…˜์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํ˜ผ์ž ํ•ด๊ฒฐํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ํ•จ๊ป˜ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ์— ๋„์›€์ด ๋˜..

[Gradle] Could not download jbcrypt-0.4.jar (org.mindrot:jbcrypt:0.4): No cached version available for offline mode

Could not download jbcrypt-0.4.jar (org.mindrot:jbcrypt:0.4): No cached version available for offline mode1. ๋ฌธ์ œ2. ์›์ธ3. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•1. ๋ฌธ์ œStarting Gradle Daemon...Gradle Daemon started in 1 s 109 ms> Task :prepareKotlinBuildScriptModel UP-TO-DATECould not resolve: org.postgresql:postgresql:42.5.1FAILURE: Build failed with an exception.* What went wrong:Could not download jbcrypt-0.4.jar (org.mindrot:jbcr..

[API] Springboot์™€ Gemini API ์—ฐ๋™ํ•˜๊ธฐ (์ˆ˜์ •์ค‘)

Springboot์™€ Gemini API ์—ฐ๋™ํ•˜๊ธฐ   ์ฐธ๊ณ  ์‚ฌ์ดํŠธ Gemini API  |  Google AI for DevelopersGemini Developer API ๋ฌธ์„œ ๋ฐ API ์ฐธ์กฐai.google.dev ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค

[API] Springboot์™€ Slack API ์—ฐ๋™ํ•˜๊ธฐ (์ˆ˜์ •์ค‘)

Springboot์™€ Slack API ์—ฐ๋™ํ•˜๊ธฐ  ์ฐธ๊ณ  ์‚ฌ์ดํŠธ Slack platform overview | SlackThe Slack platform offers many tools to aid you in enhancing your workspaces. At a high level, they can be viewed through the lens of workflow automations and non-workflow Slack apps. Workflow automations These comprise both workflow apps and Workflow Builapi.slack.com ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค

[DB] ๋…ผ๋ฆฌ ์‚ญ์ œ(Soft Delete)์™€ ๋ฌผ๋ฆฌ ์‚ญ์ œ(Hard Delete)

๋…ผ๋ฆฌ ์‚ญ์ œ(Soft Delete)์™€ ๋ฌผ๋ฆฌ ์‚ญ์ œ(Hard Delete)0. ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ1. ๋…ผ๋ฆฌ ์‚ญ์ œ(Soft Delete)2. ๋ฌผ๋ฆฌ ์‚ญ์ œ(Hard Delete)0. ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ์ง€๊ธˆ๊นŒ์ง€ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฌผ๋ฆฌ ์‚ญ์ œ(Hard Delete)๋งŒ์„ ์‚ฌ์šฉํ•ด์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ตœ๊ทผ ์‚ฌ์šฉ์ž ํƒˆํ‡ด์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์‚ญ์ œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ํ•„์š”๊ฐ€ ์ƒ๊ฒผ๊ณ , ์ด๋•Œ ๋…ผ๋ฆฌ ์‚ญ์ œ(Soft Delete)์˜ ๊ฐœ๋…์„ ์ฒ˜์Œ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •๋ณด๋Š” ์‚ญ์ œ๋˜์ง€๋งŒ, ์กฐํšŒ๋‚˜ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋…ผ๋ฆฌ ์‚ญ์ œ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 1. ๋…ผ๋ฆฌ ์‚ญ์ œ(Soft Delete)๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์‚ญ์ œ๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋งŒ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.is_deleted์™€ ๊ฐ™์€ boolean ํƒ€์ž… ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ผ๋ฆฌ์ ..

[Java] ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ (Lv. 1) (์ˆ˜์ •์ค‘)

ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ (Lv. 1)1. ๋ฌธ์ œ2. ํ’€์ด1. ๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr 2. ํ’€์ด ์ฐธ๊ณ  ์‚ฌ์ดํŠธ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค

[ํ˜‘์—…] 1์ฐจ ํ”„๋กœ์ ํŠธ ํŒ€์› ํ‰๊ฐ€ ๋ฐ ํšŒ๊ณ 

1์ฐจ ํ”„๋กœ์ ํŠธ ํŒ€์› ํ‰๊ฐ€ ๋ฐ ํšŒ๊ณ 1. ํŒ€์› ํ‰๊ฐ€2. ํšŒ๊ณ 1. ํŒ€์› ํ‰๊ฐ€ 2. ํšŒ๊ณ ์ง„์งœ ์‹ค๋ ฅ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ์ œ๊ฐ€ ์ค‘์š”์‹œํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋˜๊ฒŒ ์†Œํ†ต๊ณผ ํ˜‘์—… ๊ทธ๋ฆฌ๊ณ  ์ฑ…์ž„๊ฐ ์ด์—ˆ๋Š”๋ฐ ์ž˜ ๋ฐ˜์˜๋˜์—ˆ๋˜ ๊ฑฐ ๊ฐ™์•„์„œ ๋ฟŒ๋“ฏํ•ฉ๋‹ˆ๋‹ค.์ด์ œ ์‹ค๋ ฅ๋งŒ ์˜ฌ๋ฆฌ๋ฉด ๋จ!!!!!!!!!!!!!!!!!!!! ๋Ÿญํ‚ค๋น„ํ‚ค๋‹ˆ๐Ÿ‘™~!!!!!!!!!!!!!!!!!!๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค

[Java] ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ - ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• (Lv. 1)

์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ - ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• (Lv. 1)1. ๋ฌธ์ œ2. ํ’€์ด1. ๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr 2. ํ’€์ดclass Solution { int gcd(int n, int m) { int r; while(m > 0) { r = n % m; n = m; m = r; } return n; } public int[] solution(int n, int m) { int[] answer = new int[2]..