728x90

Server Programming/SpringBoot 8

Spring Boot - QueryDSL, JPQL, nativeQuery, Criteria

JPQL(Java Persistence Query Language) SQL을 추상화한 엔티티 객체를 조회하는 객체지향 쿼리 JPQL은 SQL을 추상화해서 특정 데이터베이스에 의존 X 예를들어 같은 SQL 함수라도 데이터베이스마다 사용 문법이 다른 것이 있는데,JPQL이 제공하는 표준화된 함수를 사용하면 선택한 방언에 따라 해당 데이터베이스에 맞춘 SQL 함수가 실행 결과 반환 함수 getResultList(리스트 반환), getSingleResult(단일 객체 반환) JPQL은 엔티티 객체를 대상으로 쿼리를 질의하고 SQL은 데이터베이스 테이블을 대상으로 쿼리를 질의한다. Member.class를 넘겨주고 getResultList() 메소드를 실행-> JPA는 JPQL을 SQL로 변환해서 데이터베이스 조..

Spring Boot - ORM, JPA, Spring data

ORM - DB에 많은 신경을쓰지 않고, OOP를 가능하게하는 프로그래밍 기법 JPA - Java ORM 기술에 대한 API 표준 명세(인터페이스) Hibernate - JPA를 사용하는 프레임워크 Spring Data JPA - JPA를 쉽게 사용하기 위해 스프링에서 제공하는 인터페이스 추상화 정도 Spring Data JPA -> JPA -> Hibernate -> Datasource(DB) 어플리케이션이 발전하면서 내부의 복잡성은 커짐. OOP는 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공. RDBMS는 데이터 중심으로 구조화, 집합적인 사고 필요. (추상화, 상속, 다형성 같은 개념이 없다). Object와 RDB의 패러다임 불일치. ->패..

Spring Boot - DTO, controller, service 연습

domain 하위에 5개의 Package 생성 entity repository(DAO) DTO controller service new > project Spring Initializr 선택 Project SDK : 8 java version : 8 spring Boot : 2.4.2 Dependency : JPA, Mysql, Spring Web,Lombok Lombok 자바에서 Model(DTO, VO, Domain) Object 를 만들때, 멤버필드(프로퍼티)에 대한 Getter/Setter, ToString과 멤버필드에 주입하는 생성자를 만드는 코드 등 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여 주는 라이브러리 [자바] 자주 사용되는 Lombok 어노테이션 | Engineering..

Spring Boot - Entity, Repository

JPA를 쉽게 사용하기 위해 스프링에서 제공하는 프레임워크 Main Keyword : Repository 사용자는 인터페이스, 메소드만 정의하면 Spring data가 이름을 분석하여 JPQL 실행 JpaRepository -> CRUD 기능을 제공하는 인터페이스해당 인터페이스를 상속받아 Spring data jpa 사용 public interface productRepository extends JPARepository, productRepositorySupport{ //CRUD Method….} ref : https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#preface 쿼리 메소드 기능 Spring Data는 메소드 이름에 있는 ..

Spring Boot - IoC, Bean, AOP 예제

Inversion of Control (IoC) ioc - 객체의 의존성을 역전시켜, 객체 간의 결합도를 줄이고 유연한 코드를 작성하게 하여 가독성 및 코드의 중복, 유지보수를 편하게 할 수 있게한다. di - 객체를 직접 생성하는 것이 아니라, 외부에서 생성한 후 주입을 시켜주는 방식 일반적으로 의존성에 대한 제어권은 객체 자기 자신이 갖지만, 첫번째 코드는 Sample이라는 클래스에서 Apple 객체를 불러오는 예제이다. 의존관계는 간단히 말해서 new라는 키워드를 통해 생성 첫번째 코드는 Apple 객체의 제어권이 Sample에게 있다는 의미, 두번째 예시는 Sample에게 있는게 아니라 SampleTest에게 있다는 것 이처럼 의존성을 역전시켜 제어권을 직접 갖지 않는 것을 IoC라고 하며, 의존..

AOP ,Transaction

AOP (Aspect Oriented Programming) 관점지향 프로그래밍이라고 불린다. 어떤 로직을 기준으로 핵심관점, 부가관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하는 의미 여러 곳에서 사용되는 중복되는 코드를 떼어내서 분리한다. -> 중복되는 코드 = aspect aspect로 모듈화 하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 취지로 사용 AOP 주요 개념 Aspect : 중복되는 코드(모듈화 한것), 주로 부가기능 Target : Aspect를 적용할 곳 (클래스, 메서드 etc..) Advice : 실직적인 부가기능을 담은 구현체 JoinPoint : Advice가 적용될 위치, 다양한 시점에 적용이 가능 PointCut : JoinPoint의 상세한 스펙을 정의..

Bean, DI, IoC 의 설명

Bean Spring IoC 컨테이너가 관리하는 자바 객체를 뜻한다. Spring Container에 의해 자바 객체가 만들어지게 되면 이 객체를 Spring은 Spring Bean이라 칭한다. 애플리케이션의 핵심을 이루는 객체들은 Beans라고 부른다. Bean은 스프링 Ioc 컨테이너에 의해서 인스턴스화되어 조립되거나 관리되는 객체다. 빈에 관한 설명이 이해가 안될 수 있다. 한줄로 요약 하자면 그냥 자바 객체라고 생각할 수도 있다. 하지만 더 쉽게 예를들어 설명하자면 다음과 같다. 간단하게 선풍기를 만든다고 예를들면 선풍기를 1대만 만드는게 아니라 100대를 만들어야 한다. 그러면 누군가는 프로펠러를 100개 만들고, 누군가는 프레임을 100개 만들고, 누군가는 모터를 100개를 만들어야한다. 그리..

SpringBoot 기초 이론

Spring Framework 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 Application Framework : 거대한 애플리케이션 개발 프레임워크 DI(loC) Framework : 의존성 주입 프레임워크 AOP Framework : 관점지향 프레임워크 Data Access Framework : 데이터 접근 프레임워크 Transaction management Framework : 트랜잭션 관리 프레임워크 MVC Framework : MVC(Model-View-Controller) 패턴 적용 프레임워크 Spring 동작 원리 (1) 사용자의 요청이 입력 Dispatcher Servlet을 통해 전달받아 Handler Mapping을 통해 해당하는 Controller 에게 Request Con..

728x90
반응형