Spring 91

[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

[Spring] 09. DI(의존성 주입) 과 IOC 컨테이너

이번에는 DI - 의존성 주입이라는 스프링의 주요한 기능에대해서 알아보자 후... 너무누무 어려워 DI - Dependence Injection 문자그래도, 의존성의 주입, 독립성의 주입이다. 스프링은 자바언어로 이루어진 프레임워크로써, 객체지향을 지향한다. 따라서 각 객체간의 종속성을 제거하기위해 DI를 사용한다, 그럼 DI란 뭘까? 내가 이해한 바로, 스프링은 메모리를 Bean 이라는 객체로 관리한다. 각 객체가 각각에 맞는 Bean객체(많은 종류의 빈객체가 존재함)임을 명시해주면(어노테이션) Spring은, 그 객체(Class)를 명시해준 Bean 객체(어떤 역할을 하는 객체인지) 파악해, Bean 객체로서 관리한다. 이러한 Bean 객체는 한 네이밍당 하나의 공간을 차지하고 있다. 그렇다면, 이렇..

Spring/Spring Boot 2021.11.12

[Spring] 08. Controller 만들기 - 스피링 API (Get, POST, PUT, DELETE)

이번엔 사용자 서비스의 제일 밀접한 부분, Controller 를 만들어 보자 MVC 패턴은 View 에서 사용자의 앞단을 정의하지만, MSA 아키텍쳐가 점점 상용화 되면서 Spring ORM을 사용하기 좋은 환경이 되었고, 지금까지 하고있는 Spring 구조, Controller-Service-Repository 구조로 발전해 왔다. 따라서 기존의 View 부분을, API를 설계해, 프론트와 완전히 분리하여, 단순하게 JSON데이를 주고받는 것 만으로 구현이 가능해졌다. 자 이제 해보자! API 👉 클라이언트 - 서버 간의 약속입니다. 클라이언트가 정한대로 서버에게 요청(Request)을 보내면, 서버가 요구사항을 처리하여 응답(Response)을 반환합니다. REST 👉 REST란, 주소에 명사, 요..

Spring/Spring Boot 2021.11.11

[Spring] 07. DTO를 사용하는 이유 - Data Transfer Object

1. DTO란? DTO(Data Transfer Object)란 계층간 데이터 교환을 위해 사용하는 객체(Java Beans)입니다. DTO를 사용하는 이유는, 자바 domain 객체를 바로 접근하지 않기 위해서 입니다. 고로! 가볍게 생각헤서, 테이블을 조작하기 위해 한단계더 거쳐가는 완충제라고 생각하면 됩니다. ✅ 테이블을 직접적으로 접근하지 않음으로써, 데이터를 보호하기 위함 생성하기 src > main > java > com.sparta.item01 > dto 패키지 생성 src > main > java > com.sparta.item01 > dto 에 LectureRequestDto 파일 생성 LectureRequestDto.java @NoArgsConstructor @Getter public ..

Spring/Spring Boot 2021.11.11

[Spring] 06. Lombok - getter, Setter, 기본타입 생성자 코드 중복 없애기

Lombok Lombok(롬복)이란, 자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메소드/ 생성자 등을 자동생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리이다. ex) getter, setter 설치 1. 환경설정 Windows: Ctrl + Alt + S macOS: command + , 2. 검색창에 "Annotation Processors" 입력 후, dncmr " Enable ~" 체크하고 ok 3. Shift 두 번 누르고 plugins 입력 후 엔터 4. lombok 입력 후 아래처럼 생긴 아이콘의 우측 install 후 인텔리제이 재시작 5. 다시 Shift 두 번 누르고 plugins 입력 후 엔터 6. lombok 검색했을 때 installed 상태라면 설치 완료 - 인텔..

Spring/Spring Boot 2021.11.11

[Spring] 05. JPA - CRUD (Spring Service layer)

