분류 전체보기
JPQL과 QueryDSL
JPA와 같은 ORM을 사용하면 시스템이 커질수록 쿼리가 복잡해지는 문제가 발생합니다. JPQL과 QueryDSL은 이러한 문제를 해결하기 위해 고안된 기법입니다. 💡 JPQL JPQL은 JPA의 일부로 Query를 Table이 아닌 객체(=엔티티) 기준으로 작성하는 객체지향 쿼리 언어라고 정의할 수 있습니다. JPQL은 객체를 기준으로 모든 것이 움직이기 때문에 개발할 때, Table에 매핑되는 객체가 반드시 존재해야하며 검색할 때도 Table이 아닌 객체를 대상으로 검색해야 합니다. 전반적인 특징에 대해 간단히 다시 정리한다면 다음과 같습니다. 1. SQL을 추상화한 JPA의 객체지향 쿼리 2. Table이 아닌 Entity를 대상으로 개발 3. Entity와 속성은 대소문자를 구분 (PERSON p..
JPA와 Hibernate 그리고 Spring Data JPA
💡 JPA(Java Persistent API)란? JPA는 자바 ORM(Object Relational Mapping) 기술에 대한 API 표준 명세를 뜻합니다. ORM 기술이란 말 그대로 객체와 관계형 데이터베이스를 매핑해주는 기술을 말합니다. 즉, 객체는 객체대로, 관계형 데이터베이스는 관계형 데이터베이스대로 설계하고, ORM 프레임워크가 중간에서 매핑을 해주는 것을 의미합니다. 이러한 JPA는 인터페이스의 모음 즉, 단순한 명세이기 때문에 구현이 없습니다. 그저 자바 애플리케이션에서 관계형 데이터베이스를 어떻게 사용할지를 정의하는 하나의 방법일 뿐입니다. 따라서 이러한 JPA의 구현체가 있어야 JPA를 사용할 수 있습니다. 💡 JPA를 사용하는 이유 SQL문이 아닌 메서드를 통해 DB를 조작할 수..
Lombok이란?
💡 Lombok Lombok(롬복)은 Java 라이브러리로, 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리입니다. 보통 Model 클래스나 Entity 같은 도메인 클래스 등에는 수많은 멤버변수가 있고 이에 대응되는 getter와 setter 그리고 toString() 메서드 그리고 때에 따라서는 멤버변수에 따른 여러 개의 생성자를 만들어주게 되는데, 거의 대부분 이클립스 같은 IDE의 힘만으로 생성한다고 하지만 이 역시도 번거로운 작업이 될 수 있습니다. 뿐만 아니라 코드 자체가 반복되는 메서드로 인해 매우 복잡해지게 됩니다. public class CategoryModel { private String id; private String..
Spring AOP(Aspect Oriented Programming)
💡 AOP(Aspect Oriented Programming)란? 기존에는 개발자 또는 운영자에게 필요한 코드를 비즈니스 로직 코드와 함께 작성하였습니다. public int total() { long start = System.currentTimeMillis(); int result = kor + eng + math + com; // 사용자 코드 부분(주 업무) try { Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } long end = System.currentTimeMillis(); String message = (end - start) + "ms..