스프링과 객체지향프로그래밍

스프링이란?

  • 자바 언어 기반의 프레임워크
  • 스프링 프레임워크 + 스프링 부트
      • 스프링 데이터, 스프링 시큐리티, 스프링 세션 등
    • 핵심 기술
      • 스프링 DI 컨테이너, AOP, 이벤트, 기타
    • 웹 기술
      • 스프링 MVC, 스프링 WebFlux
    • 데이터 접근 기술
      • JDBC, ORM, 트랜잭션
    • 테스트
      • 스프링 기반 테스트 지원

Continue reading

Servlet(서블릿)이란?

Servlet(서블릿)이란?

  • 서버에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스(표준 스펙)
  • 즉, 웹 서버에서 실행되는 작은 프로그램 단위
  • HTTP 프로토콜 기반에서 확장된 CGI 방식의 서버 프로그래밍
  • 서블릿 컨테이너에서 실행됨
  • 스레드에서 실행됨
  • HTTP 요청에 대해 특정 기능을 수행 + HTML 등의 형식으로 응답을 하는 프로그램

Continue reading

13. 스프링 데이터 JPA

스프링 데이터 JPA?

  • 스프링 프레임워크에서 JPA를 편하게 사용할 수 있도록 지원하는 프로젝트
  • 데이터 접근 계층(repository)를 인터페이스만 작성해도 런타임 시에 스프링 데이터 JPA가 구현 객체를 주입해줌
  • 즉, 구현 클래스를 직접 작성하지 않고 인터페이스만 작성해도 CRUD를 할 수 있음

Continue reading

12. 객체지향 쿼리 언어(3) - JPQL 조인

JPQL 조인

  • 내부 조인 (INNERT JOIN)
    •   String teamName = "teamA";
        String query = "SELECT m FROM Member m INNER JOIN m.team t "
                      + "WHERE t.name = :teamName";
        List<Member> members = em.createQuery(query, Member.class)
                              .setParameter("teamName", teamName)
                              .getResultList();
      
    • JPQL은 조인을 할때도 연관관계 필드를 사용함
      • m.team t
    •   String SQL = "SELECT M.ID, M.AGE ... FROM MEMBER M 
                      INNER JOIN TEAM T ON M.TEAM_ID = T.TEAM_ID
                      WHERE T.NAME = ?
                      "
        String JPQL = "select m FROM Member m INNER JOIN m.team t
                      WHERE t.name = ?"
      

Continue reading

10. 객체지향 쿼리 언어(1) - JPA에서 지원하는 엔티티 조회 방법

1. 객체지향 쿼리

  • JPA에서 엔티티를 조회하는 방법?
    • EntityManager.find() 메소드
    • 조건부 탐색을 하고싶을 땐? (e.g. 나이가 18세 이상인 회원을 조회)
      • 모든 엔티티를 조회 후에 조건을 적용해야 함
      • 데이터베이스 조회 시 필요한 내용을 최대한 거를 필요가 있음
  • JPQL(Java Persistence Query Language)
    • 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리
    • SQL을 추상화 해서 특정 데이터베이스 SQL에 의존하지 않음

Continue reading

9. 값 타입

JPA의 데이터 타입

  • 엔티티 타입
    • @Entity로 정의하는 객체
  • 값 타입
    • 기본값 타입(basic value type)
      • 자바 기본 타입(e.g. int, double)

      • 래퍼 클래스 (e.g. Integer)
      • String
    • 임베디드 타입(embedded type, 복합 값 타입)
      • JPA에서 정의해서 사용
    • 컬렉션 값 타입(collection value type)
      • JPA에서 정의해서 사용

Continue reading

Pagination


© 2020.02. by blupine