728x90
반응형

전체 글 72

JPA Specification Interface

Specification은 쿼리를 보다 정교하게 작성할 수 있게 해주는 JPA 도구이다.DB 검색을 더 유연하게 다룰 수 있고, 복잡한 검색 조건도 처리할 수 있다.// 다음과 같은 함수로 Query를 이용한 Specification 객체를 얻을 수 있다.private Specification search(String keyWord) { return new Specification() { private static final long serialVersionUID = 1L; @Override public Predicate toPredicate(Root q, CriteriaQuery query, CriteriaBuilder cb) { /..

Spring 2024.08.02

Spring JPA의 Entity란?

Spring에서 Entity는 데이터베이스 테이블과 매핑되는 클래스를 의미한다.Entity class는 데이터베이스의 레코드 객체로 표현한다. 관련 개념Entity : 데이터베이스 테이블과 매핑되는 자바 클래스@Entity 어노테이션으로 정의한다.Field : Entity의 속성, 데이터베이스의 column과 매핑@Column 어노테이션을 사용하여 설정 가능속성String name : column의 이름을 설정boolean unique : 유일한 값인지 설정boolean nullable : null 값이 가능한지 설정int length : 최대 길이 설정Primary key : 각 엔티티 인스턴스를 고유하게 식별하는 Field이다.@Id 어노테이션으로 설정 가능Auto-generation : 기본 키의 ..

Spring 2024.08.01

JPA 쿼리 메서드

JPA가 제공하는 쿼리 메서드는 데이터베이스에 대한 쿼리를 작성할 필요 없이메서드 이름만으로 자동으로 쿼리를 생성할 수 있게 해준다. ex)findBy[PropertyName]And[PropertyName]findBy : 데이터베이스에서 데이터를 찾기 위한 메서드 이름 시작 부분[PropertyName] : 엔티티 클래스의 속성 이름을 기준으로 검색 조건을 설정 (대문자 소문자를 구분하지 않음)And : 여러 조건을 결합할 때 사용 findBy[PropertyName1]OrderBy[PropertyName2]Asc [PropertyName1] : 검색할 속성 이름 (이 속성으로 필터링 함)OrderBy : 결과를 정렬할 속성 이름을 명시[PropertyName2] : 정렬할 속성 이름 (정렬 기준 설정)..

Spring 2024.07.30

Spring Service, Controller의 차이점

@Service위 애너테이션은 서비스 계층의 컴포넌트를 정의한다.서비스 계층은 비즈니스 로직을 처리하고, 데이터 액세스 계층과 컴트롤러 계층을 중간에서 연결해준다.12345678910111213@Servicepublic class UserService {     @Autowired    private UserRepository userRepository;     public User findUserById(Long id) {        return userRepository.findById(id).orElse(null);    }     // 기타 비즈니스 로직} Colored by Color Scriptercs @Controller위 애너테이션은 웹 계층의 컴포넌트를 정의한다.http 요청을 처리하고..

Spring 2024.07.30

Java Package와 Directory의 차이점

1. Packagepackage는 java 언어에서 클래스를 그룹화하고 논리적으로 묶는데 사용되는 개념이다.코드의 논리적 구조를 정의하고, class, interface, enum 등을 그룹화한다.namespace로 클래스의 이름 충돌을 방지한다. 아래와 같이 상단에 package를 선언해줄 수 있다.123456package com.example.myapp; public class MyClass {    // 클래스 내용} cs 2. Package와 Directory의 관계java 소스 파일에서 정의된 package는 파일 시스템의 디렉토리 구조와 매팽된다. 예를 들어 package com.example.myapp;이 선언된 파일은src.main/java/com/example/myapp/ 에 저장되어야한..

Spring 2024.07.30

Thymeleaf란?

thymeleaf는 java 웹 애플리케이션에서 Html, Xml, JavaScript, CSS 등을 템플릿으로 사용하는 서버 사이드 템플릿 엔진이다.주로 Spring Framework와 함께 사용되고, 동적 웹페이지를 생성하는데 유용하다. Html 파일을 템플릿으로 사용하여 데이터를 동적으로 삽입하거나 페이지를 구성하게 해준다. 1. hello.html아래와 같이 "th:text"에서 name 변수를 템플릿에 삽입할 준비를 해준다.123456789!DOCTYPE html>html xmlns:th="http://www.thymeleaf.org">head>    title>Hello Thymeleaf/title>/head>body>    h1 th:text="'Hello, ' + ${name} + '!'"..

Spring 2024.07.30

Lombok이란?

Lombok은 Java 개발을 더 효율적으로 만들어주는 라이브러리이다.자주 반복되는 코드 패턴을 자동으로 만들어주는 다양한 기능을 제공한다. Class를 만들 때 Getter, Setter을 만드는 것이 반복적인 작업이 되는데@Getter, @Setter와 같은 어노테이션을 붙이면 Class에 맞는 Getter, Setter를 매서드를 자동으로 생성해준다. Lombok 사용법Lombok 설치 후아래와 같은 의존성 추가를 통해 lombok을 사용할 수 있다.1234567dependencies {     ...     compileOnly 'org.projectlombok:lombok'    annotationProcessor 'org.projectlombok:lombok'}Colored by Color S..

Spring 2024.07.29

JPA 사용하기

JPA는 ORM으로 SQL 언어를 사용하지 않고 java코드를 통해서 데이터베이스에 접근할 수 있게 해준다. 1. 의존성 추가 (build.gradle)아래 줄을 추가해줘서 jpa의 의존성을 추가한다.123456dependencies {      ...     implementation 'org.springframework.boot:spring-boot-starter-data-jpa' }Colored by Color Scriptercs 2. JPA 설정 추가 (application.yml)ddl-auto: update는 entity가 변경되거나 추가되면 그에 맞춰서 테이블을 수정, 생성하도록 한다.12345678910... # JPAspring:   ...   jpa:    hibernate:      ..

Spring 2024.07.29

H2 Database 사용하기

H2 Database는 주로 개발 및 테스트 환경에서 사용되는 데이터베이스이다.가볍고 메모리 내 또는 디스크 기반의 데이터베이스로 설정할 수 있다.SQL 표준을 지원하며, 빠르고 쉽게 설정할 수 있는 특성으로 인해 스트링 부트와 같은 자바 프레임워크와 함께 많이 상용된다. 1. 파일 생성터미널에서 아래와 같은 명령어로 파일을 생성한다.1touch db_dev.mv.dbcs 2. 의존성 추가 (build.gradle)h2 database 의존성을 추가해준다.1234567dependencies {    ...   runtimeOnly 'com.h2database:h2'} Colored by Color Scriptercs 3. 설정 추가 application.yml아래와 같이 h2 database에 대한 설정..

Spring 2024.07.29
728x90
반응형