김갱환
맨땅에 코딩
김갱환
전체 방문자
오늘
어제
  • 분류 전체보기 (239)
    • ⁂ 맨땅에 코딩 (11)
      • : Story (3)
      • : MiniProject 'MyWeb' (1)
      • : Final Project (5)
      • : Josa-Moa 한국어 조사 처리 프로젝트 (1)
    • —————Frontend——————————————.. (0)
    • ⁂ HTML (10)
      • : 기본 익히기 (10)
    • ⁂ CSS (15)
      • : 기본 익히기 (15)
    • ⁂ Java Script (32)
      • : 기본 익히기 (28)
      • : 자바스크립트 라이브러리 (1)
      • : 연습 문제 (3)
    • ⁂ jQuery (11)
      • : 기본 익히기 (11)
    • ⁂ Bootstrap (3)
      • : 기본 익히기 (3)
    • ⁂ TailWind CSS (1)
    • ⁂ AJAX (5)
      • : 기본 익히기 (5)
    • ⁂ Vue.js (3)
      • : 기본 익히기 (3)
    • —————DB : Data Base————————.. (0)
    • ⁂ Oracle DB (27)
      • : 기본 익히기 (24)
      • : 연습 문제 (3)
    • ⁂ MyBatis Framework (15)
      • : 기본 익히기 (15)
    • —————Backend———————————————.. (0)
    • ⁂ Java (62)
      • : 기본 익히기 (42)
      • : JDBC - Java DataBase Conn.. (4)
      • : Crawling (2)
      • : 독학으로 공부하기(과거) (11)
      • : 연습문제 (3)
    • ——————Web————————————————— (0)
    • ⁂ JSP (28)
      • : 기본 익히기 (28)
    • ⁂ Spring FrameWork (15)
      • : Legacy Project (1)
      • : 기본 익히기(Boot 기반) (14)
    • ——————————————————————— (0)
    • ⁂ Error Note (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코딩공부 #코딩 #자바 #자바독학 #자바공부 #개발자 #프론트앤드 #백앤드 #풀스택
  • 비트연산자 #코딩공부 #자바공부 #코딩 #자바 #프로그래밍 #개발자
  • 자바공부
  • 코딩공부 #자바공부
  • 프론트앤드
  • web.xml수정
  • 자바
  • 코딩 #코딩공부 #프론트앤드 #백앤드 #풀스택개발자
  • ErrorPage
  • 연산자 #기본연산자 #코딩 #자바 #독학 #자바공부 #자바연산자
  • 코딩
  • 코딩공부
  • 백앤드
  • httperror
  • 풀스택
  • HTML공부
  • 개발자
  • 객체지향프로그래밍
  • http에러메세지
  • 코딩 #코딩공부 #상수 #리터럴 #형변환 #개발자 #자바 #자바공부 #자바독학

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김갱환

맨땅에 코딩

⁂ Spring FrameWork/: 기본 익히기(Boot 기반)

[Spring] #2 스프링 프레임워크의 특징

2022. 10. 31. 10:41

1. 스프링 프레임워크 이해하기

 

스프링을 사용하기 위해서 우선 스프링 프레임워크의 특징을 알아봐보자.

 

1) 유연성

  스프링은 확장성이 높다. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.

 또한 스프링은 Plain Old Java Object 방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.

 

2) JDBC와 JPA

스프링은 데이터베이스에 접속하고 자료를 저장 및 읽어오기 위한 여러 가지 유명한 라이브러리, 즉 JDBC, iBATIS(MyBatis), 하이버네이트 등에 대한 지원 기능을 제공하여 데이터베이스 프로그래밍을 쉽게 사용할 수 있다.

 

3) 의존성 주입(DI; Dependency Injection)

  각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.

 

4) 제어 역전(IOC; Inversion of Control)

  컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.

 

5) 관점 지향 프로그래밍(AOP)

  트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.

 

 

