객체와 테이블 매핑@EntityJPA가 관리하는 크래스를 Entity라고 하고, 이를 등록하는 에너테이션이다.기본 생성자(파라미터가 없는 public 또는 protected)가 필수다.final class, enum, interface, inner class에 사용 불가능하다.저장할 filed에 final 사용이 불가능하다. @Table엔티티와 매핑할 테이블을 지정한다.속성기능기본값name매핑한 테이블 이름엔티티 이름 사용catalogDB catalog 매핑schemaDB schema 매핑uniqueConstrains(DDL)DDL 생성 시에 유니크 제약 조건 생성데이터 베이스 스키마(DDL) 자동 생성애플리케이션 실행 시점에 DB TABLE을 자동으로 생성시켜준다.이로써 SQL을 독립적으로 개발할 수 ..
토글 제목이 글은 토글 테스트입니다.토글 안에서 코드를 작성 합니다.토글 제목 2이 글은 nested 토글 테스트 입니다.토글의 토글 안에서 코드를 작성합니다.여전히 토글 안 입니다.토글 밖 입니다. Uploaded by N2T(23.06.07 01:50)에 작성된 글 입니다.
# JPA 구동방식 EntityManagerFactory: 한 Application에 무조건 1개만 존재한다. EntityManager: 요청이 들어올 때 마다 하나씩 생성된다.(Transaction 단위로 생존하기 때문에 쓰레드간에 공유X) Transaction: 매 수정/조회 마다 Trsanaction사이에서 쿼리가 발생해야한다. # JPA 실습 ## 기본 세팅 public static void main(String[] args){ //SpringApplication.run(HellojpaJpa1Application.class, args); EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager ..
# Object와 RDB의 패러다임 불일치 ## 1. 상속 Album을 조회하려면? 각각의 테이블에 따른 조인 SQL 쿼리 작성, 각각 객체 생성… → 개발 코드보다 SQL코드가 더 커지게 된다. 자바 컬렉션에서 조회하려면? list.add(album); Album album = list.get(album); Item item = list.get(albumId); → 매우 간단하다. 그럼, 자바의 컬렉션처럼 쓸 수 없을까..? ## 2. 연관관계 테이블에 맞춰서 모델링 할 경우 class Member { String id; Long teamId; Sring username; } class Team { Long id; String name; } 객체지향 다운 모델링 할 경우 class Member { St..
요구사항 분석상품 도메인 모델상품 ID상품명가격수량 상품 관리 기능상품 목록상품 상세상품 등록상품 수정 서비스 제공 흐름디자이너: 요구사항에 맞도록 디자인하고, 디자인 결과물을 웹 퍼블레셔에게 넘겨준다.웹 퍼블리셔: 디자이너에서 받은 디자인을 기반으로 HTML, CSS를 만들어 개발자에게 제공한다.백엔드 개발자: 디자이너, 웹 퍼블리셔를 통해서 HTML 화면이 나오기 전까지 시스템을 설계하고, 핵심 비즈니스 모델을 개발한다. 이후 HTML이 나오면 이 HTML을 뷰 템플릿으로 변환해서 동적으로 화면과 웹 화면의 흐름을 제어한다. 상품 도메인 개발@Getter @Setter public class Item { private Long id; private String itemName; private Inte..
프론트 컨트롤러 패턴프론트 컨트롤러 서블릿 하나로 클라이언트 요청을 받는다.이후 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출한다.입구가 하나이기 때문에 공통 부분을 프론트 컨트롤러에서 처리할 수 있다.프론트 컨트롤러 이외의 다른 컨트롤러는 서블릿을 사용할 필요가 없다. 프론트 컨트롤러 도입 - v1public interface ControllerV1 { void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException; }@WebServlet(urlPatterns = "/front-controller/v1/*") public class FrontControllerServ..
서블릿 등록 방법@ServletComponentScan // 하위 패키지의 서블릿 자동 등록 @SpringBootApplication public class ServletApplication { }psvm main()이 있는 클래스 위에 @ServletComponentScan애너테이션을 추가하여 서블릿 자동 등록을 할 수 있다. @WebServlet(urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {..