[1. 오늘 배운 것]
1. 첫 스프링 부트 어플리케이션
- CourseController
package com.in28minutes.learnspringboot.courses;
import com.in28minutes.learnspringboot.courses.bean.Course;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
@RestController
public class CourseController {
@GetMapping("/courses")
public List<Course> getAllCourses(){
return List.of(new Course(1, "Learn MicroServices", "in28minutes"));
}
}
- Course
package com.in28minutes.learnspringboot.courses.bean;
public class Course {
private long id;
private String name;
private String author;
public Course(long id, String name, String author) {
super();
this.id = id;
this.name = name;
this.author = author;
}
public String toString() {
return "Course [id=" + id + ", name=" + name + ", author=" + author + "]";
}
public long getId() {
return id;
}
public String getName() {
return name;
}
public String getAuthor() {
return author;
}
}
- 결과
2. Spring Boot 이용해보기
- CourseController에 아래 코드를 추가한다
@GetMapping("/courses/1")
public Course getCourseDetails(){
return new Course(1, "Learn MicroServices", "in28minutes");
}
- 실행 결과
3. Spring Boot 추가적인 기능
- Spring Boot Actuator : 어플리케이션의 서로 다른 매트릭스를 볼 수 있고 리퀘스트 매핑도 볼 수 있어 프로덕션 상태의 어플리케이션을 쉽게 관리할 수 있게 해줌
- Spring Boot DevTools : 개발생산성을 높여주는 역할, 코드가 변경되는 직시 서버에서 변경사항을 가져오고 재시작하지 않아도 됨
4. Spring Boot vs Spring MVC vs Spring
- Spring framework : 핵심 기능은 의존성 주입=> 비을 정의하고 의존성의 위치와 순서를 정함 / 모듈과 프로젝트를 제공
- Spring Boot : 어플리케이션을 쉽게 구축할 수 있는 다양한 스타터 프로젝트 제공 / 많은 것을 구성하기보다 빠르게 구성하길 원한다면 사용, mvc패턴에서 필요한 많은 것들을 신속하게 해결
- Spring mvc : 모듈, 분리접근방식으로 웹 애플리케이션을 구축하도록 도움
5. Mybatis, H2 메모리 데이터베이스 통합
- Mybatis, H2 의존성 추가
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
- application.properties에 아래 코드 추가
spring.datasource.url=jdbc:h2:mem:testdb
- localhost:서버/h2-console로 이동
- User Name : SA 입력 후 Connect
6. JPA 사용하기
- 의존성 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
- JPA를 사용하기 위해서는 필드 클래스 전체에 Entity어노테ㅔ이션을 붙여줘야한다
- @Entity가 붙은 클래스는 JPA에서 관리하는 것이며, 클래스 내에 @Id, @GeneratedValue를 사용하여 기본키를 결정해야 한다
- 기본키를 설정한 후 protected 또는 private으로 생성자를 추가한다
package com.in28minutes.learnspringboot.courses.bean;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
@Entity
public class Course {
@Id
@GeneratedValue
private long id;
private String name;
private String author;
protected Course(){}
public Course(long id, String name, String author) {
super();
this.id = id;
this.name = name;
this.author = author;
}
public String toString() {
return "Course [id=" + id + ", name=" + name + ", author=" + author + "]";
}
public long getId() {
return id;
}
public String getName() {
return name;
}
public String getAuthor() {
return author;
}
}
- 설정 후 h2-console로 돌아가면 Course테이블이 생성되어있음을 확인할 수 있다
- 테이블의 이름을 바꾸고싶다면, @Entity옆에 (name="새로운테이블이름")을 붙여준다
7. HTTP 메서드
- 아래의 글 참고
[WEB] HTTP 메소드
1. HTTP 메소드란? - 클라이언트와 서버 사이에 이루어지는 요청과 응답 데이터를 전송하는 방식 - 서버에 주어진 리소스에 수행하길 원하는 행동 - 서버가 수행해야할 동작 * 복습!! Response Request
sangddongvoid.tistory.com
- 아래글도 참고
[WEB] HTTP 멱등성
1. 멱등성(冪等性, idempotent) - 덮을 멱, 같을 등 (무슨 뜻인지 더 모르겠음) - 동일한 요청을 한 번 보냈을 때의 효과와 서버 = 동일한 요청을 여러번 보냈을 때 효과와 서버 - 서버의 상태가 변경된
sangddongvoid.tistory.com
[2. 회고]
마지막에 유데미 서버가 터졌지만 괜찮다 난 오전에 강의 다들었으니까 우하하하 강의는 미리미리 듣는게 좋은 것 같다.
오늘은 스프링 부트에 대해 배웠는데 전에 공부한 스프링의 복습시간인 것 같아 좋았다
H2연결할 때 기본 아이디가 sa인지 SA인지 아니면 둘 다 되는건지 모르겠다 확인해본다는걸 깜빡쓰 해버렸네 확인해봐야겠다
그리고 오늘 현아언니가 Raycast알려줘서 맥을 좀 더 잘 쓸 수 있게 되었다 감사합니당
'부트캠프' 카테고리의 다른 글
[TIL] 유데미X사람인 취업 부트캠프 1기 34일차 / netflex만들기 (0) | 2024.02.11 |
---|---|
[TIL] 유데미X사람인 취업 부트캠프 1기 32일차 / react 기초 (0) | 2024.02.01 |
[TIL] 유데미 X 사람인 취업 부트캠프 27일차 / java, spring (0) | 2024.01.22 |
[TIL] 유데미 X 사람인 취업 부트캠프 26일차 / java, spring (0) | 2024.01.19 |
[TIL] 유데미 X 사람인 취업 부트캠프 25일차 / java (0) | 2024.01.18 |