[Spring] 웹 개발을 하는 세 가지 방법(2) : MVC와 템플릿 엔진
·
Spring
웹 개발의 세 가지 방법 1. 정적 컨텐츠 👈 2. MVC와 템플릿 엔진 👈 3. API MVC와 템플릿 엔진 MVC : Model, View, Controller 과거 JSP 모델 1 방식에서는 View와 Controller가 구분되어 있지 않고, View에서 모든 역할을 다 수행했다 View는 화면을 그리는 데 모든 역량을 집중해야 한다 Controller는 비즈니스 로직, 내부적인 처리를 한 후, 화면에서 필요한 것을 모델에 담아 화면 쪽에 넘겨준다 > 실행해보기 controller 동작에 대해 살펴봅니다 1. HelloController 파일에 다음과 같은 내용을 추가 @GetMapping("hello-mvc") public String helloMVC(@RequestParam("name") St..
[Spring] 웹 개발을 하는 세 가지 방법(1) : 정적 콘텐츠
·
Spring
웹 개발의 세 가지 방법 1. 정적 컨텐츠 👈 2. MVC와 템플릿 엔진 3. API 정적 컨텐츠 - 스프링 부트는 정적 컨텐츠 기능을 기본적으로 제공한다 https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content /static 디렉터리에서 정적 콘텐츠를 불러온다고 합니다 웰컴 페이지 만들기에서 static 폴더에 정적 파일을 넣었었죠! > 실행해보기 hello-static.html 파일을 static에 생성하고 아무 내용이나 입력해보았습니다 프로젝트를 실행하고 다음과 같은 파일명으로 접근합니다 localhost:8080/h..
[Spring] 웹 개발을 하는 세 가지 방법 : 정적 컨텐츠, MVC와 템플릿 엔진, API
·
Spring
웹 개발의 세 가지 방법 자세한 예시 및 동작 설명은 각 게시물에 대한 링크로 달아두었습니다 1. 정적 컨텐츠 서버에서 하는 것 없이 서버에서 웹 브라우저에 파일을 그대로 내려주는 것 👉 Click to Go [Spring] 정적 콘텐츠 웹 개발의 세 가지 방법 1. 정적 컨텐츠 👈 2. MVC와 템플릿 엔진 3. API 정적 컨텐츠 - 스프링 부트는 정적 컨텐츠 기능을 기본적으로 제공한다 https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/referen.. codesyun.tistory.com 2. MVC와 템플릿 엔진 가장 많이 사용하는 방법으로, HTML을 그냥 주는 것이 아니라 서버에서 프로그래밍하여 HTML을 동적으로 바꿔서 내려주는 것 대표적인 템플..
[Spring] 스프링 프로젝트 빌드하고 실행하기
·
Spring
cmd 창에서 프로젝트를 build 해보고 실행까지 해보기 😎🙌 제 글은 모두 window 사용을 기준으로 합니다! 1. 프로젝트 폴더로 이동해서 cmd 창 열기 강사님은 맥을 쓰셨지만, 저는 윈도우에서 작업하기 때문에 파일 탐색기에서 폴더로 이동! 다음 사진처럼 주소창에 cmd + [enter] 치면 해당 위치에서 cmd 창이 열립니다 📌 참고 : 윈도우 cmd 명령어 리눅스 명령어만 사용해봤어서 이번에 찾아가면서 사용했네요 🙄 이번에 게시글에서 사용한 두 가지 명령어만 써두겠습니당 cd : 폴더 이동할 때 사용 (리눅스의 cd) dir : 현재 폴더의 파일, 폴더 목록을 보여준다 (리눅스의 ls) 2. build 다음 명령어로 build ! gradlew build 📌 build가 잘 안될 때에는 c..
[Spring] 정적 / 템플릿 Welcome Page 만들기
·
Spring
지난 글에서 프로젝트를 실행했을 때, localhost를 통해 접속하면 다음과 같은 화면이 나왔었습니다! 프로젝트 내용이 아무것도 없기 때문에 위와 같은 에러가 떴죠?! 이렇게 localhost:8080으로 접속했을 때 뜨는 첫 페이지! welcome page를 만들어보도록 하겠습니다 🧨🧨🧨 > static Welcome Page 만들기 1. src > main > resources > static 에 index.html 파일 생성 2. 다음과 같은 내용 입력 Hello hello 3. 프로젝트 실행 후, localhost:8080 접속 입력한 HTML 파일의 내용대로 Welcome Page가 생성되었습니다 ✨ 저는 /hello에 만들어둔 페이지가 있어서 hello를 클릭하면 해당 페이지로 이동되네요 이..
[Spring] 스프링 부트 / 테스트 라이브러리 살펴보기
·
Spring
강의를 들으면서 다음과 같이 External Libraries, Gradle 창을 직접 살펴보며 라이브러리를 살펴보았습니다! 라이브러리는 직접 사용해봐야 와닿기 때문에 있구나~하고 듣자고 하셨기 때문에 자세한 설명은 머리에만 남기고! 주요 라이브러리만 정리해두고 넘어가겠습니당 👊 🔎 라이브러리 살펴보기 Gradle / Maven은 의존관계가 있는 라이브러리를 함께 다운로드 합니다. 스프링 부트 라이브러리 > spring-boot-starter-web ˙ spring-boot-starter-tomcat : 톰캣 (웹서버) ˙ spring-webmvc : 스프링 웹 MVC > spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진 (View) > spring-boot-starter(공..
[Spring] JUnit / IntelliJ에서 스프링 테스트 코드 작성하기
·
Spring
견고한 서비스를 위해서는 TDD를 하거나 최소한 테스트 코드를 작성해야 합니다 📌 TDD (Test Driven Development) 방법론과 테스트 기법의 종류 스프링 부트에서 단위테스트 코드를 작성하는 법을 배워봅시다! 현재 스프링 구조를 잘 파악하고 있지는 못하여 교재와 구글링을 통해 습득한 지식으로 간단한 테스트만 진행합니다 스프링 프레임워크에 익숙해진 후에 한번 더 테스트 코드 작성에 대한 글을 쓰겠습니다 👊 이번 글은 저처럼 간단한 테스트 코드를 체험해보시고 싶은 분들만 참고하세요 😉 xUnit - 테스트 코드 작성을 도와주는 프레임워크 - 개발환경(x)에 따라 Unit 테스트를 도와주는 도구 - 대표적인 xUnit 프레임워크들 * JUnit - Java * DBUnit - DB * CppU..
[Spring] 스프링 프로젝트 생성 / 스트링 부트 스타터, 인텔리제이(IntelliJ)로 스프링 프로젝트 실행
·
Spring
0. 준비물 - Java 11 설치 : 다른 최신 버전을 사용해도 좋지만 이 과정에서 오류가 발생하지 않으려면 ver.11 추천 - IDE : 이클립스 또는 IntelliJ (저는 인텔리제이 사용합니다!) 1. 스트링 부트 스타터 사이트에서 스프링 프로젝트 생성 - 스프링의 기초부터 만들 필요 없이, 스프링 부트 기반으로 스프링 프로젝트를 생성할 수 있다 https://start.spring.io/ 자세히 살펴보자! 1.1 Maven / Gradle Project 라이브러리를 가져오고 빌드하는 것까지 관리하는 툴 : Maven, Gradle 과거에는 Maven을 많이 사용했지만, 현재는 대부분 Gradle로 넘어왔다! 1.2 Language 사용할 언어 선택 : Java 1.3 Spring Boot 스프..
[Spring] 스프링을 시작하며 : 스프링 프레임워크의 개념과 특징, MVC 구조, 스프링 부트 (Spring Framework, Spring MVC, Spring boot)
·
Spring
> 스프링 프레임워크 (Spring Framework) 스프링(Spring) 이란? 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 - 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공 - 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있다 스프링의 특징 ˙ 경량 컨테이너로서 자바 객체를 직접 관리한다 ˙ POJO(Plain Old Java Object) 방식의 프레임워크 - POJO : 단순하고 가벼운 자바 객체(우리가 자바에서 개발하는 지극히 평범한 객체) ˙ IoC(Inversion of Control; 제어 반전) 지원 - 필요에 따라 컨트롤의 제어권을 사용자가 갖지 않고 스프링에서 사용자의 코드를 호출 ˙ DI(Dependency injection; 의..