전체 글

Server/Database

[Mybatis] #{}, ${}의 차이

주로 #{} 이렇게 되어있는데 ${} 이렇게 되어있는 부분도 있어서 검색해보았다. #{}와 ${}의 가장 큰 차이는 '', String이냐 아니냐의 차이인 것 같다. #{} String 형태로 주입되어 자동적으로 ''가 붙는 형태가 된다. WHERE user_idx = #{user_idx} 예를 들면 위의 경우 출력되는 쿼리문은 WHERE user_idx = '2'의 형태가 된다. 쿼리 주입을 예방할 수 있어서 보안 측면에서 유리하다. ${} String 형태가 아닌 주입되는 형태 그대로 출력된다. 쿼리 주입을 예방할 수 없어서 보안 측면에서 불리하다. 테이블 명, 칼럼 명을 전달할 때 사용한다. #{}의 경우 String 형태이기 때문에 ''가 붙어서 사용할 수 없다. 출처 https://logical..

Spring

[Spring] Controller에서 MultipartFile로 파일 받기 (다른 값들과 함께 받는 방법)

FE: Nuxt(Vue) FE에서 등록할 때 등록할 값들과 사진이 함께 전달됨 (multipart/form-data) (this.$axios.post( ('https://'), formData, { withCredentials: true, headers: { 'Content-Type': 'multipart/form-data', Authorization: // token } } ) ).then(res => { }).catch((error) => { window.alert(error.response.data.message) }) formData 만드는 법 const formData = new FormData() formData.append(key, value) ** 사진을 여러장 보낼 때 this.files..

Java

[Java] 리플렉션 공부

상황) SQL로 Select했을 때 name 칼럼에 클래스의 변수명이 들어있어서 DTO에 넣으려면 name 칼럼의 값을 확인하고 DTO와 매칭 시켜서 값을 담아주어야 한다. 과정) 하나하나 setter로 모두 담아주려고 보니 코드가 길어지고 가독성이 떨어지는 것 같아서 한번에 담을 수 없을까라는 생각에 리플렉션을 공부하게 되었다. 리플렉션이란? 리플렉션은 구체적인 클래스 타입을 알지 못해도, 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API 리플렉션을 언제 사용하는가? 정적 언어인 자바를 동적인 문제로 해결해야 하는 경우가 있는데 이때 리플렉션을 사용한다고 한다. 클래스의 변수 명을 비교한 뒤 값을 넣어주어야 하는 나의 상황도 이러한 상황이라고 할 수 있을 것 같다. 리플렉션은 ..

Spring

no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)

상황: MyBatis에서 sqlSessionTemplate.selectList하는 과정에서 발생 원인: resultType 에 해당하는 Vo에 @Getter, @Setter 를 추가하지 않아서

TIL

한성 무접점 키보드 Caps 키 고장

한영키 전환이 안돼서 찾아보니 초기화를 시켜주면 될 수도 있다고 해서 초기화를 해 보았다 모델명은 GK686B이고 초기화 방법은 아래와 같다 ESC + CTRL + INS + 우측 방향키 키보드의 네 귀퉁이(?)를 5초간 누르면 초기화가 된다. 초기화를 시켜준 후, 윈도우로 되어있는 키보드 설정을 맥으로 변경해 주면 되는데 FN + ALT 3초간 누르면 FN키 위에 불이 들어오면서 맥으로 설정이 변경된다.

IDE & Tool

[IntelliJ] 인텔리제이 단축키 정리

++ 계속 추가 예정, mac 기준 이전에 수정한 파일 목록 보기 cmd + e 해당하는 코드에 대한 메서드 분리 cmd + opt + m 클래스명 리팩토링 shift + F6 자동 정렬 해당부분 선택 후, cmd + alt + L 단어 포커스 opt + up키 단어 선택 opt + shift + right키 프로젝트 탭 열기/닫기 cmd + 1 Project DB Query Console 해당 DB 선택 후, cmd + shift + F10 Jump to Query Console 변수 할당 cmd + alt + v

Git

[error] husky - pre-commit hook exited with code 1 / Code style issues found in the above file(s). Forgot to run Prettier?

git commit을 하려는데 다음과 같은 에러가 발생했다. nuxt 프로젝트 생성할 때, Style에 전부 체크 했더니 husky라는 것이 같이 받아졌는데 저걸 따로 추가하지 않아서 에러가 발생했다. yarn add husky --save-dev 설치 후 아래의 에러가 발생했는데 Code style issues found in the above file(s). Forgot to run Prettier? 이 에러는 아래의 명령어로 해결할 수 있었다. npx prettier --write . commitlint 까지 받아졌는지 아래의 에러도 발생했는데 이 부분은 git commit convention을 따라주면 해결이 된다. (ex. git commit -m "feat: 식당 뽑기 기능 추가")

Server/Database

[MySQL] IntelliJ 테이블 복사

Target schema 지정 후 Import