๐Ÿ›๏ธdev ์•Œ๋ ‰์‚ฐ๋“œ๋ฆฌ์•„ ๋„์„œ๊ด€ (๊ฑด์„ค์ค‘...๐Ÿšง)

Hello! 🖐

✏ Web Backend Developer happyhsryu


๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.

๋‚ด์šฉ์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋„ˆ๋ฅธ ์–‘ํ•ด ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Contact

✉ email : happyhsryu@gmail.com

LATEST
JAVA ์ด๋ก 

[Java] JAVA_HOME ์ž๋ฐ” ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

Java ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•˜๋ ค๋ฉด jdk๊ฐ€ ํ•„์š”ํ•˜๋‹ค.์ปดํ“จํ„ฐ๊ฐ€ java๋ฅผ ์ปดํŒŒ์ผ ํ•˜๊ธฐ ์œ„ํ•œ javac๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์„œ jdk์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.์ปดํ“จํ„ฐํ•œํ…Œ jdk ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ณผ์ •..๊ฐ„๋‹จํ•˜์ง€๋งŒ ์•Œ์•„๋‘๋ฉด ์•ž์œผ๋กœ ์ž์ฃผ ์“ธ ๊ฒƒ ๊ฐ™์•„์„œ ๊ธฐ๋กํ•ด ๋‘”๋‹ค.์ด ๊ธ€์€ 2024๋…„ 10์›” 14์ผ, Windows 11 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ์ž‘์„ฑํ–ˆ๋‹ค.0. jdk ์„ค์น˜์šฐ์„  jdk๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค.์—ฌ๊ธฐ์„  C:\dev_files\jdk\openjdk-1.8์— ์œ„์น˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ€์ •ํ•˜๊ณ  ์„ค๋ช…ํ•œ๋‹ค.1. ์‹œ์Šคํ…œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ย ๊ฒ€์ƒ‰ํ•ด์„œ "์‹œ์Šคํ…œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํŽธ์ง‘"์œผ๋กœ ๋“ค์–ด๊ฐ€๋„ ๋˜๊ณ ,์ œ์–ดํŒ - ์‹œ์Šคํ…œ - ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ •(์‹œ์Šคํ…œ ์†์„ฑ) - ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋“ค์–ด๊ฐ€๋„ ๋œ๋‹ค.2-1. ์‹œ์Šคํ…œ ๋ณ€์ˆ˜ ์„ค์ •์ค‘์š”ํ•œ ๊ฒƒ์€ jdk ์œ„์น˜์ด๋‹ค.๊ทธ๋Ÿฐ๋ฐ..

DevOps

[Web] Arachni Scanner ์›น ์ทจ์•ฝ์„ฑ ์ง„๋‹จ Tool

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์ด Tool์€ย ๋™์ ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•˜๋ฉฐ ๋™์ž‘ํ•˜๋Š”๊ฒŒ ์•„๋‹Œ,ย ์ฒ˜์Œ ์ž…๋ ฅํ•œ ํŽ˜์ด์ง€ ํ•˜๋‚˜์— ๋Œ€ํ•œ ์ง„๋‹จ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.๊ฒฐ๊ณผ์ ์œผ๋กœ ์ตœ์ดˆ ์ง„๋‹จ ๋ชฉ์ ๊ณผ ๋‹ฌ๋ผ์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ๊ธฐ๋ก์„ ์œ„ํ•ด ๋‚จ๊ฒจ๋†“๋Š”๋‹ค.ย Arachni - ์›น ๋ณด์•ˆ์ทจ์•ฝ์  ํ…Œ์ŠคํŠธhttps://github.com/ahannigan/docker-arachniย GitHub - ahannigan/docker-arachni: Arachni Web Application Scanner in DockerArachni Web Application Scanner in Docker. Contribute to ahannigan/docker-arachni development by creating an account on GitHub.github.comย Arachni๋Š” ..

