์ ์ฒด ๊ธ79 ์ปดํ์ผ๊ณผ ์ธํฐํ๋ฆฟ / ๋ฐํ์ ์ปดํ์ผ (Compile) vs ์ธํฐํ๋ฆฟ (Interpret) ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ์ ํ ๋ ์ฌ์ฉํ๋ ๊ณ ๊ธ ์ธ์ด(Java, c, Python ๋ฑ)๋ฅผ ์ฌ์ฉํ์ง๋ง ์ปดํจํฐ๋ 0๊ณผ 1๋ก ์ฐ์ฌ์ง ๋ฐ์ด๋๋ฆฌ๋ง ์ดํดํ ์ ์๋ค. ๋ฐ๋ผ์ ๊ณ ๊ธ ์ธ์ด๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋๋ก ๋ณํํด์ผ ํ๋๋ฐ, ํ๋ก๊ทธ๋จ ์ธ์ด๋ฅผ ํด์ํ๊ณ ์คํ์ํค๋ ๋ฐฉ๋ฒ์ ๋ํ์ ์ผ๋ก ์ปดํ์ผ๊ณผ ์ธํฐํ๋ฆฟ ๋ฐฉ์์ด ์๋ค. - ์ปดํ์ผ (Compile) ๋ฐํ์ ์ด์ ์ ์์ค ์ฝ๋๋ฅผ ๊ฒ์ฌํ๊ณ ๊ธฐ๊ณ์ด๋ก ํด์ํ๋ ๋ฐฉ์์ด๋ค. ์ ์ฒด ์ฝ๋๋ฅผ ๊ฒ์ฌํ๊ณ ์คํํ๊ธฐ ๋๋ฌธ์ ์คํ ์ ์ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ ์ ์๋ค. ๊ตฌ๋ ์๊ฐ์ ์ค๋ ๊ฑธ๋ฆฌ์ง๋ง, ์ดํ์๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋์ํ๋ค. ๊ตฌ๋ ์ ์์คํ ์ผ๋ก๋ถํฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ๋ฐ์ ์ฌ์ฉํ๋ค. ๋๊ฒ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐ๋ก ๊ธฐ๊ณ์ด๋ก ์ ํ๋๊ธฐ ๋๋ฌธ์ OS ๋ฐ ํ๊ฒฝ์ ์ข ์์ ์ด.. 2022. 3. 21. Vue.js ๊ธฐ๋ณธ ๊ฐ๋ / ์ฌ์ฉํ๋ ์ด์ / ๊ฐ์ ๋ Vue.js ๋? ์๋ฐ์คํฌ๋ฆฝํธ(์ดํ js) ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง ์น ๊ฐ๋ฐ์ ์ํ ํ๋ ์์ํฌ ์ค ํ๋์ด๋ค. MVVM ํจํด์ ViewModel ๋ ์ด์ด์ ํด๋นํ๋ ํ๋ฉด๋จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด DOM์ ๋ค์ ๋์ ํด์ค์ผ ํ๋ฉด์ด ๋ณ๊ฒฝ๋์๋ ์ผ๋ฐ์ ์ธ ์น ๊ฐ๋ฐ ๋ฐฉ์๊ณผ ๋ค๋ฅด๊ฒ, ๋ฐ์ดํฐ ๋ณํ๋ฅผ ๊ฐ์งํ์ฌ ํ๋ฉด์ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ๋ก ํ์ํ ์ ์๋ค. MVVM ํจํด์ ์ฌ์ฉํ๋ค. Virtual DOM์ ์ฌ์ฉํ๋ค.(React์ ๊ฐ์ ๋ ์ฑํ) ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ ๊ณตํ๋ค.(Angular์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ์ฑํ) Template์ Component๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ ๋ค. ์ Vue.js ๋ฅผ ์ฌ์ฉํ ๊น? 1. ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ด ๊ฐํธํ๋ค. ์๋ HTML ์ฝ๋์์ ์๋ฆฌ๋จผํธ๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? hello.. 2022. 3. 17. Spring Security ์ค๋ณต ๋ก๊ทธ์ธ ๋ฐฉ์ง ์ค์ WebSecurityConfigurerAdapter๋ฅผ ๊ตฌํํ Spring Security ์ค์ ํ์ผ ๋ด ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค. http .sessionManagement() .maximumSessions(1) .maxSessionsPreventsLogin(false) .expiredUrl("/login") .sessionRegistry(sessionRegistry()); - maximumSessions ์ต๋ ์ ์ง ๊ฐ๋ฅํ ์ธ์ ์๋ 1๋ก ์ค์ - maxSessionsPreventsLogin ์ ์ค๋ณต ๋ก๊ทธ์ธ์ด ๋์์ ๋ ๋จผ์ ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ฅผ ์ธ์ ์์ ์ํค๋ ค๋ฉด false, ๋์ค์ ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ฅผ ํ๊ธฐ๋ ค๋ฉด true๋ก ์ค์ @Configuration @EnableWebSecurity @Required.. 2022. 3. 15. Java NIO / ๋ ผ๋ธ๋กํน / ๋น๋๊ธฐ ๋ฐฉ์ IO์ NIO ์๋ฐ์์ ์์ผ ํต์ ์ ๊ตฌํํ๊ธฐ ์ํด์๋ io ๋๋ nio ํจํค์ง๋ฅผ ํ์ฉํ๊ฒ ๋ ๊ฒ์ด๋ค. ์๋ฐ 4๋ถํฐ ์๋ก์ด ์ ์ถ๋ ฅ์ด๋ผ๋ ๋ป์์ java.nio ํจํค์ง, ์๋ฐ 7๋ถํฐ ๋คํธ์ํฌ ์ง์์ ๊ฐํํ์ฌ java.nio ํจํค์ง๋ฅผ ์ ๊ทธ๋ ์ด๋ ํ๋ค. IO๋ ์คํธ๋ฆผ(Stream)์ด๋ผ๋ ๋จ๋ฐฉํฅ ํต๋ก๋ก ์ธ๋ถ ๋ฐ์ดํฐ์ ํต์ NIO๋ ์ฑ๋(Channel)์ด๋ผ๋ ์๋ฐฉํฅ ํต๋ก๋ก ์ธ๋ถ ๋ฐ์ดํฐ์ ํต์ โถ NIO๋ ์ฝ๊ธฐ/์ฐ๊ธฐ๋ฅผ ํ๋์ ํต๋ก๋ก ํด๊ฒฐํ ์ ์๋ค. IO๋ ์ ์ถ๋ ฅ ์ ๋ฒํผ๋ฅผ ์ฌ์ฉํ์ง ์์ง๋ง, ํํฐ ์คํธ๋ฆผ์ ์ฌ์ฉํ ์๋ ์์ NIO๋ ์ ์ถ๋ ฅ ์ ๋ฒํผ๋ฅผ ์ฌ์ฉํจ โถ NIO๋ ๋ฒํผ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ถ๋ ฅ ์๋๊ฐ ๋น ๋ฅด๋ค. IO๋ ๋ธ๋กํน ๋ฐฉ์๋ง ์ง์ํ์ฌ ์ค๋ ๋๋ฅผ ์์ฑํ๊ณ ์์ ๋๋ฐ ํฐ ๋น์ฉ์ด ๋ค์ด๊ฐ NIO๋ ๋ธ๋กํน/๋ ผ๋ธ๋กํน ๋ฐฉ์ ์ค .. 2022. 3. 14. TCP ์์ผ ํต์ ์์ผ(Socket) ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ ํต์ ์ด ๊ฐ๋ฅํ๋๋ก ์ฐ๊ฒฐํด์ฃผ๋ ์ฐ๊ฒฐ๋ถ์ด๋ค. ์์ผ์ ํ๋กํ ์ฝ, IP ์ฃผ์, ํฌํธ๋ก ๊ตฌ์ฑ๋ ๋ ํธ์คํธ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๋๊ตฌ์ด๋ค. ์์ผ ์ข ๋ฅ - TCP ์๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํธ ์คํธ๋ฆผ์ ์ ์ก, ์ฐ๊ฒฐ ์งํฅ, ํ๋ฆ์ ์ด ๋ณด์ฅ - UDP ๋น์ฐ๊ฒฐํ, ๋ฐ์ดํฐ ํฌ๊ธฐ ์ ํ, ํ์คํ ์ ๋ฌ ๋ณด์ฅ X TCP ์์ผ ํ๋ก๊ทธ๋๋ฐ๊ณผ HTTP ํ๋ก๊ทธ๋๋ฐ์ ์ฐจ์ด ๐ ์ฐ๊ฒฐ ๋ฐฉ์ - TCP: Server์ Client๊ฐ ํน์ Port๋ฅผ ํตํด ์ค์๊ฐ ์๋ฐฉํฅ ํต์ , ์ฐ๊ฒฐ์ ์ ์งํ๊ณ ์์ - HTTP: Client์ ์์ฒญ์ด ์์ ๋๋ง Server๊ฐ ์๋ตํ์ฌ ์์ฒญํ ์ ๋ณด๋ฅผ ๋ฐํํ๋ ๋จ๋ฐฉํฅ ํต์ , ์ ๋ณด๋ฅผ ๋ฐํํ๋ฉฐ ๋ฐ๋ก ์ฐ๊ฒฐ์ ์ข ๋ฃํจ ๐ ๋ฐ์ดํฐ ํํ - TCP: Byte Array - HTTP: String ํด๋ผ์ด์ธํธ ์์ผ๊ณผ .. 2022. 3. 11. docker Docker ๋ ์ปจํ ์ด๋ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ํ๊ฒฝ์ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ๊ณ ํ ์คํธ ๋ฐ ๋ฐฐํฌ๋ฅผ ๋์์ฃผ๋ ํ๋ซํผ Container ๋? ๋ฆฌ์์ค๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก(๋ฌผ๋ฆฌ์ ์ด ์๋๋ผ!) ๊ตฌ๋ถํ์ฌ ๋ณ๋์ ์๋ฒ์ธ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ์ ์ด๋ค. ์์ ๋จ์, ๋ ๋ฆฝ์ ์ธ ๋ฐฐํฌ์ ์คํ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์ผ์ข ์ ๊ฐ์ ๋จธ์ ์ด๋ค. ์ํํธ์จ์ด ์๋น์ค๋ฅผ ์คํํ๋๋ฐ ํ์ํ ํน์ ๋ฒ์ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐํ์ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ์ ์ข ์ ํญ๋ชฉ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ํจ๊ป ํฌํจํ๋ ๊ฒฝ๋ ํจํค์ง๋ก ๋น ๋ฅธ ๋น๋์ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค. - Traditional Deployment ํ ๋ฌผ๋ฆฌ ์๋ฒ์์ ๋ค์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฌ๋ฌ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋นํจ์จ์ ์ด๊ณ , ์๋ฒ ์ข ๋ฃ ์ ์คํ ์ค์ธ ๋ชจ๋ ์ ํ๋ฆฌ์ผ.. 2022. 3. 11. Git ์ฌ์ฉ๋ฒ GitHub์ Git Github๋ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ํด์ธ Git์ ์ฌ์ฉํ๋๋ก ์ง์ํ๋ ์น ์๋น์ค์ด๋ค. Git์ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ผ๋ก ํ๋ก์ ํธ์ ๋ณ๊ฒฝ์ ๊ด๋ฆฌํ๋ ๋ฒ์ ๊ด๋ฆฌ ์ํํธ์จ์ด์ด๋ค. ๋ก์ปฌ์์ ๋ณ๊ฒฝ์ฌํญ์ ์ถ์ ํ๊ณ ์๊ฒฉ ๋ฆฌ์์ค์์ ๋ณ๊ฒฝ์ฌํญ์ ํธ์ํ๊ฑฐ๋ ๊ฐ์ ธ์ฌ ์ ์๋ค. ๐ก Github์์ Git์ ์ฌ์ฉํ ์ ์๋ค. GitHub์ GitLab ๋ํ์ ์ผ๋ก Git ์ ์ฅ์๋ฅผ ์๋น์คํ๋ ๊ณณ์ผ๋ก GitHub์ GitLab์ด ์๋ค. Github๋ ๋ฌด๋ฃ ์๋ฒ ์ ์ฅ์๋ฅผ ์ง์ํ๋ค. ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์ด์ฉ ๊ฐ๋ฅํ์ง๋ง ์์ค์ฝ๋๊ฐ ์คํ๋์ด ์๋ง์ ์ฌ๋๋ค์ด ํ์ฉํ ์ ์๋ค. GitLab์ ๋ณด์์ ์ค์ํ๋ ํ๋ก์ ํธ๋ฅผ ํ์ ํ์ฌ ๊ฐ๋ฐํ๋ ํด๋ก ์ด์ฉํ๋ฉฐ ์์ ์ ์๋ฒ์ ์ค์นํด ํ๋ผ์ด๋นํ Git ์ ์ฅ์๋ฅผ ๋ง๋ค ์ ์๋ค.(์๋น์คํ๊ณผ ์ค์นํ.. 2022. 3. 11. Spring Boot ํ๋ก์ ํธ git ์ฐ๋ Spring Boot + Git Spring Boot ํ๋ก์ ํธ ํ์ ๊ด๋ฆฌ๋ฅผ ์ํด git๊ณผ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ด๋ค. 1. Clone Git Repository STS์์ Window > Show View > Other... > Git ๊ฒ์ > Git Repositories ์ ํ ์ค๋ฅธ ์ชฝ ์๋จ์ Open Perspective ๋ฒํผ(ํ ์ด๋ธ + ๋ฒํผ)์ ๋๋ฌ ๋ ์ฝ๊ฒ Git Repository์ ์ ๊ทผํ ์ ์๋ค. 2. Clone Git Repository Clone a Git repository ๋ฒํผ์ ๋๋ฌ ์์ ์ git respository์์ ๋ณต์ฌํ url๊ณผ git ID/PW๋ฅผ ๋ฃ์ด์ค๋ค. ๋ค์์ผ๋ก ๋์ด๊ฐ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ์ง์ ํ๋ค. ์ด๋ ๊ฒ ๋ง๋ค๋ฉด Git Repository์ ๋ด๊ฐ ์ฐ๊ฒฐํ repository๊ฐ ์ถ๊ฐ๋๋ค.. 2022. 3. 9. Spring Boot์ MySQL / Mybatis ์ฐ๊ฒฐํ๊ธฐ Spring Boot + MyBatis + MySQL Spring Boot ํ๋ก์ ํธ์์ MyBatis๋ฅผ ์ด์ฉํ MySQL ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ค. * Spring Boot ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ๊ธฐ๋ณธ์ ์ธ ์ธํ ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ์ 1. ์์กด์ฑ ์ถ๊ฐ mybatis ๋ฐ mysql์ ์ฌ์ฉํ๊ธฐ ์ํด ํด๋น ์์กด์ฑ์ ์ถ๊ฐํ๋ค. maven์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์ ์ค์ ํ์ผ์ธ pom.xml์์ ์์กด์ฑ์ ์ถ๊ฐํ๋ฉด ๊ธ๋ก๋ฒ ์ ์ฅ์์์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ก์ปฌ ์ ์ฅ์๋ก ๋ค์ด๋ก๋ํ๊ณ ํด๋์ค ํจ์ค๋ฅผ ์ง์ ํ์ฌ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค. ์๋ ๋งํฌ์ MVN Repository์์ ์ํ๋ ์์กด์ฑ์ ๊ฒ์ํ์ฌ ์ถ๊ฐํ ์ ์๋ค. ๋ณดํต ๋ณดํธ์ ์ธ ๋ฒ์ ์ด๋ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ๋ค. https://mvnrepository.com/artifact/mysq.. 2022. 3. 9. Spring Boot ํ๋ก์ ํธ ์์ฑํ๊ธฐ Spring Boot ํ๋ก์ ํธ ์์ฑํ๊ธฐ STS์์ Spring Boot ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ค. 1. File > New > Spring Starter Project > Spring Starter Project ์ ํ Spring Starter Project: Spring Boot๋ฅผ ์ด์ฉํ๋ ํ๋ก์ ํธ Spring Legacy Project: ์ผ๋ฐ์ ์ธ Spring Framework ํ๋ก์ ํธ * Spring Starter Project๊ฐ ๋ณด์ด์ง ์์ ๊ฒฝ์ฐ ๋งจ ์๋ Other... ์์ ๊ฒ์ 2. New Spring Starter Project ์ค์ ํ๋ก์ ํธ ๊ธฐ๋ณธ ์ค์ 3. New Spring Starter Project Dependencies ์ค์ ์คํ๋ง ๋ถํธ์์ ํน์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ๋ผ์ด๋ธ.. 2022. 3. 8. ์ด์ 1 2 3 4 5 6 7 8 ๋ค์