1.SpringFramework(스프링 프레임워크)

한승록·2023년 7월 9일
0

스프링 기초

목록 보기
1/9
post-thumbnail

1) Framework(프레임워크)

Framework는 단어 뜻 그대로 '일정한 틀 혹은 규칙 안에서 일 혹은 작동' 하는 상태를 의미합니다.
개발에 있어서도 해당 개념이 적용 될 수 있는데 대표적 웹 개발 프레임워크로는 자바 기반의 Spring, 파이썬기반의 Django, 코드 없는 웹개발을 위한 AppMaster 등이 있습니다.




2) Spring Framework(스프링 프레임워크)

Spring이 등장하기 이전 EJB (Enterprise JavaBeans)가 자바 표준 기술이었습니다.

EJB의 등장으로 개발자는 비즈니스 로직에 집중 할 수 있는 환경을 갖추었지만 각 클래스 간의 의존도가 커지고 규모가 증가하면서 로드 존슨에 의해 Spring Framework의 탄생 기틀이 마련됩니다.


Spring은 다음과 같은 특징을 지니고 있습니다.
  1. 제어 역전 컨테이너
  2. 관점 지향 프로그래밍
  3. 데이터 액세스 프레임워크
  4. 트랜잭션 관리
  5. 모델-뷰-컨트롤러 패턴
  6. 스프링 배치
  7. 스프링 부트

2-1) 제어 역전 컨테이너(Inversion Of Control)

제어 역전 컨테이너는 자칫 어렵게 들릴 수 있으나 코드의 제어를 작성자가 아닌 프레임워크에서 실시한다는 의미입니다.
Spring에서는 실행에 필요한 모든 파일 및 실행환경에서 애플리케이션을 패키징하고 격리할 수 있는 컨테이너를 코드 구현자가 아닌 프레임워크에서 제어하여 실행과 구현을 분리하게 됩니다.

이러한 특징으로 의존성 주입을 통해 테스트의 용이성이 증가되고 모듈화를 통해 결합도가 낮아져 유지보수가 용이해 지는 등의 효과를 누릴수가 있습니다.

2-2) 관점 지향 프로그래밍(AOP : Aspect Oriented Programming)

관점 지향 프로그래밍Java객체 지향특성을 보완하는 역할을 수행합니다.
관점 지향은 기존의 객체 지향이 다중 상속이 불가능 하다는 점을 보완하여 공통속성을 모듈화하여 코드의 간결성을 높여주는 것입니다.

2-3) 데이터 액세스(Data Access)

데이터 액세스는 말 그대로 데이터 베이스로의 접근을 의미하며 SQL등을 활용하여 손쉽게 접근할 수 있도록 Spring에서 제공합니다.
해당 개념을 활용하여 제공하는 서비스로 기본적으로 JDBC가 있고 이를 라이브러리를 통해 관리 및 코드의 간결성을 도와주는 MyBatis가 대표적입니다.

2-4) 트랜잭션 관리(Transaction Management)

트랜잭션이란 하나의 논리적 기능 수행을 위한 작업 단위 또는 동시에 수행되어야 할 일련의 연산들을 의미합니다.
즉 모든 작업이 성공적으로 완료되어야만 하는 것이고 그렇지 않다면 작업 실행 전으로 롤백(rollback)하는 것입니다. 트랙잭셔널 관리는 다음과 같이 이루어 질 수 있습니다.
  • 로컬 트랜잭션(Local Transation)
  • - 일반적으로 JDBC와 같은 단일 DBMS에서 발생하며 commit이 트랜잭션의 끝인 경우라고 볼 수 있습니다.

  • 글로벌 트랜잭션(Local Transaction)
  • - 분산 트랜잭션이라고도 불리며 트랜잭션에 포함된 일이 수행 중 하나라도 다른 리소스에서 일어나는 경우를 말합니다. 쉽게 설명하자면 로컬 트랜잭션이 같은 은행에서의 계좌이체라면 글로벌 트랜잭션은 다른 은행으로의 계좌이체라고 할 수 있습니다.

2-5) 모델-뷰-컨트롤러 패턴(MVC : Model-View-Controller)

모델-뷰-컨트롤러 패턴은 흔히 MVC 패턴이라고 불리며 표준적인 방식에 해당합니다.
HTTP프로토콜로 들어오는 모든 요청을 받아 DispatcherServletController 역할을 통해 적절한 Service에 할당하게 되고 서비스가 처리하여 결과를 생성하여 다양한 형식의 View로 화면에 표시되는 일련의 과정을 의미합니다.

(해당 개념은 SpringFramework의 표준이자 핵심개념이므로 따로 자세하게 설명하도록 하겠습니다.)


2-6) 스프링 배치(Spring Batch)

스프링 배치는 대용량 및 일괄처리에 있어 편의성과 경량화를 위해 탄생하였습니다.
따라서 스프링 배치의 가장 큰 특징은 '대용량 데이터' 의 '일괄적 처리' 에 있습니다. 이를 위해 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 기능과 최적화 및 파티셔닝 기술을 통해 고성능 배치 작업을 가능하게 하는 고급 기술 서비스 및 기능을 제공합니다.

2-7) 스프링 부트(Spring Boot)

스프링 부트는 기능의 향상보다는 간략화와 사용의 편리성 증대에 더욱 초점이 맞춰져있습니다.
이뿐만 아니라 자체적 웹 서버를 내장하여 빠르고 간편하게 배포를 진행할수 있으며 클라우드 서비스도커와 같은 가상화 환경에도 간편하게 배포가능하게 됩니다.
profile
개발 학습

0개의 댓글