Web & Network

[Network] ICMP๋ž€? / ping, traceroute

ICMP๋ž€?ICMP(Internet Control Message Protocol, ์ธํ„ฐ๋„ท ์ œ์–ด ๋ฉ”์‹œ์ง€ ํ”„๋กœํ† ์ฝœ)๋Š” ๋„คํŠธ์›Œํฌ ์žฅ์น˜์—์„œ ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ICMP๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์š” ๋ฐฉ๋ฒ•์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชฉ์ ์ง€์— ์ž˜ ๋„๋‹ฌํ•˜๋Š”์ง€, ๋„๋‹ฌ ์‹œ๊ฐ„์ด ์ ์ ˆํ•œ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค.ย ICMP์˜ ์šฉ๋„ICMP์˜ ์ฃผ์š” ์šฉ๋„๋Š” ์˜ค๋ฅ˜๋ณด๊ณ ์ด๋‹ค. ๋‘ ์žฅ์น˜๊ฐ€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์—ฐ๊ฒฐ๋˜๋ฉด ICMP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜๋„ํ•œ ๋Œ€์ƒ์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ, ์ˆ˜์‹  ์žฅ์น˜์—์„œ ์ „์†ก์žฅ์น˜๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์ด์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ์ดํ„ฐ ํŒจํ‚ท์ด ๋ผ์šฐํ„ฐ์— ๋น„ํ•ด ๋„ˆ๋ฌด ํฐ ๊ฒฝ์šฐ ๋ผ์šฐํ„ฐ์—์„œ๋Š” ํŒจํ‚ท์„ ์‚ญ์ œํ•˜๊ณ  ICMP ๋ฉ”์‹œ..

Tool & Library

[SonarQube] ์˜คํ”ˆ์†Œ์Šค ์ •์ ๋ถ„์„ Tool ์†Œ๋‚˜ํ๋ธŒ ์‚ฌ์šฉ๋ฒ•

์†Œ๋‚˜ํ๋ธŒ๋ž€?์†Œ๋‚˜ํ๋ธŒ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฒ„๊ทธ, ์ฝ”๋“œ ์Šค๋ฉœ, ๋ณด์•ˆ ์ทจ์•ฝ์  ๋“ฑ์„ ๋ฐœ๊ฒฌํ•˜๊ธฐ ์œ„ํ•œ ์ •์  ์ฝ”๋“œ ๋ถ„์„ ํˆด์ด๋‹ค.ย ์„ค์น˜ / ์„ธํŒ…1. ์†Œ๋‚˜ํ๋ธŒ ์„ค์น˜https://www.sonarsource.com/products/sonarqube/downloads/ย Download | SonarQubeGet the latest LTS and version of SonarQube the leading product for Code Quality and Security from the official download page.www.sonarsource.comย 2. ์†Œ๋‚˜ํ๋ธŒ ์‹คํ–‰๋‹ค์šด๋กœ๋“œ ํŒŒ์ผ ์••์ถ• ํ’€๊ธฐ์†Œ๋‚˜ํ๋ธŒ ์‹คํ–‰Window: /bin/windows-x86-64/StartSonar.bat ์‹คํ–‰Linux: /bin/linu..

Projects & ๊ฐœ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

[๊ฐœ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ] Apache POI ์—‘์…€ ํŒŒ์ผ ๋‹ค๋ฃจ๊ธฐ

