SpringBoot
-
다양한 연관관계 매핑김영한(인프런 강의)/자바 ORM 표준 JPA 프로그래밍 2020. 10. 19. 12:04
연관관계 매핑 시 중요한 3가지 1. 다중성 1) 다대일 - @ManyToOne 2) 일대다 - @OneToMany 3) 일대일 - @OneToOne 4) 다대다 - @ManyToMany 5) 다대일의 반대는 일대다, 일대일의 반대는 일대일, 다대다의 반대는 다대다처럼 대칭을 이룬다. 2. 단방향, 양방향 1) 테이블 - 외래 키 하나로 양쪽 조인 가능 - 사실 방향이라는 개념이 없음 2) 객체 - 참조용 필드가 있는 쪽으로만 참조 가능 - 한쪽만 참조하면 단방향 - 양쪽이 서로 참조하면 양방향 3. 연관관계의 주인 1) 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 2) 객체 양방향 관계는 A->B, B->A 처럼 참조가 2개라 둘 중 테이블의 외래키를 관리할 곳을 지정해야함 4) 연관관계의 주..
-
연관관계 매핑 기초 - 단방향 연관관계김영한(인프런 강의)/자바 ORM 표준 JPA 프로그래밍 2020. 10. 7. 13:19
연관관계를 왜 만드는가? 객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다. – 조영호(객체지향의 사실과 오해) 예상 시나리오 1) 회원과 팀이 있다. 2) 회원은 하나의 팀에만 소속될 수 있다. 3) 회원과 팀은 다대일 관계다. 연관관계 없는 객체 모델링 1. 연관관계(연관관계 없음) 2. 특징 1) 객체를 테이블에 맞추어 모델링을 해야 한다. - 참조 대신에 외래 키를 그대로 사용 @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @Column(name = "TEAM_ID") private Long teamId; Getter()..
-
JPA은무엇인가?김영한(인프런 강의)/자바 ORM 표준 JPA 프로그래밍 2020. 9. 28. 12:11
SQL중심의 개발의 문제점 1. CRUD같은 지루한 방식의 연속과 SQL에 의존적인 개발 1) 아래의 코드를 보게 된다면 데이터를 저장한 코드를 가지고 CRUD중심적인 개발 2) 조회 parameter와 결과값을 객체에 저장 public class Member { private String memberId; private String name; ... } INSERT INTO MEMBER(MEMBER_ID, NAME, TEL) VALUES SELECT MEMBER_ID, NAME, TEL FROM MEMBER M UPDATE MEMBER SET … TEL = ? 2. SQL위주의 개발을 하게 된다면 객체지향프로그래밍 개발을 하기 어렵다. 객체지향프로그래밍은? 추상화, 캡슐화, 정보은닉, 상속, 다형성 등..
-
HTTP 요청 매핑하기 - URI 패턴 매핑백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 25. 18:19
요청 식별자로 매핑하기 @requestMapping은 다음의 패턴을 지원 ? : 한글자 /author/??? -> /authour/123 * : 여러글자 /author/* -> /author/jinSeok ** : 여러패스 /author/** -> /author/jinSeok/book @RestController public class SampleController2 { @GetMapping({"/hello", "/hi"}) @ResponseBody public String hello() { return "hello"; } @GetMapping({"/hello?"}) @ResponseBody public String hello2() { return "hello"; } @GetMapping({"/hello..
-
HTTP 메시지 컨버터 : XML백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 19. 15:27
OXM(Object-XML Mapper) 라이브러리 중에 스프링이 지원하는 의존성 추가 JacksonXML JAXB 스프링 부트를 사용하는 경우 기본으로 XML 의존성 추가해주지 않기 때문에 아래와같이 의존성을 추가해 준다. javax.xml.bind jaxb-api org.glassfish.jaxb jaxb-runtime org.springframework spring-oxm ${spring-framework.version} 예제 package kr.co.study; import static org.springframework.test.web.client.match.MockRestRequestMatchers.jsonPath; import static org.springframework.test.web...
-
HTTP 메시지 컨버터백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 7. 22:05
영문 설명 docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurer.html#extendMessageConverters-java.util.List- docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurer.html#configureMessageConverters-java.util.List- HTTP 메시지 컨버터 요청 본문에서 메시지를 읽어들이거나(@RequestBody), 응답 ..
-
리소스 핸들러백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 7. 12:01
리소스 핸들러란? 이미지, 자바스크립트, CSS, HTML 파일과 같은 정적인 리소스를 처리하는 핸들러 디폴트(Default) 서블릿 서블릿 컨테이너가 기본으로 제공하는 서블릿으로 정적인 리소스를 처리할 때 사용 한다. tomcat.apache.org/tomcat-9.0-doc/default-servlet.html 스프링 MVC 리소스 핸들러 맵핑 등록 스프링은 정적인 리소스(디폴트 서블릿)들의 요청을 위임해서 처리한다. 가장 낮은 우선 순위로 등록 다른 핸들러 매핑이 "/" 이하 요청을 처리하도록 허용 최종적으로 리소스 핸들러가 처리하도록 tomcat.apache.org/tomcat-9.0-doc/default-servlet.html 리소스 핸들러 설정 어떤 요청패턴을 지원할 것인가 어디서 리소스를 찾..
-
WebMvcConfigurer 설정 - 포메터 설정백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 1. 21:17
Fometter Controller에서 URL에 값을 같이 보낼 때 문자열을 객체로 매핑해주는 역할을 하는 기능이다. Formatter에는 Printer와 Parser을 상속 받아 사용한다. Printer 해당 객체를 (Locale 정보를 참고하여) 문자열로 어떻게 출력할 것인가 Parser 어떤 문자열을(Locale 정보를 참고하여) 객체로 어떻게 변환할 것인가 기본 구성도 및 세팅 localhost:8080/hello?jinseok 으로 들어갈 시 @RestController public class SampleController { @GetMapping("/hello/{name}") public String hello(@PathVariable("name") Person person) { return ..