💟Spring Framework(수정중)
🌼 framework, OOP+POJO,IoC,DI,AOP 추후 업로드 예정
🌼 IoC-Spring Boot
Spring Boot
스프링 부트는 스프링 프레임워크 위에 구축되었음. 핵심 기능인 의존성 주입, 트랜잭션 관리, 웹 개발, 데이터 접근 등을 스프링 부트 애플리케이션에서도 사용할 수 있음을 의미
추가적인 springBoot프로젝트 구조는 ㅡ> https://isdiary.tistory.com/196
💟Spring MVC / Data
🌼MVC 디자인 패턴
MVC 기본 구조 아래 정리
https://isdiary.tistory.com/197?category=787906
DispatcherServlet
모든 사용자 요청은 DispatcherServlet을 통해 처리된다. DispatcherServer의 중요한 것만 보자면 , 클라이언트의 요청을 DispatcherServlet이 받고, Handler Mapping은 컨트롤러 정보를 가지고 있다. ViewResolver은 View 정보검색을 하여 해당하는 View를 찾아 View를 리턴하는 역할을 한다.
🌼Spring Database Access
영속성
JDBC : 자바에서 데이터베이스에 접근할 수 있도록 하는 자바API
Spring Database유형
- JDBC
- MyBatis
- JPA : ORM(object relational mapping)의 자바버전. 데베를 자바버전에서 한다고 생각하자. 대표적인 구현체로는 Hiberate가 있고, 자바를 통해 쿼리를 SQL로 자동변환해준다.
ORM?
ORM은 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 간접적으로 데이터베이스를 다룰 수 있게 해준다.
sql에서의 테이블을 여기선 Entity 라고 부른다.
🌼JPA
JPA
자바 어플리케이션에서 관계형 데이터베이스를 객체ㅡORM방식으로 만든 인터페이스
영속성 컨텍스트
- 엔티티를 영구저장하는 환경. 어플리케이션들의 정보와 DB 사이에, 중간에 영속성 컨텍스트라는 가상의 DB역할을 넣음으로서, 1차 캐시에 엔티티가 존재한다면 DB를 찾아보지 않아도 되는 이점을 가진다.
- 쓰기지연 저장소 : 한 트랜잭션 안에서 이루어지는 쿼리를 쓰기 지연 SQL 저장소에 갖고 있다가 트랜잭션이 커밋되는 순간 한번에 쿼리를 DB에 날리는 것. 주로 롤백하기 위해 저장소에 저장함
- 엔티티 생명 주기 : EntityManager을 통해 영속성 컨텍스트에 저장되어 영속성 컨텍스트가 관리하는 상태.
entityManager.persist();
영속성 컨텍스트의 장점
- 변경 감지 : 어플리케이션에서 10살 ㅡ>50살로 바뀌면, 자연스럽게 데이터베이스에도 값을 변경
- 지연로딩 : 어떤 객체에 다양한 멤버가 있을 때, 필요한 시점에 그 데이터를 갖고오는것
🌼Spring Data JPA
JPA기반 저장소를 쉽게 구축할 수 있게 해줌
Lombok 라이브러리에서 제공하는 어노테이션
@NoArgsConstructor : 매개 변수가 없는 기본 생성자를 생성
public News(){
}
@AllArgsConstuctor : 모든 필드 값을 매개변수로 받는 생성자를 생성한다.
public News(Long newsId, String title, String content) {
this.newsId = newsId;
this.title = title;
this.content = content;
}
@Getter / @Setter
자동으로 getter,setter 메소드를 생성해준다
@Entity
엔티티를 식별자 값으로 구분하므로 영속 상태로 만들면 식별자 값이 있어야 한다
@Table
엔티티 클래스를 데이터베이스의 특정 테이블에 매핑할 때 사용한다
@Id
pk 설정을 위한 어노테이션이다. @GeneratedValue 어노테이션도 함께 사용된다. 하나의 엔티티 클래스는 하나의 @id 지정만 가능하다
@GeneratedValue
기본 키 생성 전략을 지정하는 어노테이션이다. 속성으로는 strategy가 있으며, 이를 통해 자동 생성 전략을 지정해줄 수 있다.
@Column
객체 필드를 테이블 컬럼에 매핑한다
@Enumerated
자바의 enum 타입을 매핑할 때 사용된다.
연관 관계 매핑
다대일 / 일대다
@ManyToOne @OneToMany
데이터베이스의 일, 다 관계에서 항상 외래키는 다쪽에 있다.
<추후 추가 작성예정>
Repository
Spring Data JPA 에서 제공하는 인터페이스
<추후 추가 작성예정>
💟RestController를 활용한 웹 애플리케이션 개발
🌼REST
REST는 해당 자원(소프트 웨어가 관리하는 모든 것. 이미지, 데이터 , 문서 등이 있음)의 상태를 주고받는 것(JSON이 일반적)을 의미
🌼REST API
API
프로그램들이 서로 상호작용 하는걸 도와주는 매개
REST API
REST의 특징 기반으로 API 구현한 것
설계예시
- URI 자원을 나타내야 하며, 동사<<명사 , 대문자 << 소문자
- 일반적으로 복수명사로 표현
- 고유객체를 가지고 올 때는 path상에 id 나타냄
- 마지막에 슬래시 포함하지 않음
- 언더바 대신 하이픈 사용
- 조인된 결과를 URI 상에 나타내주고 싶을 때 사용
- 파일확장자는 포함하지 않는다
- 행위를 포함하지 않는다
REST API 동작
서버는 클라이언트의 요청에 대한 응답으로 화면(view)가 아닌 데이터(json,xml 등)를 전송한다.
'KT에이블스쿨' 카테고리의 다른 글
| [KT AIVLE SCHOOL] 4차 미니프로젝트 (0) | 2025.06.04 |
|---|---|
| [KT AIVLE SCHOOL] 마이크로서비스 모델링 (0) | 2025.06.04 |
| [KT AIVLE SCHOOL] 3차 미니프로젝트 후기 (0) | 2025.05.20 |
| [KT AIVLE SCHOOL] 클라우드 (0) | 2025.05.13 |
| [KT AIVLE SCHOOL] 2차 미니프로젝트 (1) | 2025.05.12 |