ΰ­¨β”ˆβ”ˆβ”ˆ Web β”ˆβ”ˆβ”ˆΰ­§ 10

[Gradle] implementation, runtimeOnly, compileOnly 차이점

spring boot ν”„λ‘œμ νŠΈμ—μ„œ DB μ„ΈνŒ…μ„ ν•˜λ‹€κ°€ μ•„λž˜ gradle 섀정에 λŒ€ν•΄ 의문이 생겼닀. implementation 'org.postgresql:postgresql' runtimeOnly 'org.postgresql:postgresql' implementation은 자주 μ“°λŠ”λ° runtimeOnly와 compileOnly에 λŒ€ν•œ λͺ…ν™•ν•œ μ‚¬μš© μ‹œμ μ΄ κΆκΈˆν•΄μ‘Œλ‹€. Classpath ClasspathλŠ” ν΄λž˜μŠ€λ‚˜ jar 파일이 μ‘΄μž¬ν•˜λŠ” μœ„μΉ˜μ΄λ‹€. 크게 complileClasspath, runtimeClasspath둜 λ‚˜λˆ„μ–΄μ Έ μžˆλ‹€. compileClasspathλŠ” μ—λŸ¬μ—†μ΄ μ»΄νŒŒμΌμ„ ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ ν΄λž˜μŠ€μ™€ jar 파일이 μœ„μΉ˜ν•œλ‹€. runtimeClasspathλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ˜κΈ° μœ„..

[MyBatis] Unknow column '' in 'field list'

λ°œμƒμ›μΈ μœ„μ²˜λŸΌ DB에 ν•΄λ‹Ή 컬럼이 μ—†λ‹€λŠ” μ—λŸ¬κ°€ λ–΄λ‹€. 이에 λŒ€ν•œ 원인은 두 κ°€μ§€κ°€ μžˆλ‹€. 1. 정말 ν•΄λ‹Ή DB에 컬럼이 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€. 2. μ‚¬μš©μžκ°€ λ¬Έμžμ—΄λ‘œ μ€€ 데이터가 μŒλ”°μ˜΄ν‘œ("")둜 λ‘˜λŸ¬μ‹Έμ—¬ μžˆμ§€ μ•Šλ‹€. λ‚˜ 같은 κ²½μš°λŠ” 2에 μ†ν–ˆλ‹€. 해결방법 μ½”λ“œλ₯Ό λ³΄λ‹ˆ xml νŒŒμΌμ— μ˜€νƒ€κ°€ μžˆμ—ˆλ‹€. ${test} -> #{test} λ‹€μŒκ³Ό 같이 $λ₯Ό #둜 λ°”κΏ”μ£Όλ‹ˆ ν•΄κ²°λ˜μ—ˆλ‹€.

[Vue.js] μ§€μ‹œμž, ν•„ν„°

μ§€μ‹œμž(Directives) - ν‘œν˜„μ‹μ˜ 값이 변경될 λ•Œ 이에 λ°˜μ‘ν•΄ DOM에 λ³€κ²½ 사항을 μ μš©ν•œλ‹€. ex) v-for μ§€μ‹œμžλŠ” 원본 데이터λ₯Ό 기반으둜 μš”μ†Œ λ˜λŠ” 데이터 블둝을 μ—¬λŸ¬λ²ˆ λ Œλ”λ§ν•œλ‹€. - κΈ°λ³Έ λ‚΄μž₯ μ§€μ‹œμ§€λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ , μ‚¬μš©μž μ •μ˜ μ§€μ‹œμžλ₯Ό λ§Œλ“€ μˆ˜λ„ μžˆλ‹€. μ§€μ‹œμž μ •μ˜ 객체λ₯Ό μƒμ„±ν•˜κ³ , 이λ₯Ό Vue.directive()λ₯Ό μ΄μš©ν•΄ μ „μ—­μœΌλ‘œ λ“±λ‘ν•˜κ±°λ‚˜, μ»΄ν¬λ„ŒνŠΈμ˜ directives ν”„λ‘œνΌν‹°λ‘œ 둜컬 등둝을 ν•˜λ©΄ λœλ‹€. - Vue.jsκ°€ ν›… ν•¨μˆ˜(μ§€μ‹œμž μ™ΈλΆ€μ—μ„œ μΌμ–΄λ‚˜λŠ” 일듀을 μ§€μ‹œμžμ— 전달할 수 μžˆλŠ” ν•¨μˆ˜)λ₯Ό μ§€μ‹œμž μ •μ˜ 객체 내에 μΆ”κ°€ν•  수 있으며, 이 ν›… ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ λ‹€μ–‘ν•œ λ‘œμ§μ„ μ μš©ν•  수 μžˆλ‹€. bind inserted update componentUpdated unbind - 페..

