[Spring Boot] 스프링부트 기초개념-Spring의 동작원리2




[Spring Boot] 데이터베이스 격리수준: Database Isolation Level
일이 처리되기 위한 가장 작은 단위
트랜잭션들이 모여 하나의 트랜잭션을 이룰 수 있고, 서비스가 된다.
→ 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 모아놓은 것
클라이언트 (브라우저)는 서버에 요청을 하고, 서버는 클라이언트에게 응답한다.
클라이언트가 서버에게 화면을 요청하면, 서버가 .html로 응답하여 브라우저는 그 html 파일을 읽는다.
메인화면에서 회원가입 수행을 요청하면, 서버는 DB에 회원가입을 수행하고 완료하면 다시 메인화면으로 돌아올 것이고, 결국 html로 응답해줘야하는데…
그 클라이언트가 꼭 브라우저인 것은 아니다. 앱일 경우, html를 반환해주면 이해하지 못한다.
[Spring Boot] JAVA 오버로딩과 오버라이딩
자바에서 다형성을 지원하는 방법으로 메서드를 오버로딩, 오버라이딩을 할 수 있다.
=> 오버로딩은 기존에 없던 새로운 메서드를 정의하는 것
=> 오버라이딩은 상속 받은 메서드의 내용만 변경하는 것
[Spring Boot] 데이터베이스 Update 하는 법
웹 브라우저에서 회원 수정을 하는 경우를 생각하며,
@PutMapping을 이용해서 주소를 만들어줬다. 이때 적은 주소는 @GetMapping의 주소와 동일한데, 스프링부트에서는 알아서 Get, Put을 구별해준다.
주소에서 id를 받아온다. 이 id는 데이터베이스에 저장 된 id값을 불러오기 위함이다.
[Spring Boot] 데이터베이스 Select 하는 법과 에러체크
데이터베이스의 데이터를 Select할 때 잘못 된 인수가 들어가면 어떻게 해야할까
User table을 select하기에 앞서,
UserRepository라는 인터페이스 파일을 새로 만들고, 그 UserRepository는 JpaRepository를 상속하고 있다.
1 | // 자동으로 bean등록이 된다. --> @Repository 생략가능 |
그리고 select 기능을 넣어줄 클래스파일에 DI를 해주고,
[Spring Boot] JPA 즉시 로딩과 지연 로딩(FetchType.EAGER or LAZY)
블로그 프로젝트 진행 중 FetchType.LAZY와 EAGER이란 것이 나왔다.
하나의 게시물을 눌렀을 때, 화면에 필수적으로 나타나야 하는 것은
위 3가지가 있었고 있었고, 댓글은 바로 보여지는 경우와 접혀있다가 눌렀을 때 보이는 경우로 나눌 수 있었다.
- @ManyToOne, @OneToOne: 즉시로딩(FetchType.EAGER)
[Spring Boot] IntelliJ에서 Live Reload 설정하기
1 | developmentOnly 'org.springframework.boot:spring-boot-devtools' |
1 | spring: |