🔻Back-End/Spring

[Spring] 웹개발의 봄, Spring 2주차-1

_니지 2022. 7. 11. 13:06

 

🚩이번주에 배울 것

1. RDBMS(관계형데이터베이스)의 기초 지식

2. Spring Data JPA의 사용법

3. REST API를 만드는 방법

 


❗인텔리제이 실행 및 프로젝트 기본 설정

https://radiant515.tistory.com/87

 

[Spring] 웹개발의 봄, Spring 1주차-1

🚩이번주에 배울 것1. 웹의 기본적인 구조 이해2. 스프링 부트의 기본 구조 이해3. 자바 기초를 학습  ❗웹서비스웹서비스: 클라이언트 + 서버클라이언트: 사용자가 보는 화면      서버: 내가

radiant515.tistory.com

 

 

 

❗RDBMS

-RDBMS(Relational DataBase Management System): 컴퓨터에 정보를 저장하고 관리하는 기술(매우 고도화된 엑셀)

RDB, 관계형 데이터베이스 -> 정보 저장소

 

-종류: MySQL, PostgreSQL, Oracle Database

-우리가 사용할 RDBMS: H2, MySQL

H2: 서버가 작동되는 동안에만 내용을 저장하고, 작동을 멈추면 데이터가 모두 삭제됨(연습용으로 굳!)

MySQL: 서비스를 배포할 때 사용할 예정, AWS RDS라는 서비스를 이용해서 붙여볼 예정이고 스프링과의 궁합이 좋음

 

 

❗H2 웹콘솔 띄우기

src > main > resources > application.properties로 이동해서

//붙여넣기
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb

Week02Application.java에서 run
http://localhost:8080/h2-console로 이동 후 connect 누르기
connect를 누를 때 오류가 발생하면, JDBC URL에 jdbc:h2:mem:testdb를 입력
이렇게 나오면 H2 콘솔 실행 성공

 

-해야할 것

엑셀 파일(데이터베이스), 엑셀 시트(테이블), 엑셀 한 행(데이터)

테이블 생성, 테이블에 데이터 삽입, 삽입된 데이터를 조회

 

❗SQL 연습하기

이 화면에서 텍스트 박스에 코드 붙여 넣기

 

CREATE TABLE IF NOT EXISTS courses (
    id bigint NOT NULL AUTO_INCREMENT, 
    title varchar(255) NOT NULL,
    tutor varchar(255) NOT NULL,
    PRIMARY KEY (id)
);

위에 초록색 run 버튼 눌러서 테이블 생성

 

INSERT INTO courses (title, tutor) VALUES
    ('웹개발의 봄, Spring', '남병관'), ('웹개발 종합반', '이범규');

테이블에 데이터 삽입하기

 

SELECT * FROM courses;

테이블의 데이터 조회하기

 

 

❗웹서비스를 만들기 위해 SQL을 알아야할까?

우리가 명령을 내린 Java 명령어를 SQL로 번역해주는 것이 Spring Data JPA!

 

❗JPA

SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기

프로젝트를 만들 때 JPA를 넣어서 실행했기 때문에 따로 설정할 것은 없음!

-"테이블"은 Domain, "SQL"은 Repository 

 

 

❗Domain, Repository 도입하기

domain이라는 패키지 만들고, Course.java와 CourseRepository.java 만들기

 

Alt+Enter를 통해 Auto import를 해서 이 자바 파일이 데이터베이스임을 알려줌
sql역할을 대신해주는 CourseRepository.java

 

spring.jpa.show-sql=true
spring.datasource.url=jdbc:h2:mem:testdb;MODE=MYSQL

application.properties에 세팅 추가

 

-JPA는 Repository를 통해서만 사용할 수 있습니다

인터페이스는 클래스에서 멤버가 빠진, 메소드 모음집

 

 

❗상속 연습해보기 - Timestamped

Timestamped class를 abstract로 설정해주기
extends Timestamped 해주기
@EnableJpaAuditing 추가해주기
select * from course; 입력

728x90
반응형