자바 웹 프로그래밍

준비중..

자바 웹 프로그래밍

나만의 웹사이트를 만들어 보자!

10 Spring을 만나다: 스프링 프레임워크

# Spring을 만나다: 스프링 프레임워크 ## 목차 1. 학습목표 2. 스프링 프레임워크란? 3. 헬로 월드 실습 ## 학습목표 + 스프링 프레임워크의 이해 ## 스프링 프레임워크란? 스프링(Spring)은 자바의 대표적 오픈소스 프레임워크(Framework)이다. 여기서 `프레임워크`란 프로그램의 기본 골격(틀)을 제공하는 도구다. 예를들어 찰흙으로 사람을 만든다 가정하자. 찰흙만으로 만드려면 꽤 오랜 시간이 걸릴것이다. 골격을 세워놓고 찰흙을 붙여나가면 어떨까? 훨씬 전체적 구조가 빠르게 잡힐 것이다. 마찬가지로 프로그램의 뼈대를 잡는 것이 바로 프레임워크이다. ![Imgur](https://i.imgur.com/0Mnurqy.png) 프레임워크를 사용하면 다음과 같은 장점이 있다. 1. 생산성 증가 2. 테스팅 향상 3. 유지보수 용이 단점이 있다면 어느정도 학습이 필요하다는 것과 기존 구성이 정해져 있다는 것이다. 1. 학습비용 2. 자유도 저하 하지만 단점보다 장점이 더 많다. 이로 인해 많은 개발자들이 프레임워크를 통한 개발을 지향한다. ## 헬로 월드 실습 그렇다면 스프링을 사용 헬로월드 프로그램을 작성해보자. 개발환경 셋팅에 관한 내용은 링크를 참조하라.(http://cloudstudying.kr/lectures/111) ### 개발 환경 + IDE: STS 3.7.3 + DBMS: PostgreSQL 9.4 + Server: Tomcat 7.0 ### 프로젝트 생성 먼저 STS 실행 후, Spring Legacy Project에서 `Spring MVC Project`를 생성한다. ![](https://i.imgur.com/yMXpRdI.png) `next` 클릭 후, 패키지명을 작성한 뒤 `Finish.` ![](https://i.imgur.com/Ve7UhSu.png) 이때 패키지 마지막 이름(`myapp`)에 따라 URL 접속이 결정됨을 주의할 것. ``` http://localhost:8080/myapp ``` ### 프로젝트 실행 다음으로 프로젝트 실행을 위해 서버를 추가한다. + STS > Preferences > Server > Runtime Enviroments + 톰캣(Tomcat)을 버전과 경로에 맞게 추가 ![](https://i.imgur.com/CsKSegH.png) 추가 완료 후, 프로젝트를 실행하자. ![](https://i.imgur.com/5WKRYhw.png) 실행 시, 서버 지정을 해야한다. ![](https://i.imgur.com/tP40gyJ.png) 아래 화면이 나왔다면 성공! ![](https://i.imgur.com/4HLfBGx.png) ### 한글 깨짐 문제 그런데 한글이 깨져나온다. `home.jsp`파일을 열고 이를 해결하자. ![](https://i.imgur.com/tYyvlxE.png) 페이지 인코딩 방식을 추가(`page pageEncoding="utf-8"`)한다. home.jsp ``` <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!-- 인코딩 방식 "utf-8" 추가 --> <%@ page pageEncoding="utf-8" session="false"%> <html> <head> <title>Home</title> </head> <body> <h1>Hello world!</h1> <p>The time on the server is ${serverTime}.</p> </body> </html> ``` 한글이 잘 출력됨을 알 수 있다. ![Imgur](https://i.imgur.com/o6O7obs.png) ### 인코딩이란? 인코딩이란 문자를 저장하는 방식이다. 영어 뿐만 아니라 `CJK`로 일컬어지는 중국어, 일본어, 한글이 모두 정상 출력되려면 `utf-8` 인코딩을 따라야 한다. ## 문제 프레임워크와 라이브러리의 차이를 조사하고 이를 설명하시오. ## 요약 1. 스프링이란, 자바 프로그램 개발을 위한 프레임워크다. 2. 프레임워크란, 개발의 생산성을 돕는 클래스의 집합체로 프로그램 구조를 형성한다. 3. 한글 깨짐 문제는 인코딩 설정으로 해결할 수 있다.