일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- springboot
- 코딩테스트
- Callback
- 동기
- querydsl
- ajax
- oracle
- 파이썬
- 자바
- 알고리즘
- 비동기
- logstash
- DB
- 백준
- kibana
- javascript
- 백엔드
- filebeat
- elk
- 스프링
- 스프링부트
- crud
- spring boot
- Spring
- 자바스크립트
- jQuery
- mybatis
- Java
- mysql
- JPA
- Today
- Total
목록전체 글 (77)
샘오리_개발노트
Maven을 사용하고 QueryDSL을 사용했다면 기존 아래와 같이 사용했던 apt-maven-plugin 설정이 있을 것이다. com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.querydsl.apt.jpa.JPAAnnotationProcessor 하지만 스프링 3 버전, Java 17버전 이후로부터 javax가 jakarta로 넘어가면서 위와 같은 Plugin은 deprecated 되고 말았다. 해서 이제는 아래와 같이 classifier를 직접 추가해줘야 하고 플러그인은 일절 사용하지 않는다. 아래 GitHub QueryDSL 공식페이지에 어떤 사용자가 질문한 내용에 대한 답변을 참고하였다. 즉, pom..
https://samori.tistory.com/58 [JAVA] JPA 활용법 -2 (QueryDSL 활용해보기) https://samori.tistory.com/52 [JAVA] JPA 활용법 -1 (QueryDSL 적용해보기) QueryDSL이란? Spring Boot Data JPA 는 쿼리문을 직접 짜지 않아도 함수명만 알맞게 적어주면 쿼리를 자동으로 짜주는 ORM으로 유명한데 사 samori.tistory.com 지난 글에 이어 오늘은 QueryDsl을 활용해서 기본적인 생성과 삭제를 진행해보려고 한다. 지난 글에도 언급했지만 QueryDSL은 INSERT를 자체적으로 제공하고 있지 않아서 EntityManager을 이용해야 한다. VIEW단에서 Controller에 Form을 통해 값을 전달..
https://samori.tistory.com/52 [JAVA] JPA 활용법 -1 (QueryDSL 적용해보기) QueryDSL이란? Spring Boot Data JPA 는 쿼리문을 직접 짜지 않아도 함수명만 알맞게 적어주면 쿼리를 자동으로 짜주는 ORM으로 유명한데 사실상 조금만 복잡하고 동적인 쿼리를 짜려고만 해도 JPQL등을 samori.tistory.com 지난 글에 이어 오늘은 QueryDsl을 활용해서 기본적인 조회와 수정을 진행해보려고 한다. 첫번 째로 구현하려고 하는 로직은 사용자가 입력한 값을 토대로 DB에 접속하여 일치하는 데이터를 조회하는 작업이다. JPA 기준으로 DTO를 설정해주고 예시 @Getter @Setter @Entity @Table(name = "테이블명") publ..
첫 코로나 확진 후기 많은 사람들이 착각하듯 나는 안걸릴줄 알았다. 나름 이유도 있었다. 방역을 철저히 지켰다고 자부하기 때문이다. 어딜갔다오면 항상 손을 씻고 결벽증 환자처럼 손소독제를 바르고 마스크도 어디 이상한 숨쉬기 편한 면마스크 말고 KF-80이상만 고집했다. 심지어 백신도 원래 안맞으려고 했다가 출장을 갈 수도 있다고 하여 불과 한달전에 2번이나 맞았는데 너무나도 허무하게 회사 사람들이 걸리면서 같이 걸린 것 같다. 뭐 아무튼 나라고 언제까지나 피할수는 없는 노릇이고 언젠가 한번을 걸릴 수도 있겠다 생각했는데 문제는 이번 코로나의 증상은 장난이 아니라는 것이다. 지금도 약빨로 겨우겨우 정신을 차려 생존신고를 하고 있다. 다른 사람은 어떤 증상인지 모르겠지만 최근 뉴스를 봤을 때도 이번 코로나의..
클라이언트는 서버에 다양한 요청을 날리게 되고 서버는 그러한 요청이 올바른 요청인지 확인을 거치고 응답을 하게 된다. 이러한 요청과 응답이 세트로 일어날 때 크게 두가지 방식으로 진행되는데 하나는 동기이고 하나는 비동기이다. 동기는 화면이 갱신된다는 특징이 있고 비동기는 화면 갱신 없이, 즉, 새로고침없이 응답을 페이지에 노출시킬 수 있다는 특징이 있다. 그리고 새로고침없이 응답을 view에 뿌려주는 작업을 해주는 대표적인 자바스크립트 라이브러리가 Ajax이다. Ajax 는 Asynchronous Javascript And Xml의 약자이다. JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술인 셈이다. 이 Ajax를 사용하는 이유는 단순히 view단에 뿌려줄 ..
오라클 DB와 MyBatis 를 사용하면서 검색 로직을 구현하려고 하면 어떻게 사용자가 입력한 값을 파라미터에 담아 매퍼에 넘기고 매퍼가 그걸 어떻게 받는지 어떻게 대소문자 구분 없이 (Case Insensitive) 값을 찾게 설정하는지 어떻게 파라미터를 포함하는 모든 값을 조회할 수 있게 % 를 넣을 수 있는지 요 3가지를 주로 고민하게 된다 오늘은 초보자들이 이러한 고민의 해답을 다른 블로그에서 찾기가 어려워서 이 글에서 쉽게 설명해볼까 한다. 먼저 컨트롤러에서 서비스로 제대로 호출했다고 가정하고 서비스는 아래와 같이 진행되어야 한다. public List findBySearchValue(파라미터 타입 파라미터 이름) { // Map으로 파라미터를 담아서 보내주는 방법 Map 참조변수 = new H..
보통 A 와 B 의 차이가 뭔지 묻게 되면 이 둘이 굉장히 다른 것이라는 착각을 할 수 있는데 애초에 프레임워크와 라이브러리는 상당히 유사합니다. 그래서인지 사람들이 쉽사리 그 차이점을 말하기가 어려운 것이죠. 오늘은 이 둘의 공통점은 무엇이고 차이점은 무엇인지 알아보겠습니다. 먼저 이 둘의 공통점은? 지구 어딘가 이타적이고 뛰어난 개발자들이 특정 목적을 위해 어렵게 구현해낸 로직을 어떠한 이유에서인지 배포한 것입니다. 이를 통해 전세계의 사람들이 스스로 로직을 짜지 않고 올려져있는 로직을 쉽게 받아서 사용할 수 있게 됐습니다. 예를 들어 요리를 못하는 자취생이 누군가 만들어놓은 밀키트를 통해 집에서 쉽게 손이 많이 가는 요리를 간편하게 해먹을 수 있는 것과 비슷합니다. 바로 이것이 프레임워크이와 라이브..
어떠한 정보를 DB에 저장하고 싶을 때 여러 가지 방법으로 중복체크를 할 수 있지만 그중 나름 간단하면서도 쉬운 방법은 form을 submit 할 시 중복체크를 하는 것이다. 그렇게 하기 위해서는 일단 자바스크립트 단에서 form의 값을 받아서 ajax를 통해 컨트롤러에 전달해야 한다. 아래는 샘플 코드이다. 필자는 기본 alert 대신 SweetAlert2라는 라이브러리를 사용했다. 1. 데이터 추가/수정 관련 자바스크립트 var 넣을 값을 담은 변수 = { 넣을 값 }; $.ajax({ type: "POST", url: "/URL 경로", data: 넣을 값을 담은 변수, success: function (data) { if (data === 1) { Swal.fire({ icon: 'success'..
QueryDSL이란? Spring Boot Data JPA 는 쿼리문을 직접 짜지 않아도 함수명만 알맞게 적어주면 쿼리를 자동으로 짜주는 ORM으로 유명한데 사실상 조금만 복잡하고 동적인 쿼리를 짜려고만 해도 JPQL등을 통해 쿼리를 직접 짜야하는 불상사가 발생하고 만다. 이러한 불편함을 줄여주고자 자바만 알아도 쿼리를 대신 짜주는 프레임워크가 있는데 이를 QueryDSL 이라고 부른다. 쿼리가 아니라 자바 기반이라서 컴파일 시점에 오류 발견이 가능하고, 자동완성도 지원하여 실무에서도 많이 사용되고 있다. 필자도 QueryDSL을 사용해보고 싶었지만 진입장벽이 있는 것 같아서 망설이다가 블로그에 글을 쓸 핑계로 공부를 해보고 알아낸 내용을 공유해보려고 한다. 1. 개발환경 맞추기 1-1 generate ..
인풋은 텍스트인데 숫자만 받고싶을 때 (복붙도 막아준다) 인풋은 숫자인데 클라이언트가 직접 입력하길 바라지 않을 때 disabled 처럼 보이는 readonly 를 만들고 싶을 때 영어만 사용가능하게 제한하고 싶을 때 (제출할 때 검사됨) 영어와 숫자까지만 가능하게 제한하고 싶을 때 (제출할 때 검사됨) 영문만 사용가능하게 제한하고 싶을 때 (입력할 때 검사됨) function engOnly() { var objEvent = event.srcElement; var numPattern = /^[A-Za-z]*$/; numPattern = objEvent.value.match(numPattern); if (numPattern == null) { Swal.fire({ text: "영문만 입력 가능합니다.", ..