Spring 기본개념

Ada·2022년 10월 3일
0

항해TOL

목록 보기
14/63

Spring Boot 공부를 드디어 시작하였다.

[Spring 3계층]

1. Controller

  • Controller는 Request에 대한 응답 처리를 맡고 있으며 다른 URL을 이용해 서버에서 처리된 데이터를 각기 다른 화면으로 보여주는 역할을 한다. 클라이언트와 소통할 때 서버와 가장 먼저 마주하는 부분이다.

2. Service

  • Service는 자바 문법을 이용하여 Repository에서 얻어온 정보를 가공하여 Controller에게 전달하는 역할을 수행한다. 실질적인 작동이 많이 일어나는 부분이다.

3. Repository

  • Repository는 Entitiy를 통해 데이터 테이블이 생성되면, 받아온 정보를 DB에 저장하고 조회하는 기능을 수행한다.

[CRUD]

  • Create
  • Read
  • Update
  • Delete

[Request Method]

  • PUT
  • POST
  • GET
  • DELETE
  • HEAD

<@Bean 에 대해서(김동현 기술매니저님)>

스프링에서 관리하기 편하게 만들려고 만든 공유 개념

[싱글톤패턴]

원래는 같은 요청이 들어올때마다 같은 값을 생성해서 보내줘야한다.
그런데 사용할때마다 값을 만들면 메모리 사용이 비효율적이다.

그래서 하나만 만들어두고 나누어서 사용하자.
-> 속도 빠름, 메모리 효율적
-> 구현이나 관리가 어렵다.

자바에서는 안티패턴으로 지정해두었지만
스프링에서는 기본적으로 싱글톤 패턴을 지원해준다.

이를 사용한곳이 스프링 빈이다.

빈으로 등록한것은 하나만 만들어두어도 누구나 빌려다가 쓸 수 있다.

스프링부트에서는 IOC 컨테이너에서 빈을 관리한다.

빈으로 등록하면 서버에서 동작할 때 공통저장소에 저장해준다.

스프링은 일반적으로 MVC 패턴을 사용하는데 이때 가장 많이 사용하는 빈이 Repository, Service, Controller 이다.
그래서 어노테이션을 지원해주는 것.

componentscan 이란 빈으로 등록한것을 서버 실행시 한 번 더 돌려주겠다는 뜻.

빈은 스프링 컨테이너에서 관리해준다.

스프링 IOC 의존성 주입 키워드로 더 검색해볼것!


<패키지 나누기 (김동현 기술매니저님)>

모놀리틱 아키텍쳐

  • 모든 서비스가 한 Repository 안에 있다.
  • 관리가 용이하다.
  • but, 수정할 때 오래걸리고 수정의 영향이 어디까지 미치는지 쉽게 파악이 어렵다.

마이크로 서비스 아키텍쳐

  • 각각의 서비스가 여러개 Repository로 분리되어있다.
  • 수정, 개선에 유리하다. 문제 해결이 용이하다.
  • Repository 여러개를 유기적으로 연결하기 어렵다.

<< JAP >>

서버에서 데이터베이스와 연관해서 작업할 때 SQL문 대신 서버 언어를 사용할 수 있도록 만들어 주는것이 ORM이라는 개념.

자바에서 사용하는 ORM 기술이 바로 JPA이다.

자바 객체 자체와 데이터베이스를 맵핑시켜주는 것.

여러 테이블을 사용하면 더 복잡한 JPA를 사용하게 될 것.

OneToMany, LeftJoin 등의 용어 공부할 것.

( ++ Hibernate 와 JPA에 대해서 설명할 수 있도록 공부해둘 것)

profile
백엔드 프로그래머

0개의 댓글