스프링 프레임워크의 장,단점 및 특징

주의사항!

공부하며 작성한 포스트입니다. 틀린 내용이나 부실한 설명이 있다면 알려주세요.😁


Spring Framework

스프링 프레임워크의 특징을 설명하고, 장점 및 단점을 포스팅합니다.

프레임워크?

프레임워크는 프로그램의 기초를 구축할 수 있는 코드의 집합입니다. 개발자라는 직업은 각 개발자의 능력에 따라 결과물의 완성도가 천차만별이기 때문에, 이를 극복하고자 하여 나온 결과물이 프레임워크입니다. 프레임워크를 사용한다면 프로그램의 기본 뼈대와 틀을 정하고, 모든 팀 구성원들이 이 틀과 뼈대에 맞게 살을 붙이기 위해 코드를 작성합니다.

종류

Java의 Spring, Python의 Django, Flask, Facebook의 React, .NET Framework등이 있습니다.

Spring

자바 플랫폼을 위한 오픈 소스 애플리케이션.


  • Java를 기반으로 한 프레임워크.
  • 복잡하지 않고 경량화 된 애플리케이션 프레임워크
  • 한국의 공공기관 웹 서비스 개발 시, 사용을 권장하는 전자정부 표준 프레임워크.
  • 기본 뼈대를 흔들지 않고 다른 프레임워크를 혼용해서 사용할 수 있다.

특징

POJO(Plain Old Java Object) 기반의 구성

스프링은 내부적으로 별도의 API를 사용하지 않고, 일반적인 Java 코드를 이용하여 객체를 구성하는 방식 그대로 사용하고 있습니다. 이것은 코드를 개발할 때, 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않다 라는것을 의미합니다.

트랜잭션의 지원

데이터베이스를 연동하여 사용할 때 반드시 신경써야하는 부분은 트랜잭션 부분입니다. 상황에 따라 여러 코드를 작업해줘야 하는데, 스프링에서는 Annotation이나 XML로 설정할 수 있도록 지원해줍니다.

DI(Dependency Injection, 의존성 주입)

스프링에서는 'ApplicationContext'라는 존재가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 해 주는 구조입니다. 따라서 스프링을 사용하면 객체와 객체를 분리해서 생성하고, 이런 객체들을 엮는 작업을 하게 됩니다.(Wiring)
ApplicationContext가 관리하는 객체들을 Bean이라고 칭하고, 빈과 빈 사이의 의존 관계를 처리하는 방식으로 XML, Annotation, Java 등 다양한 방식이 사용됩니다.

AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)

- 링크로 대체

장점

  • 프레임워크이기 때문에, 개발자의 수준과 실력에 상관없이 일정 수준의 품질을 기대할 수 있습니다.
  • 담당자 혹은 개발자가 도중에 바뀌더라도, 유지보수에 관한 리스크를 줄일 수 있습니다.

단점

  • 많은 기능을 제공하고 탑재하고 있으므로, 그만큼 무겁습니다.
  • 마찬가지로, 기능을 익히기 위해 많은 노력과 시간이 필요합니다.

좋은 웹페이지 즐겨찾기