콘텐츠기획자의 IT입문서

Spring Boot / Spring이란? 본문

Spring

Spring Boot / Spring이란?

lazy_cat 2021. 9. 4. 13:47

스프링 프레임워크란?

자바 생태계에서 가장 대중적으로 사용되는 개발 프레임워크.

경량 프레임워크라는 특징을 가진다.

개발의 전 과정을 빠르고 효율적으로 진행하는데 일차적인 목표를 둔다.

*스프링 프레임워크는 설정이 반이라고 할 정도로 셋팅이 복잡한 편.

 

주요 특징

  • 객체지향 + 의존성 주입 (Dependency Injection)
    더보기
    스프링을 이용하는 환경에서의 각각의 객체를 생성하고, 설정을 통해 이들을 연결 하는 것.
    과거 개발자가 직접 코드로 연결을 해줬다면, 스프링은 내부에 객체들을 가지고 있으므로 선언만 해주면 자동으로 원하는 객체를 넣어준다.
  • 제어의 역전 (Inversion Of Control)
    더보기
    메서드 또는 객체의 호출을 개발자가 제어하는 것이 아닌 외부에서 결정하는 것.

이들을 통해 결합도를 낮추는 방식으로 어플리케이션을 개발할 수 있다. (결합도를 낮춰 단순하게 만듦)

이러한 개발 방식으로 개발한 응용 프로그램은 단위 테스트가 용이하여 보다 퀄리티 높은 프로그램을 개발할 수 있다.
https://yoon-ve.tistory.com/48

 

  • MVC 패턴
    1) 사용자가 게시글을 작성한 후 등록 요청
    2) 컨트롤러는 게시글에 있는 데이터를 전달받아 유효성을 검증.
    3) 검증 완료 후, 모델영역에 데이터의 가공을 요청.
    4) 가공 완료 후, 데이터베이스에 데이터를 저장하고, 모델은 저장의 성공/실패 여부를 컨트롤러에게 전달.
    5) 컨트롤러는 등록 요청에 대한 결과를 뷰로 전달.



    Model : 데이터를 처리하는 영역으로, 데이터베이스와 통신하고 사용자가 원하는 데이터를 가공하는 역할.
    View : 사용자가 보이는 화면을 의미. HTML과 타임리프를 사용해서 화면을 처리함.
    Controller : Model과 View 사이에서 중간 다리 역할을 하는 영역.
    사용자가 웹에서 요청을 하면 가장 먼저 컨트롤러를 경유한다.
    컨트롤러는 사용자의 요청을 처리할 로직을 호축하고, 호출한 결과를 사용자에게 전달하는 역할 수행.

 

스프링부트 프로젝트 구조

1) src/main/java

클래스, 인터페이스 등 자바 파일이 위치하는 디렉토리

 

2) src/main/resource

내부에 static, templates 폴더와 application.properties 파일이 자동 생성됨

-templates 폴더 : 화면과 관련된 파일이 위치 (html)

-static 폴더 : 정적 리소스 파일이 위치 (css, script, images, fonts 등)

-application.properties : 웹 어플리케이션을 실행하면서 자동으로 로딩되는 파일.
                                          WAS(포트 번호, 콘텐스트 패스 등) 설정이나

                                          데이터베이스 관련 정보 관련 설정을 해당 파일에
                                          Key-Value 형식으로 지정해서 처리 가능. 

 

3) src/test/java

각각의 단계에 알맞은 테스트를 진행 할 수 있음. (기존 스프링과 달리 복잡한 설정 없이 테스트 가능)

 

4) build.gradle

plugin, dependency 정보를 담고 있음.

메이븐에 비해 그레이들은 단 한 줄의 코드로 라이브러리를 추가할 수 있다는 장점이 있음.
*메이븐은 라이브러리 버전 문제, 충돌 문제 등 다양한 문제를 발생시키므로 요즘은 그레이들을 사용하는 추세

 

Comments