WEB/SPRING

1.[스프링]기본 정리

혼자좀비 2024. 5. 11. 13:22

 스프링은 오픈소스 자바 라이브러리로, 웹 애플리케이션과 같은 서버측 애플리케이션을 자바로 개발할때 표준이라 할수 있을 정도로 많은 개발 프로젝트에서 사용되고 있다.

※프레임워크란? : 애플리케이션의 틀을 제공하는 프로그램을 말한다. .

 

※스프링 프레임워크의 대표 기능

기능 개요
DI컨테이너 객체의 생성과 관리를 통합해서 사용할수 있게 해준다.
SPRING MVC HTTP통신,화면 관련 프로그램을 효율적으로 만들 수 있게 해준다.
SPRING JDBC 데이터베이스 전근 관련 프로그램을 효율적으로 만들 수 있게 해준다.
선언적 트랜잭션 데이터 베이스의 트랜잭션 제어를 자동으로 해준다.
테스트 지원 테스트 프로그램 작성을 용이하게 해준다.

 

  • 스프링 시큐리티
    스프링 시큐리티는 사용자 인증과 애플리케이션에 대한 사이버 공격을 방지하는 기능을 제공. 스프링을 사용하는 애플리케이션에 로그인 기능등 사용자에 대한 정보를 보호하기 위해 스프링 시큐리티를 사용한다.
  • 스프링부트
    스프링 부트는 스프링을 이용한 애플리케이션 개발의 생산성과 유지보수성을 높여주는 라이브러리이자 도구이다.
  • 웹 애플리케이션
    :웹애플리케이션은 클라이언트(사용자)와 서버간의 HTTP프로토콜을 이용하여 데이터를 주고 받으면서 동작하는 소프트웨어 프로그램이다.
     - MPA(Multi Page Apllication):브라우저에서 사용자가 서버에 요청하면 브라우저가 화면을 다시로드하므로 Multi Page라고 표현한다.
    - SPA(Single Page Application):브라우저에서 사용자가 서버에 요청할때 최초 페이지 처럼 웹서버에 준비된 HTML으 다운로드 해서 보여준다.

※역할 정리

Controller 요청을받아 업무로직을 호출하고, 적절한 View를 호출하기까지의 전체 처리 흐름을 제어
view 동적 데이터를 삽입하면 HTML을 생성하고, 동적 데이터로는 데이터베이스에서 검색한 데이터를 예로 들수있다.
Service 업무로직을 처리한다.
예)재고수량을 확인해 재고가 충분하면 주문 데이터를 생성하고 부족하면 예외를 발생시키는 등의 처리를 한다.
Repository 데이터베이스에 접속하여 데이터를 가져오거나 저장한다.
Entity 업무데이터를 가진다. 데이터 베이스의 테이블이 이미 존재할때는 테이블과 짝을 이루어 생성하는경우가 많다.
예)상품테이블에 대해 Product클래스를 Entity클래스로 생성
input 사용자가 입력한 정보를 가진다.

 

  • DI(Dependency Injection)
    프로그램을 설계할때 사용되는 개념으로 스프링과 자바뿐만이 아닌 다양한 프레임워크와 프로그래밍 언어에 쓰인다.
    DI는 사용될 객체를 사용하고 있는 개체 외부에 생성하여 전달받는것으로 1.사용되는 객체가 준비되면, 사용하는 객체에 생성자의 인수등을 사용하여, 3.사용하는 부분으로 전달한다.
    즉, 의존되는 객체를 외부에서  전달하는(주입)것을 말한다.
  • DI컨테이너
    외부에서 하는 처리를 담당하는 스프링의 기능

DI컨테이너 관련 기본 용어

Bean DI컨테이너가 관리하는 객체
Bean정의 Bean을 정의하는 정보를 가리킨다.
설정정보 DI컨테이너로 불러올 정보
애플리케이션 컨텍스트 DI컨테이너의 다른이름으로 DI컨테이너에 해당하는 객체가 ApplicationContext인터페이스를 구현하므로 DI컨테이너를 종종 애플리케이션 컨텍스트라고 부르기도 한다.

Bean정의 작성

 - 스테레오 타입 애너테이션 : @Service

 -  @Bean 메서드 : @Bean

 -  <bean>태그 : <bean class="com.test.service.FooterService"></bean>

스테레오 타입 애너테이션  @Service Bean으로 관리하고 싶은 구상 클래스에 붙이는 어노테이션이다.스테레오타입 애너테이션이 붙은 구상 클래스를 감지하여 자동으로 생성자를 호출하고 객체를 생성한다.
@Bean 메서드 @Bean DI컨테이너에 자동으로 호출되고 반환값으로 반환한 객체가 Bean으로 관리된다.
태그 <bean class="com.test.service.FooterService"></bean> xml에 작성을 하고,Bean으로 관리할 구상 클래스를 class속성으로 지정하고, xml파일을 DI컨테이너로 불러온다. 지정된 구상 클래스의 생성자가 DI컨테이너에 의해 호출되고, 생성된 객체는 Bean으로 관리한다.

 

'WEB > SPRING' 카테고리의 다른 글

3.[spring boot]JavaConfig(@Configuratio)와 @Bean  (2) 2024.11.03
2.[spring boot]프로파일로 설정 전환하기  (0) 2024.11.02