Spring

haribo·2021년 3월 21일
0

Web

목록 보기
5/7

Intro


framework?

정의

  • 뼈대나 근간을 이루는 코드들의 묶음
  • 개발에 필요한 구조가 제공되고 필요한 부분을 조립하는 형태로 개발
  • 개발 기간 단축, 팀 내 개인 능력차이 극복 & 일정 품질 보장
  • 프랜차이즈의 레시피로 비유

<비유>

  • 옛날엔 옷 다 만들어입음(개성, 특별)
  • 현재는 기성품 사다가 입음 (프레임 워크 트렌드)

구조

  • Presentation Layer (HTML, CSS, Javascript) → View

    : UI(기획에서 말하는것)를 담당하는 구성요소들이 들어간다. 웹과 모바일에 따라 사용되는 기술이 변경된다.

  • Business Logic Layer (Controller → Service Layer)

    : 서비스 계층이라고도 하며, 기능적인 요구사항이 직접적으로 반영되는 계층이다.

  • Data Access Layout (DAO → Model)

    : 저수준의 데이터 처리를 전문적으로 담당, DB에 대한 직접적인 제어가 포함된다.

  • DB

    : DBMS 시스템

용어 정리

  • 코드 구성 기법에 따른 용어 : View, controller
  • 기획에서 쓰는 용어 : UI, Business Logic
  • 작업 방식에 따른 분류 : service layer

Spring


정의

  • Spring 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 Spring이라고도 불린다.
  • 동적 웹사이트를 개발하기 위한 여러가지 기능들을 제공하고 있다.
  • 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.

특징

경량 컨테이너

  • 자바 객체를 직접 관리하는 POJO 방식의 프레임 워크
  • 경량 컨테이너? 간단한 jar 파일들의 조합만으로 모든 개발이 가능
  • POJO 프로그램 구현을 위해 특정한 인터페이스를 구현하거나 상속받을 필요 없이 일반적인 Java코드와 기존에 존재하는 라이브러리들을 그대로 활용하는 방식 (가볍다.)
  • Java 클래스와 인터페이스를 그대로 활용하므로 EJB에 비해 매우 가벼움
  • POJO 방식의 이점 : 개발자가 특정 라이브러리나 컨테이너 기술에 종속되지 않을 수 있기 때문에 생산성에서 유리, 테스트 작업이 좀 더 유연해짐

높은 확장성

  • 다른 프레임워크들과의 통합을 지원
  • 수많은 라이브러리가 지원되고 별도로 분리하기에도 용이함 (정부 표준 프레임워크)

제어반전 (IoC)

  • 프레임워크가 개발자의 코드를 호출하기 때문에 전체를 직접 구현하지 않고 자신의 코드를 부분적으로 끼워넣기 하는 형태로 구현할 수 있다. (구현하고자 하는 기능에만 집중)
  • 객체 생성, 소멸과 같은 라이프 사이클을 관리해 Spring에서 필요한 객체를 얻어올 수도 있다.
  • 비유 : 강사님께 학생이 가는게 아니라 강사님이 학생들 알려주면 역량 차이 극복, 품질 일정 보장.

트랜젝션의 지원

  • 트랜젝션의 관리를 어노테이션이나 XML로 설정할 수 있기 때문에, 개발자가 별도의 소스코드를 개발할 필요가 없다.
  • Model1, Model2에서는 Mybatis의 트랜젝션 관리를 위해 개발자가 직접 commit과 rollback에 대한 제어 및 SqlSession에 대한 close 시점을 결정해야하지만 자동화 된다. (편리!)

구조

MVC + Service + DAO 패턴

  • MyBatis에 DAO 역할 부여 (우리가 배웠던 방식)
  • 원칙은 Service → DAO → MyBatis로 가는게 맞음

개발 방식

Maven 기반 ← 수업시간 채택

  • Maven을 활용해서 라이브러리들의 의존성 설정
  • 환경설정 내용을 XML 파일 기반으로 구성
  • 전통적인 개발방식, 전자정부 표준 프레임워크도 이거 씀
  • 자료를 얻기 쉬워서 초반 접근 용이

Spring Boot

  • 비교적 최근에 등장한 개발방식
  • 복잡한 Spring 설정방법을 간소화함
  • 환경설정 내용을 Java 소스 기반으로 구성
  • 최근에 많은 관심을 받음
  • 관련 자료 부족, 설정 방식 다양 → 초기 진입 장벽 높음

STS

Spring Tool Suit

스프링 통합 개발 도구, 이클립스 마켓 플레이스에서 플러그인 형태로 설치 가능

profile
그림 그리는 백엔드 개발자

0개의 댓글