[Spring] Spring Framework (설치 / 설정)

Gabriela·2023년 9월 25일
1

Spring

목록 보기
1/8
post-thumbnail

Framework

  • Framework는 애플리케이션의 기본 구조를 제공한다.
    • 애플리케이션을 개발할 때 사용할 수 있도록 미리 만들어 놓은 클래스나 인터페이스 등을 제공한다.
  • 스트러츠, 스프링과 같은 Framework들이 있다.

Framework 장점

  • 처음부터 다 만들 필요가 없다.
    • 이미 만들어진 기능을 가져다 사용하므로 효율성이 높고 품질이 보장된다.
    • 개발 시간이 짧아진다.
  • 개발 방법이 정해져 있다.
    • 개발의 표준화로 인해서 생산성이 높아진다.
    • 개발 후 유지보수기능의 확장이 용이하다.

Spring Framework 란?

  • 2004년 로드 존슨(Rod Johnson)이 만든 오픈소스 프레임워크이다.
  • 가장 널리 사용하는 프레임워크 중 하나이다.
  • 자바 기반의 엔터프라이즈 애플리케이션 개발을 담당하던 EJB(Enterprise JavaBeans)를 대체한다.

Spring Framework 구조

(출처 : https://docs.spring.io/)


Spring Framework 특징

  • 경량(Lightweight) 프레임워크
    • EJB에 비해 가벼운 경량 프레임워크(Lightweight Framework)
    • 몇 개의 모듈과 JAR 파일로 구성
  • 컨테이너(Container) 지원
    • 특정 객체의 생성과 관리를 담당하며 객체 운용에 필요한 다양한 기능을 제공
    • Singleton, Prototype 등 여러 형태의 객체 운용 가능
  • 제어의 역행(IoC)
    • 객체 생성을 개발자가 대신 컨테이너가 담당
    • 애플리케이션을 구성하는 객체 간 결합을 느슨한 결합(낮은 결합도)으로 유지
  • 관점지향 프로그래밍(AOP)
    • 비즈니스 메소드를 구성하는 공통 모듈과 핵심 모듈을 분리하여 작성
    • 모든 비즈니스 메소드가 반복해서 사용하는 공통 로직을 핵심 비즈니스 로직과 구분하여 작성

Spring Framework 모듈

모듈설명
spring-beans스프링 컨테이너를 이용해서 객체를 생성하는 기본 기능 제공
spring-context객체 생성, 라이프 사이클 처리, 스키마 확장과 같은 기능 제공
spring-aopAOP 기능 제공
spring-webREST 클라이언트, 데이터 변환 처리, 서블릿 필터, 파일 업로드 지원 등 웹 개발에 필요한 기반 기능을 제공
spring-webmvc스프링 기반의 MVC 프레임워크 제공, 웹 애플리케이션을 개발하는데 필요한 컨트롤러, 뷰 구현을 제공
spring-websocket스프링 MVC에서 웹 소켓 연동 처리
spring-tx트랜잭션 처리를 위한 추상 레이어 제공
spring-jdbcJDBC 프로그래밍을 보다 쉽게 할 수 있는 템플릿 제공
spring-orm하이버네이트, JPA, MyBatis 등과의 연동 지원
spring-jmsJMS 서버와 메시지를 쉽게 주고 받을 수 있도록 하기 위한 템플릿, 애노테이션 제공
spring-context-support스케줄링, 메일 발송, 캐시 연동, 벨로시티 등 부가 기능 제공

Spring Framework 준비

  • JDK (www.oracle.com) 설치 필요
  • Apache Tomcat Server (tomcat.apache.org) 설치 필요
  • STS (spring.io) 또는 Eclipse (www.eclipse.org) 설치 필요

STS

STS, Spring Tool Suite

  • Spring Framework 사용을 위한 각종 라이브러리를 추가해 둔 IDE(Integrated Development Environment, 통합 개발 환경)
  • Eclipse와 거의 동일한 개발 환경을 제공함
  • STS3와 STS4 버전이 제공
  • STS3 : Spring Legacy Project 지원. 현재 더 이상 업데이트 되지 않음.
  • STS4 : Spring Boot Project 지원

다운로드 링크


STS(Spring Tool Suite) 설치


  • springframework-version: 5, Annotation 기반으로 많은 기능이 제공 됨
  • 설치가 완료되면 ignore 파일, repository 생성 후 실행

  • Spring Framework 공식 홈페이지 : https://spring.io/

  • Spring Frameword를 사용할 수 있는 이클립스(sts) 다운로드
  • 페이지 밑으로 내려와서 Spring Tool 3 다운로드
  • 작성 기준 가장 최근 버전인 3.9.zip 다운로드
  • sts-bundle 폴더 안에 sts.exe 설치 완료
  • 리눅스 : tar.gz
  • 맥킨토시 : dmg

서버추가


Preferences 상세 설정

(전반적으로 이클립스와 동일함)

  • 폰트 : 코딩폰트
  • 인코딩
  • Server - Runtime Environments 기존 서버 기록 지우기
  • Java - Code Style - Formatter 들여쓰기 세팅

  • JSON - JSON Files - Editor Indentation size 변경
  • Web - CSS Files-Editor HTMl Files-Editor
  • XML - XML Files - Editor
    • Indentation size 변경

Sping의 설정

  • Run/Debug - Console : Limit console outputUncheck(제한풀기)
  • Window - Web Browser - Chrome으로 변경
    (실행을 크롬으로 한다는 의미)

프로젝트 생성&설정

  • Spring Legacy Project로 생성한다
  • 프로젝트 툴은 Spring MVC Project로 설정한다.

  • 프로젝트 세팅
    • Group Id : Company(회사)
    • Artifact Id : Project(프로젝트명) / 애플리케이션이라고도함
    • Context Path : 프로젝트명
      (Context Path가 동일한 프로젝트는 여러개를 만들 수 없다.)
    • 최소 3수준의 패키지가 필요하다.

  • Maven Dependency Updating

    • 우측 하단에서 progress가 돌고 있는지 확인할 수 있다.
    • 필요한 dpendency(jar 파일)를 내려받을 땐 다른 동작을 하지 않고 업데이트가 끝날때 까지 기다려야 한다.
  • jar가 저장되는 위치 : C드라이브 - 사용자폴더 - .m2

    • 이 안에 들어있는 파일 전부 jar

모든 코드에 이상이 없는데 이유 없이 안 될때

  • jar 파일의 문제일 가능성이 제일 크다.
  • 해결책은
    • .m2에 있는 repository를 전부 다 지운다.
    • 다시 STS를 실행한다.
    • 자동으로 모든 dependency를 다시 다운받으니 업데이트가 완료될때까지 기다린다.
  • Spring은 계속해서 jar 파일들을 다운받기 때문에 기본적으로 인터넷 연결이 되어있는 상태여야 한다.

profile
개발이 세상에서 제일 재밌어요

0개의 댓글