๊ฐ๋ฐ66 Vuex / ์ํ๊ด๋ฆฌ / Vuex ํจํด ๋ฐ ์์ Vuex ๋? Vue.js ์ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ ํจํด์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๋ชจ๋ ์ปดํฌ๋ํธ์ ๋ํ ์ค์ ์ง์ค์ ์ ์ฅ์ ์ญํ ์ ํ๋ฉฐ ์์ธก ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค. Vuex ๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ํ๋ ์์ํฌ๋ ํ ํ๋ฉด์ ์์ ๋จ์์ ์ปดํฌ๋ํธ ์ฌ๋ฌ ๊ฐ๋ก ์ชผ๊ฐ์ด ๊ตฌ์ฑํ๋ค. ์๋ฅผ ๋ค์ด, ๋ทฐ์์๋ ์ปดํฌ๋ํธ ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ํด emit, props ๋ฑ์ ์ฌ์ฉํ๋๋ฐ ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ๋ฌธ์ ์ ์ด ์๋ค. ๋ฐ์ดํฐ์ ์์ง์์ ํ์ธํ ์ ์๋ค. ๋ถ๋ชจ-์์ ์ปดํฌ๋ํธ์ ๊ด๊ณ๊ฐ ๋ณต์กํด์ง๋ฉด ๋ฐ์ดํฐ์ ์ด๋์ ํ์ ํ๊ธฐ ์ด๋ ต๋ค. ์ปดํฌ๋ํธ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ๋ฐ๊ธฐ ์ํด ์ค๊ฐ์ ๊ฑฐ์ณ์ผ ํ ์ปดํฌ๋ํธ๊ฐ ๋ง์์ง๋ค. ๋จผ์ , ์์ ์ปดํฌ๋ํธ์ ๊น์ด์ ๋ฐ๋ผ props, emit ์ ์๊ฐ ๋ง์์ง๋ฉฐ ๊ด๋ฆฌ์ ์ด๋ ค์์ด ์๊ธด๋ค. ๊ฒ๋ค๊ฐ ๋ถ.. 2022. 4. 5. Vue ๋ผ์ฐํฐ / SPA / Router ๊ฐ ์ ๋ฌ SPA (Single Page Application) ์ผ๋ฐ์ ์ธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์น ํ์ด์ง๋ฅผ ์์ฒญํ๋ฉด ์๋ฒ๋ก๋ถํฐ html ์ ์ ๋ฌ ๋ฐ์ ๋ ๋๋ง ์์ง์ ํตํด ํ๋ฉด์ ๋ณด์ฌ์ค๋ค. ํ ํ์ด์ง์ ํด๋นํ๋ ํ์ด์ง ์ฉ๋์ด ์ปค์ง๋ฉด ์์ฒญ๋ง๋ค ๋งค๋ฒ ์๋ก์ด ํ์ด์ง๋ฅผ ์ ๋ฌ ๋ฐ๊ธฐ ๋ฒ๊ฒ๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด SPA, Single Page Application ์ด๋ค. SPA ๋ ๋จ์ผ ํ์ด์ง๋ก ๊ตฌ์ฑ๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ ์ฒด ํ์ด์ง๋ฅผ ํ๋์ ํ์ด์ง์ ๋ด์ ๋์ ์ผ๋ก ํ๋ฉด์ ๋ฐ๊ฟ๊ฐ๋ฉฐ ํํํ๋ค. ํ์ด์ง ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ค๋ ๊ฒ์ด ์ต์ด ๋ก๋๋์์ ๋ ๋ฏธ๋ฆฌ ๋ธ๋ผ์ฐ์ ์ ์ฌ๋ผ๊ฐ ํ ํ๋ฆฟ๋ง ๊ต์ฒดํ๋ ๊ฒ์ด๋ค. ํ๋ฉด ์ด๋ ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ html ๋ก ์ ๋ฌ(์๋ฒ์ฌ์ด๋ ๋ ๋๋ง) ๋ฐ์ง ์๊ณ ํ์ํ ๋ฐ์ดํฐ๋ง ์๋ฒ๋ก๋ถํฐ ์ ๋ฌ ๋ฐ์ ๋์ .. 2022. 4. 4. Vue ์ปดํฌ๋ํธ / ์ปดํฌ๋ํธ ๊ฐ ํต์ Vue ์ปดํฌ๋ํธ ์ปดํฌ๋ํธ๋ ํ๋ฉด์ ์์ญ์ ์ผ์ ํ ๋จ์๋ก ์ชผ๊ฐ์ด ์ฌํ์ฉ ๊ฐ๋ฅํ ํํ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค. Vue ์์ ์ต์์ ์ปดํฌ๋ํธ๋ root ๊ณ ์ด๋ฅผ ์์์ผ๋ก ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ํ์ฑ๋๋ค. - ์ ์ญ ์ปดํฌ๋ํธ ์ฌ๋ฌ ์ธ์คํด์ค์์ ๊ณตํต์ผ๋ก ์ฌ์ฉ, ๋ชจ๋ ์์ ์ปดํฌ๋ํธ์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ์ฃผ๋ก ํ๋ฌ๊ทธ์ธ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ์ฑ ์ ์ญ์์ ์ฌ์ฉํ ๊ณตํต ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ค. vue ์ธ์คํด์ค ์์ฑ ์ ์ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด์ฃผ์ด์ผ ํ๋ค. Vue.component('component-a', { template: ' hello world AAA !!!'}) Vue.component('component-b', { template: ' hello world BBB !!!'}) Vue.component('component-c', { templat.. 2022. 4. 4. Vue ์ฌ์ฉ๋ฒ / ๋ฌธ๋ฒ / ์ต์ / ๋๋ ํฐ๋ธ Vue.js ์ ์ฉ ๋ฐฉ๋ฒ ๐CDN ๋ฐฉ์์ผ๋ก Vue ์์ํ๊ธฐ - ๊ฐ๋ฐ์ฉ // ์ต์ ๋ฒ์ ๋ถ๋ฌ์ค๊ธฐ // ํน์ ๋ฒ์ ๋ถ๋ฌ์ค๊ธฐ - ์์ฉ โ๏ธWebpack ๋ฐฉ์์ผ๋ก Vue ์์ํ๊ธฐ npm์ผ๋ก cli๋ฅผ ์ค์นํด vue ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐฉ์์ด๋ค. npm install -g @vue/cli # OR yarn global add @vue/cli ๐ npm(Node Package Manager) node.js์์ ์ฌ์ฉํ๋ ๋ชจ๋๋ค์ ํจํค์ง๋ก ๋ง๋ค์ด npm์ ํตํด์ ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํ๋ค. ์ง์ ๊ฐ๋ฐํ ๋ชจ๋์ด๋ ๋ค๋ฅธ ์ฌ์ฉ์๋ค์ด ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ ๋ชจ๋์ ๊ฐํธํ๊ฒ ๋ค์ด๋ฐ์ ์ฌ์ฉํ ์ ์๋ค. ๐ Node.js ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด ํ๋ซํผ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ๊ณ ๋ด์ฅ http ์๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์ด ์น .. 2022. 3. 28. 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. 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. ์ด์ 1 2 3 4 5 6 7 ๋ค์