Hello! 🖐
✏ Web Backend Developer happyhsryu
๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํ๊ณ ๊ณต์ ํ๋ ๊ธฐ์ ๋ธ๋ก๊ทธ์ ๋๋ค.
๋ด์ฉ์ด ๋ถ์กฑํ๊ฑฐ๋ ์๋ชป๋ ๋ถ๋ถ์ด ์์ ์ ์์ผ๋ ๋๋ฅธ ์ํด ๋ถํ๋๋ฆฝ๋๋ค.
์ผ๋ง ์ ์ ๋ดค๋ ์ธ์ ๊น์ ๊ธ์ ๋ด์ฉ์ ์๊ฐํ๊ณ ์ ํฉ๋๋ค.ย ์ผ๋ง ์ ์ ์ปค๋ฆฌ์ด๋ฆฌ๋ผ๋ ์ปค๋ฎค๋ํฐ์์ ํ ์๋์ด ๊ฐ๋ฐ์ ๋ถ์ด ์ดย "์ฝ๋ ๊ฐ๋ ์ฑ๊ณผ ๋นผ๊ธฐ์ ๋ฏธํ"์ด๋ผ๋ ์ ๋ชฉ์ ๊ธ์ ๋ดค๋ค.์ฌ์ค ๋ด์ฉ์ ์ด๋์ ๋ ์๊ณ ์๋ ๋ด์ฉ์ด์๊ณ , ์ฌ๊ธฐ์ ๊ฐ์ฅ ํฐ ์ํ์ "์ฝ๋ฉ ์ฃผ์ง์"๋ผ๋ ์ฌ๋ฐ๋ ๋จ์ด๋ฅผ ์๊ฒ ๋ ๊ฒ์ด๋ค.์์ฝํ์๋ฉด "์ฝ๋ฉ ์ฃผ์ง์"ํ์ง ๋ง๊ณ ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ผ๋ ๊ฒ์ด๋ค.๊ตฌ๊ธ ์ฝ๋ฉ ๊ฐ์ด๋๋ผ์ธ์ ๋ณด๋ฉด, ์ฝ๋ ๊ฐ๋ ์ฑ(Readability)๋ฅผ ๊ฐ์กฐํ๋ค๊ณ ํ๋ค. ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํด์ผ, ๋ณธ์ธ์ด ๋์ค์ ๋ณธ์ธ์ ์ฝ๋๋ฅผ ๋ณผ ๋๋ ๋์์ด ๋๊ณ , ํ์ธ์ด ๋ณผ ๋๋ ๋์์ด ๋์ด ์ ์ง๋ณด์์ฑ ํฅ์์ ๋์์ด ๋๋ค๋ ๊ฒ์ด๋ค.ย ํ์ฌ์์ ์ ์ ์ผ๋ก ์ ์ฌ ํ ์๋์ด๋ถ๊ป ์ฒ์ ์ฃผ์ ๋ฐ์ ๊ฐ๋ ์ค ํ๋๋ "์ฝ๋ฉ ์ฃผ์ง์ ํ์ง ๋ง๋ผ"์ ๋น์ทํ ๋ด์ฉ์..
Github: RestApiServicehttps://github.com/HSRyuuu/Playground/tree/master/src/main/java/com/example/playground/spring/restapiย Playground/src/main/java/com/example/playground/spring/restapi at master ยท HSRyuuu/PlaygroundContribute to HSRyuuu/Playground development by creating an account on GitHub.github.comย ์ด ์ฝ๋๋ Lombok์ ์์กดํฉ๋๋ค. ์ฐธ๊ณ ํ์ธ์.ย ์ฌ์ฉ๋ฒ RestApiService restApiService = new RestApiService();..
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 ์์น์ด๋ค.๊ทธ๋ฐ๋ฐ..
๊ฐ๋ฐ ๊ณผ์ ์ค ์ ํ๋ฒํธ ์ํธํ, ๋น๋ฐ๋ฒํธ ์ํธํ๊ฐ ํ์ํด์ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ผ ํ๋ค. RSA์ AES๋ ๋ณตํธํ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๊ณ , SHA๋ ๋ณตํธํ๊ฐ ํ์ ์๋ ๊ฒฝ์ฐ(๋น๋ฐ๋ฒํธ)์ ์ฌ์ฉํ๋ค.๋ค๋ฅธ ๊ธ๋ค์ ์ฐพ์๋ณด๋ ๋๋ถ๋ถ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์ ๋ฆฌํ๋ค. ๊ทธ๋ฌ๋ ์ด ๊ธ์์๋ ์ํ์ ์ธ ๋ถ๋ถ์ ๊ฐ์ํํ๊ณ Web ๊ฐ๋ฐ์์ ๊ด์ ์์ ํ์ํ ๋ถ๋ถ์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.RSA / SHA / AES ๋ฐฉ์์ ์ฐจ์ด์ ์ฐ์ RSA์ AES๋ ์๋ฐฉํฅ ์ํธํ ๋ฐฉ์์ด๊ณ , SHA๋ ๋จ๋ฐฉํฅ ์ํธํ ๋ฐฉ์์ด๋ค.ย ์ด ์ฐจ์ด๋ ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋๋๋ค. ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ฉด ์๋ฐฉํฅ์ด๊ณ , ๋ณตํธํ๊ฐ ๋ถ๊ฐํ๋ฉด ๋จ๋ฐฉํฅ์ด๋ค.์ ํ๋ฒํธ์ ๊ฒฝ์ฐ ์ํธํํด์ ์ ์ฅํ๋ค๊ฐ, ํ์ํ ๊ฒฝ์ฐ ๋ณตํธํํด์ ์ฌ์ฉํด์ผํ๋ค.ย ๊ทธ๋ฌ๋ ๋น๋ฐ๋ฒํธ์ ๊ฒฝ์ฐ์๋ ๋ณตํธํ๊ฐ ํ..
ํ ์คํธ ๊ฒฐ๊ณผ ์ด 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๋ ..
ICMP๋?ICMP(Internet Control Message Protocol, ์ธํฐ๋ท ์ ์ด ๋ฉ์์ง ํ๋กํ ์ฝ)๋ ๋คํธ์ํฌ ์ฅ์น์์ ๋คํธ์ํฌ ํต์ ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ ๋ฐ ์ฌ์ฉํ๋ ๋คํธ์ํฌ ๊ณ์ธต ํ๋กํ ์ฝ์ด๋ค. ICMP๊ฐ ์ฌ์ฉ๋๋ ์ฃผ์ ๋ฐฉ๋ฒ์ ๋ฐ์ดํฐ๊ฐ ๋ชฉ์ ์ง์ ์ ๋๋ฌํ๋์ง, ๋๋ฌ ์๊ฐ์ด ์ ์ ํ์ง๋ฅผ ํ์ธํ๋ ๊ฒ์ด๋ค.ย ICMP์ ์ฉ๋ICMP์ ์ฃผ์ ์ฉ๋๋ ์ค๋ฅ๋ณด๊ณ ์ด๋ค. ๋ ์ฅ์น๊ฐ ์ธํฐ๋ท์ ํตํด ์ฐ๊ฒฐ๋๋ฉด ICMP๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๊ฐ ์๋ํ ๋์์ ๋๋ฌํ์ง ๋ชปํ ๊ฒฝ์ฐ, ์์ ์ฅ์น์์ ์ ์ก์ฅ์น๋ก ์ ๋ฌํ ์ ์๋ ์ค๋ฅ๋ฅผ ์์ฑํ ์ ์๋ค. ๋ค๋ง ๋ฐ์ดํฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ธฐ ์ํ ํ๋กํ ์ฝ์ด์ง๋ง, ๋ฐ์ดํฐ ์์ฒด๋ฅผ ๊ด๋ฆฌํ์ง๋ ์๋๋ค.์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ ํจํท์ด ๋ผ์ฐํฐ์ ๋นํด ๋๋ฌด ํฐ ๊ฒฝ์ฐ ๋ผ์ฐํฐ์์๋ ํจํท์ ์ญ์ ํ๊ณ ICMP ๋ฉ์..
์๋ํ๋ธ๋?์๋ํ๋ธ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฒ๊ทธ, ์ฝ๋ ์ค๋ฉ, ๋ณด์ ์ทจ์ฝ์ ๋ฑ์ ๋ฐ๊ฒฌํ๊ธฐ ์ํ ์ ์ ์ฝ๋ ๋ถ์ ํด์ด๋ค.ย ์ค์น / ์ธํ 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..
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..
ํ๋ก์(Proxy)๋?ํ๋ก์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ - ์๋ฒ ์ฌ์ด์ ์์นํ์ฌ ํต์ ์ ์ค๊ณํ๋ ์ญํ ์ ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ(์๋ฒ)์ ๋งํ๋ค.ํ๋ก์(Proxy)๋ '๋๋ฆฌ', '์ค๊ณ' ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉฐ, ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ง์ ํต์ ํ ์ ์๋ ๊ฒฝ์ฐ์ ์ค๊ฐ์์ ํต์ ์ ์ค๊ณํ๋ ์ญํ ์ ์ํํ๋ค. (๋ณด์, ์ฑ๋ฅ, ์์ ์ฑ ํฅ์ ๋ฑ์ ๋ชฉ์ ์ ๊ฐ๊ณ ์๋ค.)์ผ๋ฐ์ ์ผ๋ก ์น์ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๊ณ , ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์๋ตํ๋ ๋ฐฉ์์ ํต์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค. ์ฌ๊ธฐ์ ํ๋ก์ ์๋ฒ๋ฅผ ์ถ๊ฐํด์ ์์ฒญ์ ์ค๊ณํ๋๋ก ํด์, ๋ณด์์์ ์์ ์ฑ์ ๋์ด๊ฑฐ๋, ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค.์ ๋ฆฌํ์๋ฉด ์๋์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ์ ํต์ ์ด ์ด๋ฃจ์ด์ง๋ค.ํด๋ผ์ด์ธํธ -> ํ๋ก์ ์๋ฒ ์์ฒญํ๋ก์ ์๋ฒ -> ์๋ฒ ์์ฒญ์๋ฒ -> ํ๋ก์ ์๋ฒ ์๋ต..
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
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. (์ถ๊ฐ) ์นด์นด์ค ๋ก๊ทธ์ธ ๋ฒ..
MyBatis๋?MyBatis๋ JdbcTemplate์ด ์ ๊ณตํ๋ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๊ทธ๋ฌ๋ JdbcTemplate์ ๋ฌธ์ ์ ์ค ํ๋์ธ ์ฌ๋ฌ ์ค์ String ํ sql์ ์์ฑํด์ผ ํ๋ค๋ ์ ์ MyBatis๋ฅผ ์ด์ฉํ์ฌ ํด๊ฒฐํ ์ ์๋ค.MyBatis๋ SQL์ xml์ ํธ๋ฆฌํ๊ฒ ์์ฑํ ์ ์๊ณ , xml ๋ด์์ ๋์ ์ฟผ๋ฆฌ๋ฅผ ๋งค์ฐ ํธ๋ฆฌํ๊ฒ ์์ฑํ ์ ์๋ค.ย JdbcTemplate์ ์คํ๋ง์ ๋ด์ฅ๋ ๊ธฐ๋ฅ์ด๊ณ , ๋ณ๋์ ์ค์ ์์ด ์ฌ์ฉํ ์ ์์ง๋ง, MyBatis๋ ์ฝ๊ฐ์ ์ค์ ์ด ํ์ํ๋ค. ๋ฐ๋ผ์ ๋์ ์ฟผ๋ฆฌ์ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ MyBatis๋ฅผ ์ฌ์ฉํ๊ณ , ๋จ์ํ ์ฟผ๋ฆฌ๋ค์ด ๋ง๋ค๋ฉด JdbcTemplate์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๋ค.ย ย 2024.07.31 ์ถ๊ฐ๋จ์ํ ๋๋ฉ์ธ ๊ด๋ จ ์ํฐํฐ๋ฅผ ๋ถ๋ฌ์ค๋..
์ด์ ๊ธ์์ 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..
๋ฐฉํ๋ฒฝ์ด๋?๋ฐฉํ๋ฒฝ(Firewall)์ ๋คํธ์ํฌ ๋ณด์ ์์คํ ์ด๋ค. ๋ฏธ๋ฆฌ ์ ์๋ ๋ณด์ ๊ท์น์ ๋ฐ๋ผ ๋ค์ด์ค๊ณ ๋๊ฐ๋ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ชจ๋ํฐ๋งํ๊ณ ์ ์ดํ๋ ์ฅ์น ๋๋ ์ํํธ์จ์ด์ด๋ค. ๋ถ๋ฒ ์ ๊ทผ, ์ ์์ ์ ๊ทผ, ํธ๋ํฝ ๋ญ๋น ๋ฑ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.ย ๋ฐฉํ๋ฒฝ์ ํธ๋ํฝ ํํฐ๋ง, ๋คํธ์ํฌ ์ธ๋ถํ, ๊ฐ์ ๋ฐ ๋ก๊น , ์ธ์ฆ, ํ๋ผ์ด๋ฒ์ ๋ณดํธ ๋ฑ์ ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ๋ฅ์ ํ๋ค.์ด์ค ์ธ๋ฐ์ด๋ ๊ท์น, ์์๋ฐ์ด๋ ๊ท์น์ ํธ๋ํฝ ํํฐ๋ง ๊ธฐ๋ฅ์ ํฌํจ๋๋ค.ย ํธ๋ํฝ ํํฐ๋ง(์ ๊ทผ ์ ์ด)ํธ๋ํฝ ํํฐ๋ง์ด๋ ๋ฐฉํ๋ฒฝ์ด ๋คํธ์ํฌ๋ฅผ ํตํด ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ ํจํท์ ๊ฒ์ฌํ๊ณ ์ ์ดํ๋ ๊ฒ์ ๋งํ๋ค.๋ฐฉํ๋ฒฝ์ด ํ์ฉํ ํธ๋ํฝ๋ง ๋คํธ์ํฌ๋ก ๋ค์ด์ค๊ฑฐ๋ ๋๊ฐ ์ ์๋๋ก ํ๋ค.ํธ๋ํฝ ํํฐ๋ง ๋ฐฉ์ ์ค ํจํท ํํฐ๋ง ๋ฐฉ์์ย ๋ฐ์ดํฐ ํจํท์ ํค๋ ์ ๋ณด๋ฅผ ๋ถ์ํ์ฌ ํธ๋ํฝ์ ํ์ฉ/..
ํ๋ก์ธ์ค ํ๋ก์ธ์ค = ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ ํ๋ก์ธ์ค(process)๋ ์ปดํจํฐ์์ ์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค. foreground process / background process foreground process ์ ธ์์ ํ๋ก์ธ์ค ์คํ์ ๋ช ๋ นํ์ ๋, ํด๋น ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ธฐ ์ ๊น์ง ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ ๋ ฅ์ ํ ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ๋งํ๋ค. ํด๋น ํ๋ก์ธ์ค์ ์คํ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ฉด, ํ๋ก์ธ์ค ์ข ๋ฃ ์ ๊น์ง ์ฌ์ฉ์๋ ์ ๋ ฅ์ ํ ์ ์๋ค. [Ctrl] + c ๋ช ๋ น์ด : ์คํ์ค์ธ foreground process๋ฅผ ์ฆ์ ์ข ๋ฃํ๋ ๋ช ๋ น์ด์ด๋ค. ํด๋น ํ๋ก์ธ์ค๋ ์์ ํ ์ข ๋ฃ๋๋ค. -> ์์ ์ด ์คํ ์ค์ ls ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด๋ ํด๋น ์์ ์ด ๋ชจ๋ ๋๋ ๋ค์ ๋์ํ๋ค. (sleep n)์ n์ด๋์ ์๋ฌด๊ฒ๋..
@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..
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..
POSIX๋?POSIX : Portable Operating System Interface + UniX-> ์ด์ ๊ฐ๋ฅํ ์ด์ ์ฒด์ ์ธํฐํ์ด์ค + ์ ๋์ค ํธํ ์ด์์ฒด์ ์ ๋ณดํต X๊ฐ ๋ถ๋ ๊ฒ์์ ์ ๋ํ๋ค.
ํธ๋ผ์ด(Trie) ํธ๋ผ์ด๋ ๋ฌธ์์ด์ ์ ์ฅํ๊ณ , ๋น ๋ฅด๊ฒ ํ์ํ๊ธฐ ์ํ ํธ๋ฆฌ ํํ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ฌธ์์ด ์ ์ฅ์ ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง๋ง, ํ์์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค. O(N) (Java์์ Queue,Stack,List์ ๋ค๋ฅด๊ฒ Trie๋ฅผ ์ง์ ์ ์ผ๋ก ๊ตฌํํด๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋ค.) ํธ๋ผ์ด์ ํํ Trie์ ๋ค์ด์๋ ๋ฌธ์์ด apple, april bus, busy, beer, best ํธ๋ผ์ด์ ๊ตฌ์กฐ(ํน์ง) ๋ฃจํธ ๋
ธ๋ ๋ฃจํธ๋
ธ๋๋ ํญ์ ๋น์ด์๋ค. ๋ฃจํธ๋
ธ๋์ ์์๋
ธ๋๋ ๊ฐ ๋จ์ด๋ค์ ์ฒซ ๊ธ์๋ค์ด๋ค. endOfWord ํ์ ํ๋์์ผ๋ก ์น ํด์ ธ ์๋ ๋
ธ๋๋ ๊ฐ ๋ฌธ์์ด์ ๋ง์ง๋ง ๊ธ์์ด๋ค. ๊ฐ ๋
ธ๋ ๊ตฌ์ฑ ๊ฐ ๋
ธ๋์ ์์๋
ธ๋๋ค์ Map์ ์ ์ฅํ๋ค. ํด๋น ๋
ธ๋๊ฐ ๋จ์ด์ ๋ง์ง๋ง์ ๋ปํ๋ endOfWord๋ฅผ ์ ์ฅํ booleanํ ํ..[JAVA/์๋ฃ๊ตฌ์กฐ] ํธ๋ผ์ด(Trie) ๊ฐ๋
, ์ง์ ๊ตฌํํ๊ธฐ
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) ์ธ์ ์ฟ ํค๋ฅผ ์ด์ฉํ์ฌ ๋ก..