[Vue.js] μ»΄ν¬λ„ŒνŠΈ

μ»΄ν¬λ„ŒνŠΈ - Vue μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ½”λ“œλ₯Ό μž¬μ‚¬μš©ν•  수 μžˆλŠ” 기본적인 방법 - HTML μš”μ†Œλ₯Ό ν™•μž₯ν•˜κ³  μΆ”κ°€ λ‘œμ§μ„ μ œκ³΅ν•  수 μžˆμ–΄ μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€. - Vue μ»΄ν¬λ„ŒνŠΈλŠ” Vue μΈμŠ€ν„΄μŠ€μ΄κΈ°λ„ 함 - 생성 쀑에 optios 객체λ₯Ό λ°›λŠ”λ‹€. - μ „μ—­μœΌλ‘œ λ“±λ‘ν•˜κΈ° μœ„ν•΄ Vue.component(id, [definition])λ₯Ό μ‚¬μš© id : μ»΄ν¬λ„ŒνŠΈμ˜ id definition : μ»΄ν¬λ„ŒνŠΈμ— λŒ€ν•œ μ •μ˜ (options 객체/options 객체λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜) - $emit : ν˜„μž¬ μΈμŠ€ν„΄μŠ€μ˜ 이벀트λ₯Ό 트리거 ν•  수 μžˆλŠ” λ©”μ†Œλ“œ, 첫 번째 인자둜 이벀트λͺ…을 μž…λ ₯ν•˜κ³ , 두 번째 인자둜 μΆ”κ°€ 데이터λ₯Ό μž…λ ₯ν•œλ‹€. → μΆ”κ°€λ‘œ λΆ€λͺ¨ μ»΄ν¬λ„ŒνŠΈλŠ” v-on μ§€μ‹œμžλ‘œ 이벀트λ₯Ό λ¦¬μŠ€λ„ˆμ— λΆ€μ°©ν•  수 μžˆλ‹€. - 이전 κΈ€μ˜ ind..

[SpringBoot] ν”„λ‘œμ νŠΈ 생성

ν”„λ‘œμ νŠΈ 생성 1. IntelliJλ₯Ό μ΄μš©ν•΄ ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•œλ‹€. [File] > [New] > [Project]λ₯Ό 톡해 μƒˆ ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•œλ‹€. 2. Spring Initializer 선택 SDK 버전을 μ„ νƒν•˜κ³  Nextλ₯Ό λˆ„λ₯Έλ‹€. 3. ν”„λ‘œμ νŠΈ λ‚΄μ˜ νŒ¨ν‚€μ§€λͺ…을 λ³€κ²½ν•˜λ €λ©΄ Group λ‚΄μš©μ„ λ°”κΏ”μ£Όλ©΄ λœλ‹€. Type은 Gradle둜 λ³€κ²½ν•΄ μ€€λ‹€. 4. μ›Ήμ„œλ²„ λ™μž‘μ„ μœ„ν•΄ 두 κ°€μ§€ 라이브러리λ₯Ό μΆ”κ°€ν•΄ μ€€λ‹€. 5. λ‹€μŒ ν™”λ©΄μ—μ„œ ν”„λ‘œμ νŠΈλͺ…을 μ„€μ •ν•˜κ³ , μ™„λ£Œλ₯Ό λˆŒλŸ¬μ€€λ‹€.

