전체 글

피곤한투티의 개발/일상 블로그
김영한 스프링 강의/스프링 ORM 표준 JAP 프로그래밍 - 기본편

3. 엔티티 매핑

객체와 테이블 매핑@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을 독립적으로 개발할 수 ..

김영한 스프링 강의/스프링 ORM 표준 JAP 프로그래밍 - 기본편

테스트 입니다.

토글 제목이 글은 토글 테스트입니다.토글 안에서 코드를 작성 합니다.토글 제목 2이 글은 nested 토글 테스트 입니다.토글의 토글 안에서 코드를 작성합니다.여전히 토글 안 입니다.토글 밖 입니다. Uploaded by N2T(23.06.07 01:50)에 작성된 글 입니다.

김영한 스프링 강의/스프링 ORM 표준 JAP 프로그래밍 - 기본편

2. JPA 시작

# 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 ..

김영한 스프링 강의/스프링 ORM 표준 JAP 프로그래밍 - 기본편

1. JPA 소개

# 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..

김영한 스프링 강의/스프링 MVC 1편

7. 스프링 MVC - 웹 페이지 만들기

요구사항 분석상품 도메인 모델상품 ID상품명가격수량 상품 관리 기능상품 목록상품 상세상품 등록상품 수정 서비스 제공 흐름디자이너: 요구사항에 맞도록 디자인하고, 디자인 결과물을 웹 퍼블레셔에게 넘겨준다.웹 퍼블리셔: 디자이너에서 받은 디자인을 기반으로 HTML, CSS를 만들어 개발자에게 제공한다.백엔드 개발자: 디자이너, 웹 퍼블리셔를 통해서 HTML 화면이 나오기 전까지 시스템을 설계하고, 핵심 비즈니스 모델을 개발한다. 이후 HTML이 나오면 이 HTML을 뷰 템플릿으로 변환해서 동적으로 화면과 웹 화면의 흐름을 제어한다. 상품 도메인 개발@Getter @Setter public class Item { private Long id; private String itemName; private Inte..

김영한 스프링 강의/스프링 MVC 1편

6.스프링 MVC - 기본 기능

로깅 간단하게 알아보기로깅 라이브러리스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-logging)이 포함된다.SLF4J: 인터페이스Logback, Log4J, Log4J2: SLF4J인터페이스 구현체 로그 선언private Logger log = LoggerFactory.getLogger(getClass());@Slf4j 롬복 로깅 사용log.trace("trace log={}", name); log.debug("debug log={}", name); log.info("info log={}", name); log.warn("warn log={}", name); log.error("error log={}", name);개발 환경, 배포 환경 등 여러 각각..

김영한 스프링 강의/스프링 MVC 1편

5. 스프링 MVC - 구조 이해

스프링 MVC 전체 구조직접 만든 프레임워크 ⇒ 스프리 MVC 비교FrontController ⇒ DispatcherServlethandlerMappingMap ⇒ HandlerMappingMyHandlerAdapter ⇒ HandlerAdapterModelView ⇒ ModelAndViewviewResolver ⇒ ViewResolverMyView ⇒ View DispatcherServlet 서블릿 등록DispatcherServlet도 부모 클래스에서 HttpServlet을 상속 받아서 사용하고, 서브릿으로 동작한다.스프링 부트는 DispatcherServlet을 서블릿으로 자동으로 등록하면서 모든 경로(urlPatterns=”/”)에 대해서 매핑한다. 동작 순서핸들러 조회: 핸들러 매핑을 통해 요청 ..

김영한 스프링 강의/스프링 MVC 1편

4. MVC 프레임워크 만들기

프론트 컨트롤러 패턴프론트 컨트롤러 서블릿 하나로 클라이언트 요청을 받는다.이후 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출한다.입구가 하나이기 때문에 공통 부분을 프론트 컨트롤러에서 처리할 수 있다.프론트 컨트롤러 이외의 다른 컨트롤러는 서블릿을 사용할 필요가 없다. 프론트 컨트롤러 도입 - v1public interface ControllerV1 { void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException; }@WebServlet(urlPatterns = "/front-controller/v1/*") public class FrontControllerServ..

김영한 스프링 강의/스프링 MVC 1편

3. 서블릿, JSP, MVC 패턴

서블릿만으로 HTML 생성모든 회원 조회 서블릿 작성@WebServlet(urlPatterns = "/servlet/members") public class MemberListServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List members = memberRepository.findAll(); response.setContentTy..

김영한 스프링 강의/스프링 MVC 1편

2. 서블릿

서블릿 등록 방법@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 {..

피곤한투티
ThuThi's Tistory