JVM

JVM/JPA

[QueryDSL]like, contains 차이

서론 회사에서 자체프레임워크를 사용하다보니 기본으로 제공되는 like와 contains를 잘 사용할 일이 없었다. 그러다 최근에 사용할 일이 있어 like를 사용하게 되었는데, 원했던 어디든 포함이 되는 like가 진행되지 않아 찾아보게 되었다. 본론 둘 다 쿼리가 날라가는 것은 LIKE로 날라가지만 contains는 앞 뒤로 %를 자동으로 붙여주고, ex) %튀김% like는 입력한 그대로 날라간다. ex) 튀김 사용 예 contains : 앞, 중앙, 뒤 상관 없이 문자가 포함이 되는지 확인하고 싶을 때 like : 앞, 중앙, 뒤 원하는 곳에 포함이 되는지 확인하고 싶을 때 직접 %를 붙여서 사용

JVM/Spring

[SPRING] feign은 뭘까?

🤔 서론 다른 서버와 통신을 하기 위한 API 를 설계 및 개발을 하면서 알게 된 feign에 대해서 정리하기 위해 작성하게 되었다. 그 전까지는 spring에서 다른 서버를 호출해본 적이 없었기 때문에 어떻게 하는지에 대한 궁금증이 있었는데 이번 기회에 알게 될 수 있었다. 🤷‍♂️ feign은 그래서 뭔데! - Netflix에서 만든 HTTP client binder로서 기존 http client 작성을 쉽게 만들어주는 라이브러리이다. - interface를 작성하고 annotation을 붙여서 쉽게 사용할 수 있기 때문에, HTTP API를 균일하게 바인딩하여 복잡성을 줄여준다. - 이전에는 RestTemplate 방식과 WebClient 방식이 존재했지만 현재 스프링 커뮤니티에서는 RestTemp..

JVM/JPA

[QueryDSL] 표현식 정리

queryDSL을 작성할 때 자주 안 쓰는 친구들은 쓸 때마다 헷갈려서 공식사이트에서 그대로 가져와봤습니다. //Standard Alternative expr isNotNull expr is not(null) expr isNull expr is null expr eq "Ben" expr === "Ben" expr ne "Ben" expr !== "Ben" expr append "X" expr + "X" expr isEmpty expr is empty expr isNotEmpoty expr not empty // boolean left and right left && right left or right left || right expr not !expr // comparison expr lt 5 expr ..

JVM/Spring

[SPRING]@Transactional Annotation 알고 쓰자

- 첫 작성일 : 21년 3월 21일 velog 블로그 1. 서론 초반 @Transactional 어노테이션에 대해 자세히 알아보지 않고, 막연히 롤백때 사용한다고 하여 SQL C,U,D 를 할 때마다 메소드 위에 붙여서 사용하곤 하였다. 하지만, 내 코드를 보신 선임께서 단지 @Transactional 만 붙이면 롤백이 안되고, @Transactional(rollbackFor = Exception.class) 을 붙여야 된다고 알려주셨다. 여기에서 뭐 때문인지에 대해 호기심에 트랜잭션에 대해 찾아보다가 내가 생각했던 것 보다 더 많은 기능들이 존재한다는 것을 알고 정리해보려 한다. 2. 트랜잭션이 뭐지? 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산들을 의미한다. begin, c..

JVM/Java

[Java]예외(Exception)관련 정리

- 첫 작성일 : 3월 20일 velog 블로그 서론 트랜잭션에 대해 공부하다보니 예외를 빼놓을 수 없어서 한 번 정리한다. 예외(Exception) 란? 예외는 크게 두 종류로 나뉘게 된다. Checked Exception 와 Unchecked Exception 그리고 예외와 별개로 오류(Error)가 있다. 예외란 개발자가 로직을 잘못 짰거나 혹은 사용자가 잘못된 값을 넘겨 정상적인 프로그램 흐름에 벗어나는 행위를 말한다. 그래서 미리 예측을 하여 예외를 잡을 수 있다. 오류는 하드웨어에서 문제가 발생하는 경우도 있고, 완전 잘못된 로직을 짠 경우 등 시스템 레벨에서 발생하는 비정상적인 행위이기 때문에 이를 미리 예측해서 막을 수도 신경을 쓸 필요도 없다. Checked Exception / Unch..

JVM/JPA

[JPA] PostgreSQL @Lob 에러

- 첫 작성일 : 21년 2월 14일 velog 블로그 @Lob 이란? JPA 어노테이션 중 하나로 db 문자열을 길이제한 없이 text로 사용할 수 있도록 연결해주는 녀석입니다. 버그내용 PostgreSQL에서 @Lob을 사용하여 get으로 정보를 불러올 때 Large Objects in auto-commit mode 와 같은 에러가 발생하게 됩니다. 해결방법 @Lob 대신 @Column(columnDefinition="TEXT") 사용 2021-04-23 추가내용 kdhyo98.tistory.com/35 [PostgreSQL] CLOB타입과 TEXT타입 - JPA 🤸‍♂️서론 예전에 @Lob 에러 관련 글을 적은 적이 있다. 당시에는 postgresql에서 @Lob을 아예 사용할 수 없는 줄 알고 @..

JVM/Java

[Java]BeanUtils.copyProperties를 사용해보자

- 첫 작성일 : 21년 2월 11일 velog 블로그 BeanUtils.copyProperties ? 스프링에서 제공해주는 메소드로서 객체를 쉽고 간결하게 복사할 수 있게 해준다. 언제 사용하지? 예를들어 객체를 수정하기 위해 파라미터로 값을 받았을 때 필드가 많으면 많을 수록 setter의 횟수가 늘어나고 코드의 길이도 늘어나기 때문에 가독성과 소요시간이 떨어지게 됩니다. 이때 BeanUtils.copyProperties 메소드를 통해 한줄로 해결할 수 있습니다. 또한, 그대로 복사하지 않고 변경하지 않은 것들을 선택해서 원하는 것만 복사하고 싶을 때에도 사용하면 좋습니다. 사용방법 copyProperties(Object source, Object target) source - 원본 객체 target..

JVM/Java

[Java]String Format 사용법

- 첫 작성일 : 21년 1월 17일 velog 블로그 Stirng Format 문자열의 형식을 원하는대로 표현해주는 메소드로 유용하게 사용되고 있다. 표현가능한 데이터 타입 모든 인수 적용 가능(ex - stirng, int, Integer, Boolean ...) %b (인수가 null이면 false 아니면 true 반환 / Boolean) %h (인수가 null이면 null 아니면 16진수 반환 / Integer.toHexString) %s (인수가 null이면 null 아니면 문자열 반환 / toString()) 숫자 (char, Character, byte, Byte, short, Short, int, Integer) %c (char, byte, short ... 을 받아 유니코드로 반환) 정수..

Hyo Kim
'JVM' 카테고리의 글 목록 (8 Page)