본문 바로가기
코딩일기/날씨앱 만들기 프로젝트

[Spring] Spring 설치 및 MVC 프로젝트 구조 설명 Part1

by 욱파이어니어 2021. 10. 15.
728x90
반응형

일단 Spring 설치하는 방법에 대해 알려주기에 앞서 Part1에선 Spring 이 뭔지 부터 설명과 설치 방법을 알려주겠다.

 

 

 

 

Spring 이란?

 

 

자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로 간단하게 스프링(Spring)이라고 불린다.

동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있으며 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로 쓰인다.

 

 

 

 

 

 


 

 

Spring 특징

 

 

DI(Dependency Injection) / 의존성 주입 

 

설정 파일이나 어노테이션을 통해 객체간의 의존관계를 설정하여
개발자가 직접 의존하는 객체를 생성할 필요가 없다.

 

 

이게 무슨 말이냐면 

 

우리가 보통 클래스 안에 클래스를 만들땐 아래의 소스와 같이 해당 클래스를 객체와 시켜준다.

Class A {
	private B b;
    
    public A(){
    	b = new B();
    }
}

위의 상황에서 봤을때 Class A는 B에 의해 의존적이다. 

왜 의존적이냐면 Class A는 B가 정상이여야지만 정상으로 될수 있기 때문에 의존적이다.

 

이걸 알아듣기 쉽게 말하자면 Class A에서 B는 하나의 부품이다.

Class A 내부에서 B 부품을 만들다가 잘못되면 Class A를 생성할수가 없다.

하지만 외부에서 가져온 부품을 쓴다면 Class A 자체를 만드는데는 문제가 없다.

 

따라서 위 코드에서 의존성 주입을 제거한다면 아래와 같이 소스를 만들수가 있다.

 

Class A{
	
    private B b;
    
    public A(){}
    
    public void setB(B b){
    	this.b = b;
    }
}

 

 

 

 

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

 

AOP는 하나의 방법론으로서

트랜잭션, 로깅, 보안 등

여러 모듈, 여러 계층에서 공통으로 필요로 하는 기능의 경우 해당 기능들을 분리하여 관리한다.

 

 

 

POJO(Plain Old Java Object)

 

POJO는 프레임워크에 종속된 무거운 객체를 만들게 된 것에 반발해서 사용되게 된 용어인대

Spring 에선 POJO를 기반으로 만들었다.

 

POJO에 대한 자세한 내용은 아래 링크를 통해서 확인하면 될것 같다.

https://limmmee.tistory.com/8

 

스프링 프레임워크 1 - POJO에 대하여

스프링 프레임워크 (Spring Framework) 1 - POJO에 대하여 프레임워크란? 소프트웨어 프레임워크 : 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조 (by 위키피디아) 개발자에게 프레임

limmmee.tistory.com

 

따라서 Spring 은 POJO를 사용하여 일반적인 J2EE 프레임워크에 비해 특정 라이브러리를 사용할 필요가 없어

개발이 쉬우며, 기존 라이브러리의 지원이 용이하다.

 

 

 

 

IOC(Inversion Of Controll) / 제어 반전

 

컨트롤의 제어권이 개발자가 아니라 프레임워크에 있다는 뜻으로

객체의 생성부터 모든 생명주기의 관리까지 프레임워크가 주도하고 있다.

객체를 생성하고, 직접 호출하는 프로그램이 아니라, 만들어둔 자원을 호출 해서 사용한다.

 

이말은 특정 객체를 컨테이너에서 생성하고 관리하여서 해당 컨테이너에서 특정 객체를 가져와서 사용한다는 뜻이다.

 

근데 왜 Inversion 반전이라는 단어를 썼을까?

 

 

Inversion을 쓰게 된 이유는 아래와 같다. 

우리가 조립형 컴퓨터를 사게 된다면 아래와 같은것들이 필요하다.

 

CPU, SSD, 메인보드, 그래픽카드, 쿨러, 파워, 본체케이스

 

위의 물건들을 가지고 컴퓨터를 조립을 한다.

그래서 보통은 조립을 할때 아래와 같은 순서를 거친다.

 

 

                    

CPU, SSD, 쿨러  ---결합--->  메인보드  --결합--> 그래픽카드 --결합--> 파워 --결합--> 본체케이스

 

이렇게 순서를 통해서 컴퓨터를 조립하게 된다.

 

위 방식이 IOC와 같은 방식이다.

 

기존의 결합되어 있는 방식으로 객체를 만들거나 하게 된다면 

아래와 같이

Class A -> Class B -> Class C -> Class D

 

Class A에서 B를 만들고 B에서 C를 C에서 D를 이렇게 만들게 되는데

 

IOC 방식은 컴퓨터 조립과 같이 작은 부품들을 먼저 조립하여

 

D -> C -> B -> A

 

D를 만들어 C에 결합 D+C 만든걸 B에 결합 D+C+B 만든걸 A에 결합 이런 방식으로 만드는것이다.

그래서 기존의 방식과는 반전이 되어 있어서 Inversion을 사용하는것이다.

 

 

 

그럼 이제 Spring에 대해서 알아봤으니 Spring을 다운 받는 방법에 대해서 알아보자.

 

 

 

 


 

 

Spring 다운 방법

Spring 을 다운받는 방법에는 2가지 방법이 있다.

 

1. Spring 사이트에서 다운을 받는 방법

2. 이클립스에서 Eclipse 마켓에서 다운받는 방법.

 

나는 2번을통해서 다운받았다.

 

그럼 각각의 방법에 따라서 만드는 방법을 알아보자.

 

 

 

 

1. Spring 사이트에서 다운을 받는 방법

 

https://spring.io/tools

 

Spring Tools 4 is the next generation of Spring tooling

Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE.

spring.io

 

위사이트를 들어가서 다운을 받고 알집을 풀어준후 STS.exe 파일을 실행시켜주면 된다.

 

 

 

그럼 설치 완료!

 

 

 

 

2. 이클립스에서 Eclipse 마켓에서 다운받는 방법.

 

 

 

이 방법은 이클립스를 들어가 상단에 있는 Help -> Eclipse Marketplace 를 들어가서 

 

 

위 사진처럼 STS를 입력해서 들어가서 내가 표시한 걸 다운 받으면 된다.

 

다운을 완료 했다면 이제 Spring Legacy Project를 만들면 된다.

그리고 위처럼 프로젝트 명을 입력하고 Spring MVC Project 를 입력하고 Next를 누른다.

 

그럼 아래와 같은 화면이 나타난다.

 

 

여기서는 이제 리소스 폴더의 패키지를 만드는 부분이다. 보통은 패키지를 3레벨로 만든다.

 

ex)

com.hoho.test

 

이렇게 만들고 finish를 누르면 끝이다.

 

 

이렇게 만들고 나서 이전에 만든 서버에 위에서 만든 Spring 프로젝트를 add 해서 

서버를 돌리고 그런 다음에 

 

localhost:포트번호/프로젝트명 를 입력하면 아래와 같은 화면이 나온다.

 

 

 

 

Part 2를 보려면 아래 링크를 통해서 확인하면 된다.

 

https://wpioneer.tistory.com/219?category=1051315 

 

[Spring] [Spring] Spring 설치 및 MVC 프로젝트 구조 설명 Part2

우리가 Part1에서 Spring이 뭔지 알았고 설치하여 프로젝트를 생성했으니 이제 해당 프로젝트가 어떤 방식으로 홈페이지를 만들었는지 확인해보자. 못보신 분들은 아래 링크를 통해서 확인하면 될

wpioneer.tistory.com

 

반응형