2. Spring Boot Project의 이해

 

 우리가 스프링 프레임 워크에서는 스프링 부트 프로젝트를 통해 작업을 할 예정이다.

 여기서 기존의 자바에서 사용했던 자바 프로젝트나 다이나믹 웹 프로젝트와의 차이점을 알아보자.

 

 - Java Project : .java

 - Dynamic Web Project : .java / .jsp / .html / .css / .js ~~

 - Maven Project : pom.xml

   Gradle Project

 - Spring Boot Project : Dynamic Web Project + Maven Project(New Version)

 - Spring Legacy Project : Dynamic Web Project + Maven Project(Old Version)

 

1) Spring Boot의 특징

  - Spring Legacy Project에 비해서 설정이 간소화됨
  - WAS(Tomcat)가 포함되어 있어서 서버 설정이 간소화됨(기존에 실행중인 톰캣은 중지시키고 실행시켜야 함)
  - Spring Boot Application에서는 JSP대신 template을 사용하는 것을 권장하고 있음.
  - 스프링 MVC와의 통합 모듈을 제공하며, 애플리케이션에서 JSP로 만든 기능들을 완전히 대체할 수 있음

 

2) Maven과 Gradle의 차이

  - 스프링 부트 프로젝트를 생성할 때 빌드 툴


  ① Maven 프로젝트

     내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데 필요한
     다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운 받아준다.
     외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한다음, 로컬시스템의 캐시에 모두 저장한다.

     POM(Project Object Model) : pom.xml파일을 말하며 Maven의 기능을 이용하기 위해 POM이 사용된다.

     ┌─src/main/java
     ├─src/main/resources
     │  ├─static                         자바스크립트, CSS, 이미지등 정적인 요소
     │  ├─templates                      뷰페이지
     │  └─application.properties         환경설정(포트번호, DB연결등)
     ├─Maven Dependencies
     ├─src
     ├─target
     └─pom.xml

 

  ② Gradle 프로젝트

     기본적으로 빌드 배포 도구(Build Tool)이다

     ┌─src/main/java
     ├─src/main/resources
     │  ├─static
     │  ├─templates
     │  └─application.properties
     ├─Project and External Dependencies
     ├─bin
     ├─gradle
     ├─src
     ├─build.gradle                      라이브러리 의존성, 플러그인, 라이브러리 저장소 설정. Maven pom.xml역할
     ├─gradlew                           리눅스 또는 맥OS용 실행 쉘 스크립트 파일
     ├─gradlew.bat                       윈도우용 실행 배치 스크립트 파일
     └─settings.gradle                   프로젝트 구성 정보 파일

 


3) 웹 템플릿 엔진(Web Template Engine)

  - 웹문서가 출력되는 엔진이며, 동적 컨텐츠를 생성하는 방법이다.
  - View만 만드는데 사용하는 것이 아니며, 여러 가지 용도(code generation, email 등)로 사용할 수 있지만
    주로 사용하는 기능이 View를 만드는 것이다.
  - 스프링 부트가 자동 설정을 지원하는 템플릿 엔진이 4가지(FreeMarker, Groovy, Thymeleaf, Mustache, JSP)가 있다

저작자표시 비영리 동일조건

'⁂ Spring FrameWork > : 기본 익히기(Boot 기반)' 카테고리의 다른 글

[Spring] #6 View와 Controller 연습하기(MVC 중 VC)  (0) 2022.11.01
[Spring] #5 어노테이션과 스프링 컨테이너(+ 내장형 톰캣 환경설정하기)  (0) 2022.10.31
[Spring] #4 pom.xml 뜯어보기  (0) 2022.10.31
[Spring] #3 프로젝트 만들기(Maven)  (0) 2022.10.31
[Spring] #1 STS 설치하기 : 스프링 프레임워크(Spring FrameWork) 환경구축하기  (0) 2022.10.28
    '⁂ Spring FrameWork/: 기본 익히기(Boot 기반)' 카테고리의 다른 글
    • [Spring] #5 어노테이션과 스프링 컨테이너(+ 내장형 톰캣 환경설정하기)
    • [Spring] #4 pom.xml 뜯어보기
    • [Spring] #3 프로젝트 만들기(Maven)
    • [Spring] #1 STS 설치하기 : 스프링 프레임워크(Spring FrameWork) 환경구축하기
    김갱환
    김갱환
    코딩의 코자도 모르는 이의 공부 기록장

    티스토리툴바