[KT AIVLE SCHOOL] Spring

2025. 5. 26. 10:41·KT에이블스쿨

 

💟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
'KT에이블스쿨' 카테고리의 다른 글
  • [KT AIVLE SCHOOL] 4차 미니프로젝트
  • [KT AIVLE SCHOOL] 마이크로서비스 모델링
  • [KT AIVLE SCHOOL] 3차 미니프로젝트 후기
  • [KT AIVLE SCHOOL] 클라우드
알리시아코
알리시아코
  • 알리시아코
    CODiary
    알리시아코
  • 전체
    오늘
    어제
    • 분류 전체보기 (162)
      • Spring (5)
      • 프론트엔드 (2)
      • KT에이블스쿨 (37)
      • 졸업프로젝트 (4)
      • JAVA (24)
      • 파이썬 기초 (13)
      • 데이터베이스 (7)
      • 알고리즘 (3)
      • git (0)
      • Fastapi (0)
      • 취업준비(원서) (0)
      • 컴퓨터 네트워크 (27)
      • 안드로이드 앱 (1)
      • 운영체제 (0)
      • LINUX (4)
      • 시스템프로그래밍 (13)
      • 엑셀 (1)
      • 책 (1)
      • 컴퓨터구조+운영체제 (4)
      • 자료구조+알고리즘 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
알리시아코
[KT AIVLE SCHOOL] Spring
상단으로

티스토리툴바