개발/Java 10

우아한 형제들 QueryDsl사용법(블로그참조)

https://velog.io/@youngerjesus/%EC%9A%B0%EC%95%84%ED%95%9C-%ED%98%95%EC%A0%9C%EB%93%A4%EC%9D%98-Querydsl-%ED%99%9C%EC%9A%A9%EB%B2%95 우아한 형제들의 Querydsl 사용법 이 글은 "우아한테크콘서트2020 수십억건에서 Querydsl 사용하기" 와 발표자이신 이동욱님의 기술 블로그를 보고 작성한 글입니다. 모든 예제와 추가로 Querydsl 사용 문법은 https://github.com/Youngerjesus/Q velog.io

개발/Java 2022.11.16

JPA 장점과 단점

장점 - 영속성 컨텍스트가 1차캐시 역할을 해주는것도 있지만 서비스로직 실패시 롤백되는게 엄청난 장점임. 예상치 못한 상황에서 데이터가 오염되는 상황을 최대한 방지할수 있음 - 프로시저 수준의 복잡한 sql을 코드로 깔끔하게 정리 가능. 코드를 사용해 비즈니스 목적을 달성하고 객체지향적인 추상화가 가능하다는건 큰 장점이고 유지보수가 매우 간편해짐 - 단순쿼리로 여러개의 결과를 뽑아낸 후 서비스로직에서 가공이 가능해짐. db cpu의 부하가 극도로 낮아지고 메모리에서 데이터 가공이 가능해서 성능 이점과 코드의 재사용성이 매우 높아짐 단점 - jpa의 기본 페치 방법인 지연로딩으로 인하여 러닝커브가 높아지고 다수 테이블 조인시 신경써야할게 많음. fetch join이나 fetch size옵션을 통해 적절한 ..

개발/Java 2021.08.04

Log4j 특정 로그 표시하지 않게하기 (Filter 사용)

log4j level을 DEBUG로 사용중 파라미터의 경우 console에 표시가 되지 않게 하기위해 사용. 먼저 LogFilter.java 클래스 파일 생성 import org.apache.log4j.spi.Filter; import org.apache.log4j.spi.LoggingEvent; public class LogFilter extends Filter{ @Override public int decide(LoggingEvent event) { if(event.getRenderedMessage().indexOf("Parameters:") > -1) { //로우에 Parameters: 라는 값이 있으면 if문 적용 event.getLogger().log(event.getLevel(), ""); r..

개발/Java 2021.03.05

Exception처리시 트랜잭션처리와 Return값 받는 방법

만약 성공하면 "200"을 리턴받고 오류시 "502"를 리턴받되 트랜잭션이 걸린 서비스를 생성하고 싶다고 가정해보자 //SericeImpl @Override @Transactional(rollbackFor=Exception.class) public String checkService(Map params) { String result = "200"; try{ checkTest(params); } catch(Exception e) { result = "502"; throw new Exception(); } return result; } 위와같이 코드를 생성할 경우 익셉션이 발생하면서 트랜잭션은 발동이 되나 result값을 리턴할 수는 없다. 그렇다고해서 //SericeImpl @Override @Transa..

개발/Java 2020.06.03

Exception 고의 생성

개발하다보면 일부러 Exception을 발생시켜 개발한 예외 로직이 제대로 실행되는지 확인하는 경우가 많습니다. 그중 제가 자주 사용하는 고의 Exception방법 두가지 ***첫번쨰 throw new Exception(); //익셉션 발생 위의 경우 return부분이 오류라인으로 표시되어 return처리 부분 로직까지 테스트시는 어려움이 있습니다. ***두번쨰 int i = 10/0; //익셉션 발생 int 형 숫자의 경우 0으로 나눌경우 익셉션이 발생하며 return처리까지 로직을 꾸며서 테스트가 가능합니다.

개발/Java 2020.06.02

JSON데이터가 배열로 넘어온경우 파싱

Response받은 JSON데이터가 배열일경우 JAVA에서 파싱하는 방법입니다. *기본적으로 json 라이브러리는 있어야합니다. Response Data { "statusCode": "200", "statusMessage": "Success", "data": [ { "enterpriseCode": "VPS", "corporationCode": "1001", "orderCount": 4, "orderChannel": "YOGIYO", "storeCode": "1105000" }, { "enterpriseCode": "VPS", "corporationCode": "1001", "orderCount": 4, "orderChannel": "BAEMIN", "storeCode": "1105000" } ] } 여기..

개발/Java 2019.12.17