Apache POI ์‘์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌApache POI๋Š” Java์—์„œ ์—‘์…€์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.ํšŒ์‚ฌ์—์„œ Excel ํŒŒ์ผ์„ ํŒŒ์‹ฑ ํ•  ์ผ์ด ๊ฝค๋‚˜ ์žˆ์–ด์„œ ์ž์ฃผ ์“ฐ๋Š” ๊ธฐ๋Šฅ์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™”ํ–ˆ๋‹ค.ย gradle๋กœ apachepoi ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ import ํ•œ ๋’ค, ์•„๋ž˜ gitlab ์ฝ”๋“œ๋‚˜ full code๋ฅผ ๋ณต๋ถ™ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.๊ท€์ฐฎ์•„์„œ SpringBoot ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ gradle๋กœ apache poi ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ import ํ–ˆ๋‹ค.implementation 'org.apache.poi:poi-ooxml:5.2.3'์ฐธ๊ณ  ๋งํฌJAVA & Spring/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ & Tools] - [Apache POI] Java ์ฝ”๋“œ๋กœ ์—‘์…€(.xlsx) ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ - Java๋กœ Excel ๋‹ค๋ฃจ๊ธฐย [Apac..

Web & Network

[Web/Network] ํ”„๋ก์‹œ(Proxy)

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

Vue.js & Nuxt.js

[Vue.js] Vue cli๋กœ Vue.js ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

vue cli ๊ณต์‹ ์‚ฌ์ดํŠธhttps://cli.vuejs.org/ย Vue CLIย cli.vuejs.orgย node, npm ๋ฒ„์ „ ํ™•์ธnode, npm ๋ฒ„์ „์„ ํ™•์ธํ•˜๊ณ , ์—†์œผ๋ฉด ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค.node -vnpm -vย vue cli ์„ค์น˜npm install -g @vue/cliย vue ํ”„๋กœ์ ํŠธ ์ƒ์„ฑvue create ย vue ํ”„๋กœ์ ํŠธ ์‹คํ–‰npm run serve

Vue.js & Nuxt.js

[Vue.js] ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์•Œ์•„๋ณด๊ธฐ / Vue ์ธ์Šคํ„ด์Šค, ์ปดํฌ๋„ŒํŠธ / Vue ๋””๋ ‰ํ‹ฐ๋ธŒ

Vue ์ธ์Šคํ„ด์Šค: new Vue()new Vue()๋กœ ์ƒ์„ฑํ•œ Vue ์ธ์Šคํ„ด์Šค๋Š” ํ™”๋ฉด์— ๋ฟŒ๋ ค์ง€๋Š” ์ตœ์ƒ์œ„(Root) ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งํ•œ๋‹ค.ย ํ•ด๋‹น Vue Instance์—์„œ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ˜ธ์ถœ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด Vue์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์ด๋‹ค.ย ์•„๋ž˜์˜ 5๊ฐ€์ง€ ์š”์†Œ๋“ค์„ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.el: '#app'Vue ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ด€๋ฆฌํ•  DOM ์š”์†Œ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์œ„์ชฝ์— id=app์ธ ์— Vue ์ธ์Šคํ„ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.ํ•ด๋‹น Vue ์ธ์Šคํ„ด์Šค๋Š” ์œ„์— id=app์ธ ํƒœ๊ทธ๋งŒ์„ ๊ด€๋ฆฌํ•œ๋‹ค.dataVue ์ธ์Šคํ„ด์Šค์—์„œ ๊ด€๋ฆฌํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•œ๋‹ค.ย  {{ message }} ย message๋ž€ ์ด๋ฆ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ Vue ์ธ์Šคํ„ด์Šค ๋‚ด์—์„œย this.message๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ , DOM ์š”์†Œ์—์„œ๋Š”ย {{message}}๋กœ ๊ฐ€..

DevOps

[docker] ๋„์ปค ์‹œ์ž‘ํ•˜๊ธฐ / ๋„์ปค๋กœ MariaDB ๋„์›Œ๋ณด๊ธฐ ์˜ˆ์ œ

๋„์ปค(Docker)๋ž€?๋„์ปค(docker)๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ์ด๋‹ค. ์—ฌ๋Ÿฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ํŒจํ‚ค์ง• ํ•ด์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.์ด ๊ธ€์—์„  ๋„์ปค๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ , ์ฃผ์š” ๋ช…๋ น์–ด๋“ค์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์˜ˆ์ œ๋ฅผ ์œ„ํ•ด DB๋ฅผ ํ•˜๋‚˜ ๋„์›Œ๋ณผ ๊ฒƒ์ด๋‹ค.ย ๋„์ปค ์ด๋ฏธ์ง€(image)๋„์ปค ์ด๋ฏธ์ง€๋Š” ํŠน์ • ์†Œํ”„ํŠธ์›จ์–ด(PostgreSQL ๋“ฑ)๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์„ค์ •ํŒŒ์ผ, ์ข…์†์„ฑ, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ ๋ชจ๋“  ๊ฒƒ์„ ํฌํ•จํ•˜๋Š” ์ฝ๊ธฐ ์ „์šฉ ํ…œํ”Œ๋ฆฟ์ด๋‹ค. ์ด ํ…œํ”Œ๋ฆฟ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์‹ค์ œ๋กœ ํ•ด๋‹น ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.๊ธฐ๋ณธ์ ์œผ๋กœ Docker Hub์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ–๊ณ ์žˆ๊ณ , docker ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ๊ฐœ์ธ์ด ๋‹ค์šด๋ฐ›์•„์„œ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.๋„์ปค ์ปจํ…Œ์ด๋„ˆ(Container)๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š”..

Front-End

[Mock Rest API] jsonplaceholder ์†Œ๊ฐœ (REST API ํ…Œ์ŠคํŠธ์šฉ ๊ฐ€์ƒ ๋ฐ์ดํ„ฐ ์ œ๊ณต ์‚ฌ์ดํŠธ)

ํ•ด๋‹น ์‚ฌ์ดํŠธ์— ์ •๋ง ์‰ฝ๊ณ  ํŽธํ•˜๊ฒŒ ์„ค๋ช…๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ๋ก์šฉ์œผ๋กœ ์“ฐ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.ํ”„๋ŸฐํŠธ์—”๋“œ ์ชฝ์€ ์ฒ˜์Œ ๊ณต๋ถ€ํ•ด ๋ณด๋Š”๋ฐ ์ •๋ง ํŽธ๋ฆฌํ•œ ์‚ฌ์ดํŠธ๋“ค์ด ๋งŽ๋„ค์š”...(์ด๊ฒŒ ๋ง๋กœ๋งŒ ๋“ฃ๋˜ javascript ์ƒํƒœ๊ณ„..?)ย jsonplaceholder.typicode.comhttps://jsonplaceholder.typicode.com/ย JSONPlaceholder - Free Fake REST API{JSON} Placeholder Free fake and reliable API for testing and prototyping. Powered by JSON Server + LowDB. Serving ~3 billion requests each month.jsonplaceholder.typicode.comย ย ์œ„์˜ ์‚ฌ์ดํŠธ..

HOT
Spring Security

[Spring] ์นด์นด์˜ค ๋กœ๊ทธ์ธ API ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Kakao Developers์ด๋ฏธ์ง€ ์„ค๋ช…์— ๊ฐ ์ด๋ฏธ์ง€ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์œ„์น˜(๊ฒฝ๋กœ) ์ ์–ด๋’€์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.ย 1. KakaoDevelopers ์ ‘์†https://developers.kakao.com/ย Kakao Developers์นด์นด์˜ค API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•ด๋ณด์„ธ์š”. ์นด์นด์˜ค ๋กœ๊ทธ์ธ, ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ, ์นœ๊ตฌ API, ์ธ๊ณต์ง€๋Šฅ API ๋“ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.developers.kakao.comย 2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ถ”๊ฐ€ํ•˜๊ธฐย 3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ถ”๊ฐ€ย 4.Rest API ํ‚ค ํ™•์ธย 5. Web ํ”Œ๋žซํผ ๋“ฑ๋กย 6. ์‚ฌ์ดํŠธ ๋„๋ฉ”์ธ ์„ค์ •ย 7. ์นด์นด์˜ค ๋กœ๊ทธ์ธ ํ™œ์„ฑํ™”, Redirect URI ๋“ฑ๋กย 8. ๋™์˜ ํ•ญ๋ชฉ ์„ค์ •์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฐœ์ธ ์ •๋ณด ๋™์˜ ์„ค์ • ( email, nickname ์ •๋ณด )ย 9. (์ถ”๊ฐ€) ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๋ฒ„..

Deploy

[Spring / S3] SpringBoot ํ”„๋กœ์ ํŠธ - S3 ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ

์ด์ „ ๊ธ€์—์„œ S3 bucket๊ณผ IAM์„ ์ƒ์„ฑํ•˜๊ณ  SpringBoot project์—์„œ S3 ์ ‘๊ทผ์— ์‚ฌ์šฉํ•  accessKey์™€ secretKey๋ฅผ ์–ป๋Š” ๊ฒƒ๊นŒ์ง€ ๋‹ค๋ค˜๋‹ค. 2024.01.21 - [DevOps] - [AWS/S3] Spring boot project ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋ฅผ ์œ„ํ•ด S3 ๋ฒ„์ผ“ ๋งŒ๋“ค๊ธฐ [AWS/S3] Spring boot project ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋ฅผ ์œ„ํ•ด S3 ๋ฒ„์ผ“ ๋งŒ๋“ค๊ธฐ Amazon S3 ๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ IAM ๋งŒ๋“ค๊ธฐ ์ƒ์„ฑ ์™„๋ฃŒ IAM accessKey, secretKey ์–ป๊ธฐ IAM - ์‚ฌ์šฉ์ž - ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช… ์•ก์„ธ์Šค ํ‚ค ๋งŒ๋“ค๊ธฐ CLI ์„ ํƒ accessKey, secretKey ์ €์žฅ ์ € ๋‘ ๊ฐ€์ง€ Key๋ฅผ ์ €์žฅํ•ด ๋’€๋‹ค๊ฐ€ spring properties์— ๋“ฑ innovation123.ti..

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ 

[MyBatis] ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

MyBatis๋ž€?MyBatis๋Š” JdbcTemplate์ด ์ œ๊ณตํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ JdbcTemplate์˜ ๋ฌธ์ œ์  ์ค‘ ํ•˜๋‚˜์ธ ์—ฌ๋Ÿฌ ์ค„์˜ String ํ˜• sql์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ MyBatis๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.MyBatis๋Š” SQL์„ xml์— ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , xml ๋‚ด์—์„œ ๋™์  ์ฟผ๋ฆฌ๋ฅผ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.ย JdbcTemplate์€ ์Šคํ”„๋ง์— ๋‚ด์žฅ๋œ ๊ธฐ๋Šฅ์ด๊ณ , ๋ณ„๋„์˜ ์„ค์ • ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, MyBatis๋Š” ์•ฝ๊ฐ„์˜ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ๋™์ ์ฟผ๋ฆฌ์™€ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” MyBatis๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋‹จ์ˆœํ•œ ์ฟผ๋ฆฌ๋“ค์ด ๋งŽ๋‹ค๋ฉด JdbcTemplate์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ด๋‹ค.ย ย 2024.07.31 ์ถ”๊ฐ€๋‹จ์ˆœํ•œ ๋„๋ฉ”์ธ ๊ด€๋ จ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š”..

Linux ๋ฆฌ๋ˆ…์Šค

[๋ฆฌ๋ˆ…์Šค] ํ”„๋กœ์„ธ์Šค, ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ

ํ”„๋กœ์„ธ์Šค ํ”„๋กœ์„ธ์Šค = ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ์„ธ์Šค(process)๋Š” ์ปดํ“จํ„ฐ์—์„œ ์—ฐ์†์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•œ๋‹ค. foreground process / background process foreground process ์…ธ์—์„œ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์„ ๋ช…๋ นํ–ˆ์„ ๋•Œ, ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์ž…๋ ฅ์„ ํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•œ๋‹ค. ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋ฉด, ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ ์ „๊นŒ์ง€ ์‚ฌ์šฉ์ž๋Š” ์ž…๋ ฅ์„ ํ•  ์ˆ˜ ์—†๋‹ค. [Ctrl] + c ๋ช…๋ น์–ด : ์‹คํ–‰์ค‘์ธ foreground process๋ฅผ ์ฆ‰์‹œ ์ข…๋ฃŒํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋Š” ์™„์ „ํžˆ ์ข…๋ฃŒ๋œ๋‹ค. -> ์ž‘์—…์ด ์‹คํ–‰ ์ค‘์— ls ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด๋„ ํ•ด๋‹น ์ž‘์—…์ด ๋ชจ๋‘ ๋๋‚œ ๋’ค์— ๋™์ž‘ํ•œ๋‹ค. (sleep n)์€ n์ดˆ๋™์•ˆ ์•„๋ฌด๊ฒƒ๋„..

Spring

[Spring Boot] @PathVariable๊ณผ @RequestParam - ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ›๊ธฐ

@PathVariable ๊ฒฝ๋กœ๋ณ€์ˆ˜ PathVariable์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ์— ์‹๋ณ„์ž๋ฅผ ๋„ฃ์–ด์„œ ๋™์ ์œผ๋กœ URL์— ์ •๋ณด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค. URL ๊ฒฝ๋กœ์˜ ์ค‘๊ด„ํ˜ธ { } ์•ˆ์ชฝ์— ๋ณ€์ˆ˜๋ฅผ ๋‹ด๊ณ , ๊ทธ ๋ณ€์ˆ˜๋ฅผ @PathVariable(" ")๋กœ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ๊ธฐ๋ณธ URL์˜{postId}์™€ ๋งค๊ฐœ๋ณ€์ˆ˜ long orderId์™€ ์ด๋ฆ„์„ ๋งž์ถฐ์ค€๋‹ค. @GetMapping ("/order/{orderId}") public String getOrder(@PathVariable String orderId){ log.info("orderId : {}", orderId); return "orderId:"+ orderId; } ์š”์ฒญ : http://localhost:8080/order/123 ์‘๋‹ต : orderId:1..

SQL

[SQL/MariaDB] ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ (INSERT, UPDATE, DELETE)

INSERT INTO : ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ id, name, loginId, password์˜ attribute๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” MEMBER table์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค. TABLE์— ์กด์žฌํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ constraints๋“ค์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•ด์•ผํ•œ๋‹ค. ๋ฐฉ๋ฒ• 1 : ๋ชจ๋“  ์†์„ฑ ์„ ํƒ table์— ์กด์žฌํ•˜๋Š” attribute์˜ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ’์„ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค. table์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  attribute์— ๊ฐ’์„ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค. (null์ด๋ผ๋„ ๋„ฃ์–ด์•ผํ•จ) insert into member values(3, 'Lee', 'Lee1', 'pwLee'); ๋ฐฉ๋ฒ• 2 : column ์ง€์ • ์•„๋ž˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด, attribute ์ˆœ์„œ๋ฅผ ๋งž์ถ”์ง€ ์•Š์•„๋„ ๋œ๋‹ค. (์ˆœ์„œ๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค.) ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  attribut..

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ 

[Jdbc] JdbcTemplate ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ ์šฉ์˜ˆ์ œ

JdbcTemplate์ด๋ž€? JdbcTemplate์€ SQL์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜์—ฌ JDBC๋ฅผ ๋‹ค๋ฃจ๋Š” ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. JdbcTemplate์€ JDBC๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋˜ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐ˜๋ณต ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฃผ๊ณ , ํŠธ๋žœ์žญ์…˜์„ ์œ„ํ•œ ์ปค๋„ฅ์…˜ ๋™๊ธฐํ™”์™€ ์Šคํ”„๋ง ์˜ˆ์™ธ ๋ณ€ํ™˜๊ธฐ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•ด ์ค€๋‹ค. ์žฅ์  JdbcTemplate์€ ์Šคํ”„๋ง์œผ๋กœ JDBC๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ž๋™์œผ๋กœ ํฌํ•จ๋˜๋Š” spring-jdbc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์†ํ•ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ๋ณต์žกํ•œ ์„ค์ • ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ…œํ”Œ๋ฆฟ ์ฝœ๋ฐฑ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด์„œ JDBC๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ˜๋ณต ์ž‘์—…์„ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด ์ค€๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” SQL์„ ์ž‘์„ฑํ•˜๊ณ  ์ „๋‹ฌํ•  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ •์˜ํ•˜์—ฌ ์‘๋‹ต ๊ฐ’์„ ๋งคํ•‘ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ํŠธ๋žœ์žญ์…˜์„ ์œ„ํ•œ ์ปค๋„ฅ์…˜ ๋™๊ธฐํ™”, ์Šคํ”„๋ง..

์ž๋ฃŒ๊ตฌ์กฐ_Java

[JAVA/์ž๋ฃŒ๊ตฌ์กฐ] ํž™(Heap), ์ตœ์†Œ ํž™(Min Heap), ์ตœ๋Œ€ ํž™(Max Heap)

ํž™(Heap) ํž™์€ ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ์ตœ๋Œ€, ์ตœ์†Ÿ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๋Š”๋ฐ ์œ ์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํž™์€ ์ค‘๋ณต๊ฐ’์„ ํ—ˆ์šฉํ•œ๋‹ค. ๋ถ€๋ชจ-์ž์‹ ๊ฐ„ (๋ ˆ๋ฒจ ๋ณ„) ์ •๋ ฌ์€ ๋ณด์žฅํ•˜๊ณ , ํ˜•์ œ๊ฐ„์˜ ์ •๋ ฌ์€ ๋ณด์žฅํ•˜์ง€ ์•Š์•„์„œ ๋ฐ˜ ์ •๋ ฌ ์ƒํƒœ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํž™์€ ์ตœ์†Œ ํž™(Min Heap), ์ตœ๋Œ€ํž™(Max Heap) ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ตœ์†Œ ํž™์€ ๋ฃจํŠธ๋…ธ๋“œ๊ฐ€ ์ตœ์†Ÿ๊ฐ’์ด ๋˜๊ณ , ๋ถ€๋ชจ๋…ธ๋“œ์˜ key๋Š” ์ž์‹๋…ธ๋“œ์˜ key๋ณด๋‹ค ์ž‘์•„์•ผ ํ•œ๋‹ค๋Š” ๊ทœ์น™์ด ์žˆ๋‹ค. ์ตœ๋Œ€ ํž™์€ ๋ฃจํŠธ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ“๊ฐ’์ด ๋˜๊ณ , ๋ถ€๋ชจ๋…ธ๋“œ์˜ key๊ฐ€ ์ž์‹ ๋…ธ๋“œ์˜ key๋ณด๋‹ค ์ปค์•ผ ํ•œ๋‹ค๋Š” ๊ทœ์น™์ด ์žˆ๋‹ค. ์™„์ „์ด์ง„ํŠธ๋ฆฌ๋Š” ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์„ ์ œ์™ธํ•˜๊ณ  ๋…ธ๋“œ๋“ค์ด ๊ฐ€๋“ ์ฐจ ์žˆ๋Š” ํŠธ๋ฆฌ๋ฅผ ๋งํ•œ๋‹ค. https://innovation123.tistory.com/107 [JAVA/์ž๋ฃŒ๊ตฌ์กฐ] ํŠธ๋ฆฌ(Tree), ์ด์ง„ํŠธ๋ฆฌ..

Projects & ๊ฐœ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

[Java/Spring]์ดˆ๋ณด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ๊ฒŒ์‹œํŒ ํ”„๋กœ์ ํŠธ - ๋ช…์„ธ์„œ ๋งŒ๋“ค์–ด๋ณด๊ธฐ

BoardService Github https://github.com/HSRyuuu/my_first_board 1. ๊ฐœ์š” ํ”„๋กœ์ ํŠธ ๋ช… : Board Service ๊ฐœ๋ฐœ ์ธ์› : 1๋ช… ๊ฐœ๋ฐœ๊ธฐ๊ฐ„ : 2023.04.11 ~ 2023.05.15 ์ฃผ์š” ๊ธฐ๋Šฅ : ๊ธฐ๋ณธ์ ์ธ ๊ฒŒ์‹œํŒ์˜ ๊ธฐ๋Šฅ (์•„๋ž˜์—์„œ ์ถ”๊ฐ€๋กœ ์„ค๋ช…) ์‚ฌ์šฉ ๊ธฐ์ˆ  : Java, SpringBoot, gradle, thymeleaf, MyBatis (์•„๋ž˜์—์„œ ์ถ”๊ฐ€๋กœ ์„ค๋ช…) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : H2 Database 2. skills๐Ÿ”จ Java 11 SpringBoot 2.7.10 gradle Thymeleaf MyBatis H2 Database HTML5, CSS3, BootStrap ๊ธฐํƒ€ ์‚ฌ์šฉ ๊ธฐ์ˆ  ํ•„ํ„ฐ(Spring Interceptor) ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋กœ..

์ž๋ฃŒ๊ตฌ์กฐ_Java

[JAVA/์ž๋ฃŒ๊ตฌ์กฐ] ํŠธ๋ผ์ด(Trie) ๊ฐœ๋…, ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ธฐ

ํŠธ๋ผ์ด(Trie) ํŠธ๋ผ์ด๋Š” ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ณ , ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๋ฌธ์ž์—ด ์ €์žฅ์„ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ํƒ์ƒ‰์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค. O(N) (Java์—์„œ Queue,Stack,List์™€ ๋‹ค๋ฅด๊ฒŒ Trie๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๊ตฌํ˜„ํ•ด๋†“์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์—†๋‹ค.) ํŠธ๋ผ์ด์˜ ํ˜•ํƒœ Trie์— ๋“ค์–ด์žˆ๋Š” ๋ฌธ์ž์—ด apple, april bus, busy, beer, best ํŠธ๋ผ์ด์˜ ๊ตฌ์กฐ(ํŠน์ง•) ๋ฃจํŠธ ๋…ธ๋“œ ๋ฃจํŠธ๋…ธ๋“œ๋Š” ํ•ญ์ƒ ๋น„์–ด์žˆ๋‹ค. ๋ฃจํŠธ๋…ธ๋“œ์˜ ์ž์‹๋…ธ๋“œ๋Š” ๊ฐ ๋‹จ์–ด๋“ค์˜ ์ฒซ ๊ธ€์ž๋“ค์ด๋‹ค. endOfWord ํ‘œ์‹œ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๋Š” ๋…ธ๋“œ๋Š” ๊ฐ ๋ฌธ์ž์—ด์˜ ๋งˆ์ง€๋ง‰ ๊ธ€์ž์ด๋‹ค. ๊ฐ ๋…ธ๋“œ ๊ตฌ์„ฑ ๊ฐ ๋…ธ๋“œ์˜ ์ž์‹๋…ธ๋“œ๋“ค์„ Map์— ์ €์žฅํ•œ๋‹ค. ํ•ด๋‹น ๋…ธ๋“œ๊ฐ€ ๋‹จ์–ด์˜ ๋งˆ์ง€๋ง‰์„ ๋œปํ•˜๋Š” endOfWord๋ฅผ ์ €์žฅํ•  booleanํ˜• ํ•„..

HSRyuuu
HS_dev_log