공부30 # List # List 타입과 활용 List는 프로그래밍에서 필수적인 타입이다.보통 Spring에서는 DB에서 단일 튜플이 아닌, 여러 튜플을 다룰 일이 많다보니List타입은 Entity와 DTO 객체들을 감싸는데 주로 사용된다.실제 프로젝트를 진행하며, List관련 여러 사용법을 공부하며 알게된 지식을 작성하려한다. 1.List과 ArrayList의 차이 보통 List 종류를 선언할때, 타입을 ArrayList 형식이 아닌 List 타입으로 선언한다.왜 그럴까? 차이는 다음과 같다.ArrayList과 List을 변수 선언 시 사용하는 것의 차이점은"구체적인 구현체를 명시하느냐와 추상화 수준에서 작업하느냐"다. 이게 무슨 말일까? 예시를 보자 1. ArrayListArrayList arrayList = new ArrayList();ar.. 2024. 11. 29. # 객체 # 프록시 객체 이전에 트랜잭션 관련하여 프록시 객체라는 단어를 사용했었다.트랜잭션중에는 세부적인 DB의 변동을 트랜잭션이 끝난 뒤에 해야하며, Lazy Loading이 필요하므로,기본 Entity 객체로는 다음과 같은 기능을 사용할 수 없다.그렇기 때문에 @Transactional 이 붙은 메서드는 객체 생성 시 일반 객체가 아닌,프록시 Entity 객체를 생성한다. 프록시 객체는 일반 객체와는 다른 특수한 기능을 수행하는 객체라고 보면 된다.위에서 언급했듯이, 주요기능은 DB 커밋, 롤백, Lazy Loading이 필요할 때 트랜잭션 경계를 설정해,안전한 데이터 처리 환경을 제공한다. 그 외의, 프록시 객체가 사용되는 경우는 다양하며,프록시 객체의 기능도 목적에 따라 아주 다양하다.트랜잭션외에도 자주 사용하는 경우를.. 2024. 11. 28. #JPA 2# JpaRepository와 JPQL Service에서 DB에 하는 명령을 수행하기 위해선, Repository 인터페이스에 의존해야한다.기본적인 인터페이스의 형태는 이렇다.public interface GeoRepository extends JpaRepository {} JpaRepository 인터페이스를 상속받아 Repository를 구성한다.고유기능은 id를 기준으로 검색을하기 때문에 제네릭에 Long 타입의 id와, Entity타입이 들어간다.보통은 인터페이스나 클래스에 제네릭을 쓴다면, 객체의 클래스 변수나, 메소드에 타입을 유연하게 지정하는데 쓰이나,JpaRepository는 특별히 자동 구현체를 통해 구현체(Hibernate)가 생성되므로,상속받을 인터페이스의 세부 메서드 타입을 결정한다.또한 상속받기 때문에 JpaReposi.. 2024. 11. 28. #JPA 1# JPA와 트랜잭션 Spring으로 서비스를 구성하다보면,Spring과 DB Server는 매우 밀접하기 때문에, Spring에서 DB를 능숙하게 다루는 방법을 고민할 것이다. Spring에서는 DB를 다루는 표준 API가 존재한다. 이는 JPA라고 한다.JPA는 뭐고 어떤 기능을 제공하는거지? 라는 궁금증이 생길 것이다.먼저 정의를 알아보도록하자. JPA (Java Persistence API)정의:JPA는 Java 애플리케이션에서 관계형 데이터베이스를 매핑하고 관리하기 위한 표준 API입니다.객체와 테이블 간의 매핑을 제공하며, SQL 대신 객체지향적인 방법으로 데이터를 관리할 수 있게 해줍니다.대표적인 구현체로는 Hibernate, EclipseLink 등이 있습니다. 주요 특징:엔티티(Entity): 데이터베이스.. 2024. 11. 26. 이전 1 2 3 4 5 6 7 8 다음