본문 바로가기
반응형

전체 글202

[Git] Git 자주쓰는 명령어 정리/ Git Command git remote -v : 원격저장소를 조금 더 자세하게 볼 수 있다. git remote add 이름 원격저장소 url : 원격저장소를 추가할 수 있다. git status : git 프로젝트의 상태를 확인할 수 있다. (변경되거나 삭제된 파일 확인) git add : 파일을Staged상태로 변경한다. git commit : stage영역에 있는 파일들을 저장한다. git pull : 원격저장소의 파일들을 로컬저장소로 가져온다. git push : commit내역들을 원격저장소에 저장한다. git clone : 로컬저장소에 아무것도 없을 때 원격저장소의 프로젝트를 내려받는 명령어 git log : 커밋 히스토리 조회 2020. 1. 27.
[JPA] spring boot gradle QueryDSL 설정하기 build.gradle 파일 plugins 부분에 빨간색안의 내용을 추가한다. dependencies 부분에 위와같이 추가한다. 위와같은 내용을 추가한다. build.gradle 을 Reimport한다. Reimport가 정상적으로 되었으면 compileQuerydsl을 더블클릭해주면 설정해준경로에 QDomain이 생성된다 2020. 1. 25.
[JPA] Spring boot JPA N+1 해결방법 1. fetch join : Collection 일때는 사용하지 못함 2. @BatchSize 어노테이션 이용 3. hibernate.dafault_batch_fetch_size 설정 위 세가지 방법으로 N+1 문제를 해결할 수 있다..! 2020. 1. 21.
[JPA] @Embeddable 사용시 주의사항 1. Equals() 와 hashcode() 메소드를 @Override 하여 구현 2. @Override 하여 구현할때 필드값으로 비교하는것이 아니라 getter를 이용하여 비교 why? 프록시객체에서는 필드값으로 조회하면 비교를 못하는 상황이 발생할 수 있음. 2020. 1. 19.
[네트워크] TCP/IP란 ? TCP/IP 란? - 네트워크의 대표적인 통신 프로토콜 - 대용량의 데이터를 상대방에게 정확하게 전송가능하며 받았는지 확인 할 수 있는 신뢰성 높은 프로토콜 - 4계층을 사용한다 TCP/IP 동작방식 1. 보내려는 측에서 데이터 캡슐화 > 애플리케이션 계층에서 사용자가 이용하려는 프로토콜을 정의한다 ex) FTP, HTTP, .... > 트랜스포트 계층에서는 애플리케이션 계층에서 받은 데이터를 조각낸 후 안내번호와 포트번호를 붙여 네트워크 계층에 전달 > 수신지 MAC주소를 추가하여 링크계층에 전달 2. 전송 3. 수신 측에서는 역다중화 (캡슐화의 반대순서로)하여 데이터를 받음. ※TIP : 프로토콜 헤더는 어디에서 시작, 어떻게 매핑, 어떻게 끝나는지 들어있기 때문에 중요 TCP / IP - 3 way.. 2020. 1. 19.
[spring boot] spring boot 상대경로 설정시 경로를 못찾는 오류 (AppData\Local\Temp\tomcat-docbase) 본인의 예상대로라면 realpath(프로젝트명) 와 저장시킬 폴더의 path 를 합쳐서 프로젝트폴더/static/image 라는 폴더에 이미지가 저장될줄 알았다. 그러나 알 수 없는 경로를 내뱉으며 지정된 경로를 찾을 수 없다는 오류를 띄웠다. 오류의 원인은 간단했다. 본인의 thymeleaf를 사용해왔기때문에 위의 파일구성을 보면 별도의 webapp 폴더를 구성하지 않았다. 아무런 설정도 건드리지 않은채로 src/main 아래에 webapp을 만들고 이미지를 저장시킬 폴더구조를 만들고 실행하게 된다면 정상적으로 작동하는것을 볼 수 있다. 2020. 1. 18.
[javascript] $( document ).ready() 순수 javascript 로 바꾸기 document.addEventListener("DOMContentLoaded", function(){ 여기에 실행할 내용 입력 }); 위와 같이 작성하면 jquery의 $( document ).ready()와 동일한 기능을한다. 개인적으로 jquery 대신 javascript로 구현하는게 어렵지 않을경우 javascript로만 구현하는걸 좋아하는편이라서 이렇게 사용한다. 2020. 1. 14.
[JPA] could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException: could not execute statement JPA에서 column에 한글을 입력할때 아래와 같은 오류가 발생하는 경우가있다. 위와같은오류가 발생할경우 보통 아래와 비슷한메세지도 같이 보일것이다. 이것은 Database가 생성될때, 혹은 생성하였을때 한글을 지원하지않는 인코딩속성으로 지정되서 발생되는 오류이다. 해결방법은 한글을 지원하는 인코딩속성으로 변경하거나 재생성하면된다. 데이터베이스의 인코딩속성을 utf8_general_ci로 바꾸어 생성한 후 다시 실행한다면 데이터가 정상적으로 들어가는것을 볼 수 있다. 2020. 1. 14.
[spring boot] MultipartFile file upload 화면을 구성하는 html html 소스는 별다른 설명없이 지나가도록 하겠습니다. 위의 이미지와 아래의 이미지를 합친것이 saveImage function 입니다. (편집할줄 몰라서 이렇게 넣습니다) 주석에서 보시는바와 같이 데이터들을 추가하고 추가된 데이터를 서버로 전송해줍니다. 서버에서는 title, category, files의 값들을 @RequestParam을 이용해서 받습니다. Service단에서는 필요한 정보를 받은후에 MultipartFile.transferTo() 메소드를 이용하여 원하시는 경로로 이동시키시면 끝입니다..!! 이 이미지를 추가하고 저장을 누르시면 정상적으로 이동된것을 보실 수 있습니다. 2020. 1. 13.
[javascript] selected value 가져오기 위와 같은 select가 있다고 할때 선택된 value나 안의 Text를 가져오고 싶다면 이런식으로 사용하면 된다. 문법에서 유추할 수 있듯 text는 안의 Text내용을 가져오는것이고 value는 선택된 value값을 가져오는것이다. 2020. 1. 13.
[Spring boot JPA] Error executing DDL 오류 엔티티를 2개를 선언을 하고 실행을 시키면 Board 와 Reply 테이블이 생성될것이라고 생각했다. 하지만 Error executing DDL 오류가 나면서 create table board {~~} sql문은 안 나가는것을 확인할 수 있다. 이유는 Board 엔티티의 좋아요개수를 표시하려고 만든 like column때문이었다. like는 데이터베이스의 예약어이기때문에 sql문이 오류가 나는것이었다. like 의 컬럼명을 예약어가 아닌것으로 바꾼 후 실행을 하면 정상적으로 생성되는것을 확인할 수 있다. 2020. 1. 6.
[spring boot]intellij gradle mariadb 연동 build.gradle 파일에 implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.4.1' 추가후 Reimport Gradle Project 클릭 application.properties 파일에 접속정보를 입력 여기까지 한 후 실행하면 접속후 member테이블이 정상적으로 생성되는것을 확인할 수 있다. 2020. 1. 6.