📝오늘 공부한 것
- 스파르타코딩클럽 Spring 입문주차 2주차
알게 된 점❗
[Spring의 3 Layer Architecture]
Controller :
- 클라이언트의 요청을 받음
- 요청에 대한 로직 처리는 Service에게 전달
- Request 데이터가 있다면 Service에 같이 전달
- Service에서 처리 완료된 결과를 클라이언트에게 응답
Service :
- 사용자의 요구사항을 처리(‘비즈니스 로직’)하는 실세 중에 실세
- DB저장 및 조회가 필요할 때는 Repository에게 요청
Repository :
- DB 관리 (연결, 해제, 자원 관리)
- DB CRUD 작업을 처리
[Spring의 IoC(제어의 역전)와 DI(의존성 주입)]
- IoC, DI는 객체지향의 SOLID 원칙 그리고 GoF의 디자인 패턴과 같은 설계원칙 및 디자인 패턴입니다.
- 이 둘을 더 자세하게 구분해 보자면 IoC는 설계 원칙에 해당하고 DI는 디자인 패턴에 해당합니다.
[Spring IoC 컨테이너]
- Spring 프레임워크가 필요한 객체를 생성하고 관리하는 역할을 대신 해줍니다.
- 빈(Bean) : Spring이 관리하는 객체
- Spring IoC 컨테이너 : ‘Bean’을 모아둔 컨테이너
[ORM(Object-Relational Mapping)]
객체와 DB의 관계를 매핑 해주는 도구
[JPA(Java Persistence API)]
- 자바 ORM 기술에 대한 표준 명세
- JPA는 애플리케이션과 JDBC 사이에서 동작되고 있습니다.
- JPA를 사용하면 DB 연결 과정을 직접 개발하지 않아도 자동으로 처리해줍니다.
- 또한, 객체를 통해 간접적으로 DB 데이터를 다룰 수 있기 때문에 매우 쉽게 DB 작업을 처리할 수 있습니다.
[Entity]
- JPA에서 관리되는 클래스 즉, 객체를 의미합니다.
- Entity 클래스는 DB의 테이블과 매핑되어 JPA에 의해 관리됩니다.
[영속성 컨텍스트]
Entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간
[Spring Data JPA]
- JPA를 쉽게 사용할 수 있게 만들어놓은 하나의 모듈
- JPA를 추상화시킨 Repository 인터페이스를 제공
- Repository 인터페이스는 Hibernate와 같은 JPA구현체를 사용해서 구현한 클래스를 통해 사용
- JpaRepository 인터페이스를 구현하는 클래스를 자동으로 생성
- Spring 서버가 뜰 때 JpaRepository인터페이스를 상속받은 인터페이스가 자동으로 스캔이 되면, 해당 인터페이스의 정보를 토대로 자동으로 SimpleJpaRepository 클래스를 생성해 주고, 이 클래스를 Spring ‘Bean’으로 등록
- 따라서 인터페이스의 구현 클래스를 직접 작성하지 않아도 JpaRepository 인터페이스를 통해 JPA의 기능을 사용할 수 있음.
느낀 점🤔
그냥...다....어렵다.....
2주차 강의를 듣긴 했는데 놓친 것도 너무 많고 이해 안가는 부분도 너무 많다ㅠㅠ
다시 한번 들어보면서 이해할 수 있는 것들을 최대한 이해해 봐야겠다,,
'TIL(Today I Learned)' 카테고리의 다른 글
TIL-230629(application.properties 민감정보 숨기기) (0) | 2023.06.29 |
---|---|
TIL-230628 (0) | 2023.06.29 |
TIL-230624 (0) | 2023.06.24 |
TIL-230623 (0) | 2023.06.23 |
TIL-230621 (0) | 2023.06.22 |