이번에는 JPA Repository를 이용해 CRUD를 하는 방법을 익혀보자 1. 데이터 저장하기(Create) & 조회하기 (Read) * Repository의 save와 findAll 등을 이용합니다. // 데이터 저장하기 lectureRepository.save(new Lecture("프론트엔드의 꽃, 리액트", "임민영")); // 데이터 전부 조회하기 List lectureList = lectureRepository.findAll(); for (int i = 0; i < lectureList.size(); i++) { Lecture lecture = lectureList.get(i); System.out.println(lecture.getId()); System.out.println(lectur..

Spring/Spring Boot 2021.11.11

[Spring] 04. 데이터베이스 생성, 수정시간 자동 생성 클래스 만들기 (Timestamped 상속 테이블)

전 게시물에서는 Lecture 클래스를 만들어 @Entity // 테이블임을 나타냅니다. Entitiy어노테이션으로 도메인, 테이블로 만들고, JpaRepositpory를 인터페이스로 상속받아 데이터를 관리할 수 있는 구조를 만들어보았다. 이번에는, 또 다른 클래스 테이블을 만들어, 이걸 Lecture 클래스에서 상속받아, 데이터베이스 테이블에 칼럼을 추가해보자 이번에 만들 클래스는, TimeStamped - 시간 기록 테이블이다. 데이터베이스를 만들 때, 생성 시간과 수정 시간을 기록할 수 있는 컬럼을 포함하는 테이블이다. 👉 DB 기본 중의 기본은, "생성일자"와 "수정일자"를 필드로 가지는 것입니다. 라고한다. 이건, 모든 테이블에 필요할 수 있으므로, 클래스를 따로 만들어(한번만 만들어) 다른 클..

Spring/Spring Boot 2021.11.10

[Spring] 03. Spring H2 데이터베이스 연동하기 (Repository 레이어, JPA)

시작전에, 데이터베이스 설정 일단 지금은 테스트를 위해, 인메모리 데이터베이스인 H2 데이터베이스를 사용한다, H2 데이터베이스는 프로젝트 시작할 때 install을 해주었으며, 간단하게 설정해 줄 수 잇다. src > main > resources > application.properties 파일에 다음 아래의 명러어 3개를 입력하면 끝! spring.h2.console.enabled=true spring.datasource.url=jdbc:h2:mem:testdb spring.jpa.show-sql=true http://localhost:8080/h2-console 접속 - url에 testdb url에 입력! Spring은 Controller, Service, Repository 3개의 레이어로 나..

Spring/Spring Boot 2021.11.04

[Spring Boot] 02. Java에서 어노테이션(Annotation) 이란? (미완)

1. 어노테이션이란, @ ~~~ 로 시작하는 게 어노테이션 @SpringBootApplication public class Class01Application { public static void main(String[] args) { SpringApplication.run(Class01Application.class, args); } } - 어노테이션이란, 사전적인 의미로 주석을 뜻하고, 실제로 서버의 주석이라고 생각할 수 있다. - 사람이 사용하는 주석은, 코드를 보는 개발자에게 정보를 알려주기위해 사용한다. - 마찬가지로 어노테이션 또한 서버에게 정보를 알려주기위해 사용하는 서버의 주석이다. JAVA 코드에 @로 시작해서 클래스나 메소드 선언문 바로 위에 쓰이게 되요 어노테이션은 코딩할때는 @로 표시..

Spring/Spring Boot 2021.11.04

[IntelliJ] 01. Spring 부트 프로젝트 세팅하기

일단 Spring boot를 이용하여 프로젝트를 시작해 봅니다. 1. 인텔리제이 설치 후 실행 - New Project 2. Spring Initializr 클리 Name : 프로젝트 명 Type : Gradle 선택 Group : 폴더 명 java : 8 jdk : 1.8 3. 다음화면에서 스프링부트에 필요한 패키지들을 설치할 수 있다. Lombok : getter setter 편하게 해줌 Spring web Spring Data JPA : Spring JPA ORM H2 Database : 테스트용 데이터베이스 MySQL Driver : Mysql 이정도 설치해주면 된다. 4. 프로젝트 생성 완료~ main > java > com.sparta.item01 > Item01Application.java ..

Spring/Spring Boot 2021.11.04
반응형