스프링 웹개발 방식 1. 정적 컨텐츠 : 파일 자체를 웹 브라우저에 전달 2. MVC와 템플릿 엔진 : server에서 html파일을 변환 후 전달 3. API : xml이나 JSON(default)으로 client에게 전달, Server끼리 통신할 때 사용 저번 시간에 우리는 스프링 웹개발 방식 중 정적 컨텐츠 방식에 대해 알아봤다. 오늘은 MVC와 템플릿 엔진에 대해 알아보고자 한다. 2. MVC와 템플릿 엔진 1. MVC : Model, View, Controller 2. 템플릿 엔진 : 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어. 쉽게 말해 서버에서 동적으로 html을 변환하여 웹 브라우저로 보내주는 역할을 한다. 요즘에는 Controller와 V..
스프링 웹개발 방식 1. 정적 컨텐츠 : 파일 자체를 웹 브라우저에 전달 2. MVC와 템플릿 엔진 : server에서 html파일을 변환 후 전달 3. API : xml이나 JSON(default)으로 client에게 전달, Server끼리 통신할 때 사용 위에 3가지 방법 중 먼저 정적 컨텐츠에 대해 알아보고자 한다. 1. 정적 컨텐츠 스프링 부트는 static을 찾아 정적컨텐츠 제공 기능을 자동 지원한다. src > main > resources > static 폴더 안에 hello-static 파일을 생성한 후 아래와 같이 작성했다. 별도로 컨트롤러에 매핑하는 작업 없이 그대로 서버를 동작시켜 localhost:8080/hello-static.html을 요청해보았다. 위와 같은 화면이 결과로 출력..
1. Welcome Page 만들기 1.1 Welcome Page 생성 src > main > resources > static 폴더 안에 index.html를 생성. 위와 같이 코드를 작성한 후 서버를 실행하면 브라우저 화면이 아래와 같이 실행된다. Spring boot의 경우 src > main > resources > static 폴더 안에서 index.html을 먼저 찾고, 못찾을 경우 index 템플릿을 찾게 된다. 위와 같이 웰컴페이지를 만들어봤지만 이는 정적페이지에 불과하다. 동적페이지를 만들기 위해 나는 thymeleaf템플릿 엔진을 사용할 것이다. thymeleaf 공식 사이트: https://www.thymeleaf.org/ 스프링 공식 튜토리얼: https://spring.io/gui..
Spring boot 핵심 라이브러리 정리 스프링 부트 라이브러리 spring-boot-starter-web spring-boot-starter-tomcat : 톰캣(웹서버) spring-webmvc : 스프링 웹 MVC spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진(View) spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅 spring-boot spring-core spring-boot-starter-logging logback,slf4j 테스트 라이브러리 spring-boot-starter-test junit : 테스트 프레임워크 mockito : 목 라이브러리 assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러..
Spring boot 프로젝트를 만들 때, intellij혹은 eclipse에서 새롭게 프로젝트를 생성해도 되지만 간편하게 만들 수 있는 방법이 있다. https://start.spring.io/ 바로 위에 사이트에 접속하는 것! 나는 김영한님의 강의를 보며 아래와 같이 만들어봤다. 영상이 몇년 전 영상이라 UI가 달라진 부분이 있었는데 확인해보니 아래와 같이 만들면 된다고 한다. GENERATE를 클릭하면 알집 파일이 다운로드 된다. 해당 알집을 사용하고자 하는 폴더에 압축을 풀어준 후 Intellij로 열어주면 처음에 프로젝트 구성이 아래와 같이 되어있다. .idea : intellij 설정파일 폴더 gradle : gradle 관련 폴더 src - main - java : 실제 package와 소스..
1. pom. xml pom.xml이란 Maven의 빌드 정보를 담고 있는 파일이다. pom(project object model)을 설정하는 부분으로 프로젝트 내 블디 옵션을 설정하는 부분이다. 다른 프로젝트에도 복사 붙여넣기를 하면 되기 때문에 범용성과 협업할 때 버전관리에 용의하다. 프로젝트의 세부 메타데이터 정보를 포함한다. 1-1. pom.xml 태그의 설명과 분석 4.0.0 com.mycompany.app my-app 1 : Maven의 XML 네임스페이스를 지정 : Maven의 model Version : 그룹 ID태그 : 아티팩트ID 태그 : 버전명 태그 패키징 형식을 지정하는 태그 : 프로젝트의 이름 : Maven의 url : 프로젝트 관련 속성 : pom.xml의 상속에 관련된 태그 :..
컬렉션 프레임워크(collection framework)란? 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해놓은 것이다. 이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다. 더보기 인터페이스(interface)란? 구현된 것은 아무것도 없는 밑그림만 있는 기본 설계도 일반 메소드 또는 멤버 변수를 가질 수 없고, 오직 추상메소드와 상수만을 멤버로 가질 수 있다. -> 추상클래스보다 추상화가 더 높다. 인터페이스는 표준, 약속, 규칙이다. 인터페이스 작성 방법 in..
Spring에서 수동으로 빈을 등록할 때에는 @Configuration 클래스 안에서 @Bean을 사용해야한다. 이번에는 왜 @Configuraiton 클래스 안에서 @Bean을 사용해야 하는지 알아보도록하자. @Configuration 안에 @Bean을 사용해야 하는 이유 @Bean 어노테이션을 이용한 수동 빈 등록 스프링에서는 일반적으로 컴포넌트 스캔을 사용해 자동으로 빈을 등록하는 방법을 이용한다. 하지만 @Bean 어노테이션을 사용해 수동으로 빈을 등록해야 하는 경우도 있다. 대표적으로 다음과 같은 경우에 @Bean으로 직접 빈을 등록해준다. 개발자가 직접 제어가 불가능한 라이브러리를 활용할 때 애플리케이션 전범위적으로 사용되는 클래스를 등록할 때 다형성을 활용하여 여러 구현체를 등록해주어야 할 ..
기존의 Spring MVC에서는 xml을 활용하여 Bean을 등록을 했다. 하지만 프로젝트의 규모가 커짐에 따라 사용하는 요소들을 xml에 등록하는 것이 상당히 번거로워 져서 어노테이션(Annotation, @)를 활용한 Bean 등록 방법이 탄생하게 되었다. 이번에는 Spring에서 Bean을 등록하기 위해 활용가능한 @Bean, @Component, @Configuration 어노테이션에 대해서 알아보도록 하자. Spring Bean이란? Spring에서는 Spring의 DI Container에 의해 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부르며, 이러한 Bean들은 Spring을 구성하는 핵심 요소다. Spring의 Bean을 정리하면 아래와 같다. POJO(Pl..
1. DAO DAO는 DB의 data에 접근하기 위한 객체로 직접 DB에 접근하여 데이터를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행한다. DataBase 접근을 하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용하는데 DAO의 경우 DB와 연결할 Connection까지 설정되어 있는 경우가 많다. 현재 많이 쓰이는 Mybatis 등을 사용할 경우 커넥션풀까지 제공되고 있기 때문에 DAO를 별도로 만드는 경우는 드물다. 2. DTO DTO는 계층간(Controller, View, Business Layer) 데이터 교환을 위한 자바 빈즈(Java Beans)를 의미한다. DTO는 로직을 가지지 않는 데이터 객체이고, getter/setter메소드만 가진 클래스를 의미한다. DTO(Data Tr..