코딩항해기

[Spring] Spring 프레임워크 기초 본문

Spring

[Spring] Spring 프레임워크 기초

miniBcake 2024. 10. 1. 14:50

 

 

Spring Framwork

자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로 엔터프라이즈급(기업을 대상으로 하는 개발규모/대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경) 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션이다. 

Ioc와 AOP를 지원하는 경량의 프레임워크로 Spring 프레임워크의 핵심은 Dependency(의존성)와 AOP라고 할 수 있다.

 

Ioc (Inversion of Control) 제어의 역행

원래는 개발자가 객체를 관리하지만 Spring에서는 컨테이너가 객체를 관리한다. 객체의 생성 및 소멸, 그리고 라이프 사이클을 관리하며 Spring 컨테이너로부터 객체를 가져와 사용할 수 있다. Ioc는 DI(의존성 검색)와 DL(의존성 주입)에 의해 구현된다.

 

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

관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하는 것이다. 객체 지향 방식은 OOP(Object Oriented Programming)라고 한다.

 

경량

not POJO(ex.Servlet)없이 POJO로 대부분 구성되어 있어 가볍다.

 

MVC패턴

Spring은 MVC패턴으로 구성되며 Model2, View, Controller로 구성되어있다.

 

 

pom.xml

프로젝트 시작할 때 의존성을 설정할 수도 있지만, 후에 의존성을 추가하고 싶다면 pom.xml에서 dependency를 추가할 수 있다.

groupId는 명칭을, artifactId는 api 이름을, scope에서는 스코프를 설정할 수 있다.

인텔리제이에서는 다시 설정 페이지를 열어 추가하는 것도 가능하다.

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jetbrains</groupId>
            <artifactId>annotations</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

 

 

Spring 파일 구조 분석

eclipse

 

intellij