[Spring] μ˜μ‘΄μ„± μ£Όμž… (DI)

μ˜μ‘΄μ„± μ£Όμž… 방법 1) Constructor (μƒμ„±μž) ꢌμž₯ public class Test { private final LoginService loginService; private final BoardService boardService; @Autowired public Test(LoginService loginService, BoardService boardService) { this.loginService = loginService; this.boardService = boardService; } } - ν•„μˆ˜μ μΈ μ˜μ‘΄μ„± μ£Όμž…μ— μœ μš©ν•˜λ‹€. - final을 μ„ μ–Έν•  수 μžˆμœΌλ―€λ‘œ 객체가 λΆˆλ³€μ΄λ‹€. - ν…ŒμŠ€νŠΈμ½”λ“œ μž‘μ„±μ— μš©μ΄ν•˜λ‹€. 2) Setter public class Test { private Logi..

[SpringBoot] Swagger μ„€μ •ν•˜κΈ°

dependency μΆ”κ°€ λ¨Όμ € μŠ€μ›¨κ±° λ””νŽœλ˜μ‹œλ₯Ό μΆ”κ°€ν•œλ‹€. build.gradle νŒŒμΌμ— 라이브러리λ₯Ό μΆ”κ°€ν•΄μ€€λ‹€. ν•„μš”ν•œ 라이브러리의 λ””νŽœλ˜μ‹œλŠ” ν•˜μœ„ λ§ν¬μ—μ„œ μ‰½κ²Œ 찾을 수 μžˆλ‹€. https://mvnrepository.com/artifact/io.springfox/springfox-swagger2/2.9.2 Maven Repository: io.springfox » springfox-swagger2 » 2.9.2 mvnrepository.com ... repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springfra..

[Vue.js] μΈμŠ€ν„΄μŠ€ 및 κ°„λ‹¨ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ§Œλ“€κΈ°

Vue μΈμŠ€ν„΄μŠ€ - Vue.js μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ‹œμž‘ - 루트 Vue μΈμŠ€ν„΄μŠ€μ™€ μ»΄ν¬λ„ŒνŠΈ μΈμŠ€ν„΄μŠ€ -> 이 두 κ°€μ§€ μœ ν˜•μ˜ Vue μΈμŠ€ν„΄μŠ€λ‘œ ꡬ성 - 루트 μΈμŠ€ν„΄μŠ€ 생성 μ½”λ“œ new Vue({/* options */}); options 객체에 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κΈ°μˆ ν•˜κ³ , Vue.jsκ°€ 이 객체λ₯Ό κ°€μ§€κ³  Vue μΈμŠ€ν„΄μŠ€λ₯Ό μ΄ˆκΈ°ν™” κ°„λ‹¨ν•œ λ©”μ‹œμ§€ μ•± λ§Œλ“€κΈ° 1) κΈ°λŠ₯ - λ©”μ‹œμ§€ μΆ”κ°€ - λ©”μ‹œμ§€ 리슀트 - λ©”μ‹œμ§€ μ‚­μ œ - νŠΉμ • μ‘°κ±΄μ—μ„œ μΆ”κ°€ κΈ°λŠ₯ μžλ™ λΉ„ν™œμ„±ν™” 2) index.html - Vue μ„€μ • 12쀄 : options 객체의 el(element) ν”„λ‘œνΌν‹°λ₯Ό μ΄μš©ν•΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μš”μ†Œμ— λΆ€μ°©\ μ±…μ˜ 경둜 "https://unpkg.vue@2.5.13/dist/vue.js"λ₯Ό μ΅œμ‹  링크둜 λ³€κ²½ - μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ..

[κ°œλ…] μŠ€μ½”ν”„μ™€ ν΄λ‘œμ €, this, ν˜Έμ΄μŠ€νŒ…

