스프링 컨테이너 생성
Continue reading
Continue reading
스프링이란?
- 자바 언어 기반의 프레임워크
- 스프링 프레임워크 + 스프링 부트
- 스프링 데이터, 스프링 시큐리티, 스프링 세션 등
- 핵심 기술
- 스프링 DI 컨테이너, AOP, 이벤트, 기타
- 웹 기술
- 데이터 접근 기술
- 테스트
Continue reading
Servlet(서블릿)이란?
- 서버에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스(표준 스펙)
- 즉, 웹 서버에서 실행되는 작은 프로그램 단위
- HTTP 프로토콜 기반에서 확장된 CGI 방식의 서버 프로그래밍
- 서블릿 컨테이너에서 실행됨
- 스레드에서 실행됨
- HTTP 요청에 대해 특정 기능을 수행 + HTML 등의 형식으로 응답을 하는 프로그램
Continue reading
웹 서버(Web Server)?
- HTTP 기반으로 동작
- 정적 리소스 제공 (html, css, js, image 등)
- 기타 부가기능
- 클라이언트의 요청을 WAS에 전달, WAS의 처리 결과를 클라이언트에게 전달
- Apache, Nginx
Continue reading
스프링 데이터 JPA?
- 스프링 프레임워크에서 JPA를 편하게 사용할 수 있도록 지원하는 프로젝트
- 데이터 접근 계층(repository)를 인터페이스만 작성해도 런타임 시에 스프링 데이터 JPA가 구현 객체를 주입해줌
- 즉, 구현 클래스를 직접 작성하지 않고 인터페이스만 작성해도 CRUD를 할 수 있음
Continue reading
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은 조인을 할때도 연관관계 필드를 사용함
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
JPQL
- JPQL은 객체지향 쿼리 언어
- JPQL은 SQL을 추상화해서 특정 데이터베이스에 의존하지 않음
- JPQL은 결국 SQL로 변환됨
Continue reading