스프링 공부/인프런 김영한 스프링 입문 노트정리 28

2-3. API

세 번째는 API다! 프로젝트 팀에서 API 방식으로 개발을 할 것 같아 빨리 배우고 싶었는데 드디어 처음으로 살펴보는 순간이 왔다. @ResponseBody 저번에 @GetMapping라는 참조(annotation)를 새로 배웠다면, 이번에는 @ResponseBody가 새로 등장했다. (복습: @GetMapping은 URL과 컨트롤러(함수)를 이어주는 연결고리였다.) @ResponseBody에서의 Body는 html 태그의 그 body가 아니다. HTTP 통신에서 요청과 응답을 위해 주고받는 메시지에는 헤더와 바디가 있다. 이 HTTP 응답/요청 메시지의 바디 영역에 @ResponseBody 이하의 함수가 리턴하는 값 그 자체를 넣어주겠다는 선언이 바로 @ResponseBody 참조이다. 그래서 따로 ..

2-2. MVC와 템플릿 엔진

이번에는 두 번째 스프링 웹 개발 방법인 MVC와 템플릿 엔진 사용에 대해 살펴보았다. MVC는 Model, View, Controller의 약자이다. Model은 데이터관리를 위한 모델(데이터베이스 수업시간에 배운 것) View는 화면에 무엇이 어떻게 보일 것이냐에 집중하는 부분, Controller는 데이터의 움직임 등 웹사이트 내부에서 어떤 일이 일어날 것인지를 관리하는 부분이라고 이해했다. Resolver? Converter? Resolver와 Converter라는 이름에 익숙해져야 할 듯하다! 스프링 프로젝트 내부에 있는 여러 구성요소를 뒤져서, 그 중 어떤 놈을 선택하여 결과물에 반영할지 정하고 나면 그놈을 가지고 결과물을 빚어내는 역할을 하는 것이 이 Resolver와 Converter인 것..

2-1. 정적 컨텐츠

스프링으로 웹 개발을 하는 방법에는 크게 3가지가 있다. 첫째는 단순하게 스태틱 파일로 개발하는 것, 둘째는 MVC와 템플릿 엔진을 사용하는 것, 셋째는 API를 사용하는 것이다. 가장 먼저 정적 컨텐츠에 대한 내용을 살펴보았다. 스프링이 정적 파일 (static file)을 사용하는 과정은 다음과 같다. 프로젝트의 main>resources>static 레포지토리에 static-test.html을 만들었다. 화면에 "테스트테스트"라고 뜨게 했다. 이제 main을 실행시키고 (메인 URL)/static-test.html에 접속한다. 그러면 일단 내장 톰캣 서버에서는 static-test와 관련된 컨트롤러가 있는지 스프링 컨테이너를 뒤져본다. 즉, static-test와 관련하여 만들어놓은 java 코드가..

1-4. 빌드하고 실행하기

이전 강의까지는 IntelliJ 상에서 프로젝트를 실행했다. 이번 강의에서는 IntelliJ에서가 아닌 일반적인 콘솔에서 프로그램을 빌드하고 jar 실행파일을 만든 다음 그걸 실행해보는 실습을 진행했다. 시작하기 전에, IntelliJ 상에서 프로그램이 실행되고 있지 않도록, 즉 포트가 사용되고 있지 않도록 해주어야 한다. IntelliJ 상에서 실행하든 콘솔에서 빌드한 실행파일을 이용하든 모두 8080번 포트를 사용해 서버를 열 것이다. 그런데 8080번 포트를 두 개의 프로세스가 동시에 사용하는 것은 불가능하다. IntelliJ에서 이미 8080번 포트를 점유해버리면 우리가 콘솔에서 실행파일을 만들어 실행시켜도 8080번 포트를 쓸 수가 없어서 실패하게 된다. 그러니 IntelliJ에서 프로그램을 R..

1-3. View 환경설정

이번 강의에서는 웹 앱의 기본 페이지인 Welcome Page를 만드는 두 가지 방법을 배웠다. 정적 파일 index.html를 단순히 브라우저에 넘겨주는 방식과 템플릿 엔진을 사용하여 좀 더 수준 높은 페이지 구성을 하는 방식이 있었다. 스프링에 대한 공식 웹 문서도 간단하게 살펴봤다. index.html의 정적인 사용 src>main>resources>static 안에 index.html 파일을 새로 만들어준 뒤, 화면과 같이 강사님의 코드를 따라 적는다. 강의자료에 있는 것을 복붙해도 된다. 어차피 프론트엔드가 아니라 백엔드 강의이므로 html은 가급적 복붙해서 넣으시겠다고 한다. 스프링 부트는 이렇게 static file들을 관리하는 폴더 내에 index.html이라는 이름의 파일이 있다면 자동으..

1-2. 라이브러리 살펴보기

스프링의 라이브러리에 대하여 배우는 회차이다. 감을 잡는다고 생각하고 편하게 들으라고 하셨다. 자세한 것은 해보면서 익혀가면 된다고 하심. 의존 관계(Dependencies) build.gradle 파일을 열어서 dependencies를 보면, 우리가 스프링 부트에서 지정해줬던 Thymeleaf와 web, 그리고 자동으로 땡겨와진 test 총 세 개의 라이브러리가 보인다. 그런데 왼쪽 레포지토리에서 External Library를 열어보면? 엄청나게 많은 외부 라이브러리들이 보인다. 요즘 웹 앱 하나 만드려면 기본으로 이 정도는 다 사용해야 한다고 한다. 내가 명시적으로 가져온 것은 두 가지(test까지 하면 세 가지)밖에 없는데 실제로 가져와진 External Library가 왜 이렇게 많을까? 그것은..

1-1. 프로젝트 생성

사전 준비물 자바와 IDE 설치부터 시작한다. 자바는 설치되어있으므로 넘어가고 IDE인 IntelliJ를 설치했다. 나는 지금까지 Eclipse를 사용해왔는데, 강사님의 말에 따르면 IntelliJ는 한 번 쓰면 Eclips로 돌아가지 못할 정도로 편하다고 한다. 앞으로 수업을 듣는 데에도 강사님과 같은 IDE를 쓰는 것이 편할 것 같아 IntelliJ를 깔았다. 스프링 부트 예전에는 스프링 프로젝트를 시작할 때 개발자가 일일이 다 손을 봐주었지만, 요즘은 스프링 부트라는 것을 사용해 프로젝트를 시작한다고 한다. 아래의 사이트로 들어간다. https://start.spring.io/ 먼저 Maven과 Gradle은 필요한 라이브러리를 땡겨오는 것, 빌드 등의 라이프사이클까지 다 관리해주는 툴이라고 한다...

0. 강의 소개

https://www.inflearn.com/course/스프링-입문-스프링부트/ [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 실제 동작하는 간단한 웹 어플리케이션을 개발해보며 공부하는 기초 강의 개발 순서: 스프링 프로젝트 생성 스프링 부트로 웹 서버 실행 회원 도메인 개발 웹 MVC 개발 DB 연동 - JDBC, JPA, 스프링 데이터 JP 테스트 케이스 작성 스프링 자체의 복잡하고 깊은 이론보다는, 스프링을 어떻게 사용하는지를 중점으로! 감을 잡는 기초 강의라고 생각하자. 오래되었거..