스프링(Spring)

Spring Framework의 개념, 특징, 사용 가능 IDE

개발학생 2022. 9. 14. 16:27
반응형

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다

 

1. 스프링 프레임워크란?

- Java 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크

 

(1) 엔터프라이즈 개발 용이

    : 개발자가 복잡하고 실수하기 쉬운 Low Level에 많이 신경 쓰지 않으면서 Business Logic 개발에 전념할 수 있게 해줌          ㄴ본격적인 제품용 어플리케이션을 만들기에 적합함.

 

(2) 오픈소스

: 오픈소스의 장점을 충분히 취함과 동시에 오픈소스 제품의 단점과 한계를 잘 극복함

 

(4)  애플리케이션 프레임워크

     : 특정 계층이나 기술, 업무 분야에 국한되지 않고 어플리케이션의 전 영역을 포괄하는 범용적인 프레임워크
       ㄴ여러 분야에서 사용되므로 큰 것도 사실이다.
           그래서 스프링 프레임워크를 사용할 때는 필요한 내용만을 골라서 잘 커스터마이징하는 게 중요하다

 

(5) 경량급 프레임워크(반의어: 중량급 프레임워크)

     : 단순한 웹 컨테이너에서도 엔터프라이즈 개발의 고급기술을 대부분 사용할 수 있다.
       ㄴ일반 자바 객체(POJO)로 대부분의 고급 기술 개발 가능

 

2. 스프링 프레임워크의 특징

(1) 컨테이너 역할

Spring 컨테이너는 Java 객체의 Life Cycle을 관리하며, Spring 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.

객체 중 가장 중요하고 많이 쓰이는(=코어) 객체는 모두 컨테이너가 다룸 (개발자가 직접 다루지 않음)
→ 컨테이너가 아래의 DI를 지원함

 

(2) DI (Dependency Injection) 지원

Spring은 설정 파일이나 어노테이션을 통해 객체 간의 의존관계를 설정할 수 있도록 하고 있다.

 

(3) AOP (Aspect Oriented Programming) 지원

- Spring은 트랜잭션이나 로깅, 보안과 같이 공통적으로 필요로 하는 모듈들을 실제 핵심 모듈에서 분리해서 적용 가능

   → 핵심 코어 기술과 주변 기술들을 분리해서, 각각 따로따로 개발해서 runtime에 결합시켜 줌

   → 어플리케이션을 굉장히 단순하게 만들 수 있고, 생산성과 전체적인 품질 등 여러 가지를 좋게 만들어 줄 수 있는 고급 기술

 

(4) POJO (Plain Old Java Object) 지원

- Spring 컨테이너에 저장되는 Java 객체는 특정한 인터페이스를 구현하거나, 특정 클래스를 상속받지 않아도 된다.

 

(5) 트랜잭션 처리를 위한 일관된 방법을 지원

- JDBC, JTA 등 어떤 트랜잭션을 사용하던 설정을 통해 정보를 관리하므로, 트랜잭션 구현에 상관없이 동일한 코드 사용 가능

 

(6) 영속성 (Persistence)과 관련된 다양한 API 지원

Spring은 MyBatis, Hibernate 등 데이터베이스 처리를 위한 ORM (Object Relational Mapping) 프레임워크들과의 연동지원

 

*** 5번+6번: 시스템 서비스 지원한다고 함. 시스템 서비스를 쉽게 추상화해 놓음 (=서비스 추상화)

 

3. 스프링 지원 IDE

(1) 이클립스(Eclipse) - STS: Spring Tool Suite

→ 몇가지 버그들도 노출되고 문제점들도 있지만, 현존하는 가장 최고의 스프링 지원 IDE
    (너무 많은 기능들을 지원해서 기능 하나하나를 익히는 것도 매우 오래 걸림)

 

(2) 인텔리제이(IntelliJ IDEA)

→ 오랫동안 개발자들의 사랑을 많이 받음. 시간이 지날수록 더 주목받고 있음.
    안드로이드 스튜디오도 같은 회사가 만들어서 인텔리제이 툴과 UI가 비슷함.
    이클립스를 사용하다가 인텔리제이로 넘어가는 개발자들도 많음.

반응형