μŠ€μ½”ν”„μ™€ ν΄λ‘œμ € 1) μŠ€μ½”ν”„ : λ³€μˆ˜μ˜ 접근성에 κ΄€ν•œ 것 - μ „μ—­ μŠ€μ½”ν”„ : 전역에 μ„ μ–Έλ˜μ–΄ μžˆμ–΄ μ–΄λŠ κ³³μ—μ„œλ“  ν•΄λ‹Ή λ³€μˆ˜μ— μ ‘κ·Όν•  수 μžˆλŠ” 것 - ν•¨μˆ˜ μŠ€μ½”ν”„ : ν•΄λ‹Ή μ§€μ—­μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯ν•΄, 지역을 λ²—μ–΄λ‚œ κ³³μ—μ„œλŠ” μ ‘κ·Ό λΆˆκ°€ - 블둝 μŠ€μ½”ν”„ : 블둝 {}이 생성될 λ•Œλ§ˆλ‹€ μƒˆλ‘œμš΄ μŠ€μ½”ν”„κ°€ 생성(ES6) 2) ν΄λ‘œμ € : ν•¨μˆ˜κ°€ 또 λ‹€λ₯Έ ν•¨μˆ˜ 내뢀에 μ€‘μ²©λœ ν˜•νƒœ this 1) Java - ν˜„μž¬ 객체λ₯Ό μ°Έμ‘° 2) Javascript - javascriptλŠ” ν˜„μž¬ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλ₯Ό μ°Έμ‘°, ν•˜λ‚˜μ˜ 객체 - μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ μŠ€νƒμ΄ 쑴재 -> μŠ€νƒμ˜ 맨 μ•„λž« 뢀뢄에 λͺ¨λ“  λ™μž‘μ˜ μ‹œμž‘μ μΈ μ „μ—­ μ»¨ν…μŠ€νŠΈκ°€ μœ„μΉ˜ - μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ : λ™μž‘ 쀑인 μ‹€ν–‰ κ°€λŠ₯ν•œ μ½”λ“œμ˜ μ†Œμœ κΆŒ 3) μ‹€ν–‰ κ°€λŠ₯ν•œ μ½”λ“œ - μ „μ—­ μ½”λ“œ : Javasc..

[κ°œλ…] ν•¨μˆ˜, λ©”μ†Œλ“œ, 객체

ν•¨μˆ˜μ™€ λ©”μ†Œλ“œ 1) ν•¨μˆ˜ - Javascript λ‚΄μž₯ 객체인 Function μƒμ„±μžλ‘œ μƒμ„±λœ 객체 - ν•¨μˆ˜λŠ” κ°μ²΄μ΄λ―€λ‘œ ν”„λ‘œνΌν‹°μ™€ λ©”μ†Œλ“œλ₯Ό κ°€μ§ˆ 수 있음 - A instance of B : Aκ°€ B의 μΈμŠ€ν„΄μŠ€μΈμ§€ true/false λ°˜ν™˜ ν•¨μˆ˜μΈ example이 Function의 μΈμŠ€ν„΄μŠ€μž„μ„ μ•Œ 수 있음 - ν•¨μˆ˜ VS 객체 ν•¨μˆ˜λŠ” 호좜 κ°€λŠ₯, ν”„λ‘œν† νƒ€μž…(prototype) ν”„λ‘œνΌν‹°λ₯Ό 가짐 κ°μ²΄λŠ” 호좜 λΆˆκ°€λŠ₯ 2) λ©”μ†Œλ“œ - ν•¨μˆ˜κ°€ 객체의 ν”„λ‘œνΌν‹°(property)일 경우 - Javascriptμ—μ„œ κ°μ²΄λŠ” new ν•¨μˆ˜λͺ…()으둜 생성 -> μ—¬κΈ°μ„œ ν•¨μˆ˜λŠ” μƒμ„±μž μ—­ν• (ν•¨μˆ˜κ°€ μƒμ„±μž 역할을 ν•  경우 λŒ€λ¬Έμžλ‘œ μ‹œμž‘) function User() { } var user = new User(); 객체와 클래슀 1) J..