본문 바로가기
JPA, querydsl는 네이티브 쿼리를 보완할 수 있을까? 이전에 다녔던 회사에서 JPA와 querydsl을 주로 사용해 비즈니스 로직을 구현해 서비스를 제공해주었다. 물론 외주받아 처음에 수행해주었던 SI 회사에서는 jdbc를 사용해 네이티브 쿼리를 사용했지만 사수가 입사 후에 JPA와 querydsl을 사용해 리팩토링을 했다. 나 또한 지금까지도 네이티브 쿼리보다는 JPA, querydsl을 많이 차용했고 필요한 데이터를 추출할 때의 과정에서는 디비버 툴을 사용해 해당 데이터베이스의 쿼리문을 직접 작성하여 확인하고 이를 querydsl로 변형하여 코드를 구성했었다. 문득, 이 방법에 대해서 옳은 방향인가에 대해 깊은 고민을 하기 시작했고 각자의 장점과 단점을 파악하기로 마음 먹었다. 네이티브 쿼리 스프링에서부터 네이티브 쿼리는 jdbc나 mybatis 라이브.. 2024. 3. 21.
자바의 정석 - 객체지향 프로그래밍 6편 5편까지 진행했고 6편을 하겠다. 접근 제어자 우리가 자바에서 메소드나 클래스 옆에 붙여서 사용했다. 원래는 의미가 있지만 우리는 클래스에 대한 학습을 진행하고 있었으니 public으로 통일했었다. 접근 제어자를 통해서는 외부에서 멤버 또는 클래스를 접근하지 못하도록 제한한다. 총 4가지를 확인할 수 있고 private, default, protected, public으로 되어있다. 왼쪽부터 오른쪽 순서로 접근이 유해진다고 보면 된다. private은 동일 클래스 내에서만 접근이 가능하고 default는 같은 패키지 내에서만 접근이 가능, protected는 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근이 가능, public은 접근 권한이 전혀 없다. 캡슐화와 접근 제어자 접근 제어자를.. 2024. 2. 21.
자바의 정석 - 객체지향 프로그래밍 5편 1 ~ 4편부터 계속해서 이어진다. 참조변수 super super는 자식 클래스에서 부모 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조 변수이다. 거두절미하고 코드로 알아보겠다. public class Parent { int x = 10; } public class Child extends Parent { int x = 20; void method() { System.out.println(x); System.out.println(this.x); System.out.println(super.x); } } 지금의 예제처럼 자식 클래스와 부모 클래스의 멤버 변수명이 동일할 때, 구분할 방법이 필요해지는데 이럴 때 super를 사용한다. public class Child extends Parent { v.. 2024. 2. 20.
자바의 정석 - 객체지향 프로그래밍 4편 4편을 진행하기 전에 다음 문제를 해결하고 가보자. class Exercise { public static void change(String str) { str += "456"; } public static void main(String[] args) { String str = "ABC123"; System.out.println(str); change(str); System.out.println("After change:" + str); } } 다음에서 출력문을 어떻게 나올지 생각해보자. 본인이 ABC123, ABC123456을 생각했다면 클래스 메소드에 대해 다시 공부하는 것을 추천한다. 실제로 출력된 모습은 다음과 같다. 왜 이렇게 나올까? 클래스 메소드라는 이유로 모두 공유하고 있다라고 생각했을 것.. 2024. 2. 19.
[코딩테스트] 바탕화면 정리 https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 package programmers; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class 바탕화면정리 { public static void main(String[] args) { System.out.println(Arrays.toString(solution(new String[]{.. 2024. 2. 18.
[코딩테스트] 공원 산책 https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 package programmers; import java.util.Arrays; import java.util.Objects; public class 공원산책 { public static void main(String[] args) { System.out.println(Arrays.toString(solution(new String[]{"SOO","OOO","OOO"}, new Str.. 2024. 2. 18.