스프링 27

[Spring] JPA의 이해(JPA, Hibernate)

순서 1. JPA란 2. ORM이란 3. JPA 구조 - 하이버네이트 4. JPA 와 Spring data JPA 의 차이 5. Spring Data JPA 키워드 1. JPA란 JPA 는 Java Persistence(영속성) API 입니다. 여기서 Persistence란, 사전적 의미로 "영속성"을 의미하며, 데이터가 (없어지지 않고 오랜동안) 지속됨을 의미합니다. 램은 휘발성 데이터를 저장 - 컴퓨터가 꺼지면 사라짐 데이터가 날라가지 않도록 -> 하드디스크에 저장하면 안 사라짐 => 이게 퍼시스턴스(영구히 기록) 다시 JPA란, Java Persitance API 는 "자바에서 데이터를 영구히 기록할 수 있는(DBMS에) 환경을 제공하는 API" 라고 말할 수 있다. 여기서 API는, 애플리케이션(..

Spring/Spring Boot 2021.12.29

[Spring] 웹의 인증,인가 / 쿠키와 세션

웹의 인증 및 인가 인증(Authentication) : 사용자 신원을 확인하는 행위 (로그인, 아이디 패스워드) 인가(Authorization) : 사용자 권한을 확인하는 행위 (역할에 따른 접근권한, ex) 카페 등급) 인증: 회사 출입을 위한 출입증 확인 혹은 생체정보 (지문, 홍채) 인식 인가: 회사 건물 내 접근 권한 관리 방문자 → 회의실만 접근 가능 직원 → 회의실, 사무실 접근 가능 관리자 → 회의실, 사무실, 서버실, 물품보관실 접근 가능 쿠키와 세션 쿠키나 세션이 필요한 이유 HTTP는 상태를 저장하지않습니다, ('Stateless' 하다) 이게 무슨 말이나면, 아래의 그림에서 클라이언트의 요청(Request)을 서버에 보낸 후 응답(Response)를 받을 때까지가 하나의 HTTP 요..

Spring/Spring Boot 2021.12.03

[Spring] JPA FindAll<Entity> to convert DTO (ModelMapper)

Spring에서는 DTO를 이용해서 사용자에게 Request를 받고, Response를 보냄으로써, 데이터를 보호한다. Request를 DTO로 받는방법은 정말 많고, 자료도 많지만 Response를 DTO로 변환하는 방법은 잘 나오지 않아 정리해 보고자 한다. 1) 가장 쉬운 방법 가장 쉬운 방법은 역시 노가다다. Response로 보내기 위한 엔티티 정보를 불러오와서, Setter로 하나씩 DTO 클래스에 입력해주면된다. 하지만 이건 쿨하지 못하다. 2) ModelMapper 이 글의 주된 목표이다. ModelMapper를 사용하면, 비교적 쿨하게, 한방에, 센스있는 converting이 가능하다. ModelMapper란 ModelMapper의 목표는 특정 사용 사례를 처리하기 위한 간단하고 리팩토링..

Spring/Spring Boot 2021.12.03

@NoArgsConstructor 과 @RequiredArgsConstructor

@NoArgsConstructor @NoArgsConstructor 어노테이션은 lombok 의 기능 중 하나이다. Getter, Setter 와 함께 당연시(?)되게 쓰이는 코드를 줄이기위해 쓰이는 어노테이션으로 알고있다. 주요기능은, 기본 생성자의 생성이다. 파라미터가 없는 생성자를 만든다. 초기 값이 필요한 final 필드가 있을 경우, 컴파일 에러 @NoArgsConstructor(force=true) 를 하면, 컴파일 에러를 내지 않고 0 / false / null 로 초기화 @RequiredArgsConstructor @RequiredArgsConstructor 어노테이션은 의존성 주입을 위해 사용한다. 주요 기능은 @NonNull이나 final이 붙은 필드에 대한 생성자를 생성한다. 두 어노..

Spring/Spring Boot 2021.11.25

@RequestBody - ajax Json 요청을 객체 응답으로 자동 변환

컨트롤러에서 데이터를 전달해 인자에 할당하는 대표적인 방법으로는 @RequestBody 와 @RequestParam이 있다. @RequestParam @RequestParam 어노테이션은 단일 파라미터를 전달 받을때 사용하는 어노테이션 입니다. 넘어온 값의 키로 값을 불러오는 어노테이션 입니다. @GetMapping("/save") public Word createWord(@RequestParam String content){ Word new_word = new Word(content); return wordrepository.save(new_word); } RequestParam을 사용하면 단일 변수값을 받아오기 때문에 받아오는 데이터가 많아지기도 하고 return을 해줄 때도 다시 Json 객체로 변..

Spring/Spring Boot 2021.11.24

[@RequestParam Vs @PathVariable] - Spring URL 파라미터 값 받아오기

스프링 컨트롤러에서는 URL 파라미터값을 받아오는 2가지 방법이 있다. 이건 URL 파라미터를 어떤 방식으로 넘겨주는냐에 따라 혼합적으로 사용해주면 될 것 같다. URL에 파리미터값을 전달하는 2가지 경우 Case 1 ) http://xxx.x.x?index=1&page=2 Case 2 ) http://xxxx.x.x/index/1 첫번째 URL의 경우 파라미터 값과 이름을 같이 전달하는 방식으로 @RequestParam을 사용한다. 두번째 방식 URL에 변수값을 포함해서 넘겨주는 방식으로 Rest API에서 값을 호출하는 경우 주로 많이 사용되며 @PathVariable 을 사용한다. | @RequestParam이란? @GetMapping("getDriver") public String viewName..

Spring/Spring Boot 2021.11.23

[Spring] JPA Auditting 과 TimeStamp Class (createAt, UpdateAt 자동 기록)

Spring이든 뭐든 프로젝트를 하다보면, 테이블의 생성기간과, 수정시간이 필요할 때가 있다. 오늘은 이 테이블에 생성, 수정시간을 기록할 수 있는 컬럼을 효율적으로 작성하는 법에 대해 공부해보자 단순하게 시간을 기록하는 컬럼을 각 테이블(Domain)에 추가해 줘도 되지만, 이렇게 하면 코드의 중복이 생긴다. 그렇다면, JAVA를 JAVA스럽게 사용하기위해서, 상속을 생각해보자 추상 클래스를 만들고 그 안에 멤버변수를 필요한 테이블에 컬럼을 받을 수 있지않을까????? SPring에서는 이러한 기능을 JPA Auditing 이라고 한다!!@ JPA Auditing 이란 Auddit 이란 = 감시하다, 감사하다 --------- > 즉, 나는 계속해소 탐지하다로 이해를 하려한다. Java에서 ORM 기술..

Spring/Spring Boot 2021.11.22
반응형