본문 바로가기

웹 개발/Spring Boot

(22)
Spring Boot) 4. 스프링 부트 웹 개발 1. 스프링 부트에 대한 이해 스프링의 복잡한 설정 웹 개발을 목적으로 하는 프레임워크로 사용하기 위해 설정을 간소화한 스프링 부트 등장 스프링 부트가 내부적으로 디스패티 서블릿, 뷰 리졸버와 같은 빈을 로드해주어 컨트롤러와 메인 메소드 실행만으로 웹에서 접근 가능 1.1 스프링 부트 프로젝트 레이아웃 자바 프로젝트 결과 파일 포맷 JAR : 로컬에서 실행되는 파일 WAR : 웹 애플리케이션 컨테이너에서 실행되는 파일 웹 자원 위치 규약 정적 html 파일 src/main/resources/static src/main/public favicon src/main/resources/favicon.ico template (tymeleaf html) src/main/reources/templates spring..
Spring boot) 3. 스프링 프레임워크 1. 빈 + 컨테이너 웹 프로젝트 = 대형 화물선 컨테이너 = 화물 컨테이너 자바 빈 = 화물 EJB (Enterprise Java Beans): 서버측 컴포넌트 모델 / 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션, 주로 업무 로직을 처리하는 역할 POJO (Plain Old Java Object): 일반 자바 클래스 Bean : 자바 클래스 2. IoC 패턴 활용 Inversion of Control : 제어의 역전 원칙 1. 하이레벨 모듈은 로우레벨 모듈에 의존하면 안 되고 모두 인터페이스에 의존해야 한다. 원칙 2. 추상화는 세부사항에 의존해서는 안된다. = 세부사항이 추상화에 의존해야 한다. 인터페이스를 활용해서 모듈간 결합도를 낮추는 것이 목적 Dedencency Injection..
Spring Boot) 2. 서블릿 Servlet 1. 서블릿 시작하기 1.1 서블릿이란 JVM 기반에서 웹 개발을 위한 명세, API 서블릿 실행을 위해 웹 애플리케이션 컨테이너가 필요 Java EE에 포함된 스펙 중 하나 자바에서 HTTP 요청 및 응답을 처리하기 위한 내용 담고 있음 1.2 서블릿 설정 build.gradle 파일에 JAR 파일 추가해서 사용 example buildscript{ repositories { jcenter() } dependencies { classpath 'org.akhikhl.gretty:gretty:+' } } apply plugin: 'java' apply plugin: 'war' apply plugin: 'org.akhikhl.gretty' apply plugin: 'eclipse' apply plugin: ..
Spring Boot) 1. 개발 환경의 변화와 자바 1. 웹 애플리케이션 컨테이너 웹 애플리케이션이 배포되는 공간 웹 서버 : 정적 파일 제공하는 서버 웹 애플리케이션 서버 : 동적 페이지를 생성 가능한 서버 (= 웹 애플리케이션 컨테이너, WAS) 1.1 클래스 로더 Write once, run anywhere, 한번 작성하면 플랫폼에 상관없이 쓸 수 있다. 자바 코드 작성 → 컴파일 → JVM에서 실행 가능한 상태 JVM에서 클래스를 실행하기위해 클래스 로더가 필요 ClassNotFoundException : 클래스 로더가 라이브러리나 클래스를 인식하지 못해서 발생하는 오류로 클래스패스에 추가하면 해결 1.1.1 특징 계층적 구조 (상위 → 하위) 최상위 : 부트스트랩 틀래스 로더 클래스 로딩 위임 가능 가시적인 규약(클래스 로딩 시 가능한 범위)가 ..
Spring Boot) Spring Boot 프로젝트 예제로 기초 이해하기 / Building an Application with Spring Boot Spring Boot 프로젝트 예제로 기초 이해하기 spring boot 동작 방식을 이해하기 위해 공식 사이트에서 제공한 가이드를 따라 연습한 내용을 정리한 자료입니다. Building an Application with Spring Boot this guide is designed to get you productive as quickly as possible and using the latest Spring project releases and techniques as recommended by the Spring team spring.io 1. 나의 개발 환경 IntelliJ IDEA CE Mac OS JDK 1.8 Gradle + intelliJ에서 스프링 부트 프로젝트를 시작하는 방법은 생략할..
Spring Boot) Gradle이란 Gradle 오픈소스 빌드 자동화 툴 거의 모든 타입의 소프트웨어를 빌드할 수 있는 유연함이 강점인 툴로 Maven 보다 빌드 스크립트 작성이 간편하다. 1. Gradle 특징 오픈 소스 기반 빌드 자동화 툴 Groovy 기반 : 자바와 문법이 유사하여 자바 개발자가 쉽게 익힐 수 있다. Maven에 비해 빌드 시간이 짧고 빠른 성능을 보인다. convention을 기반으로 빌드하여 스크립트 규모가 작고 가독성이 높다. configuration injection을 사용해서 프로젝트 조건을 체크할 수 있어 프로젝트별 cofiguration을 다르게 설정할 수 있다. 멀티 프로젝트 빌드 지원을 위해 설계되었다. Andorid Studio, IntelliJ IDEA, Eclipse 등의 IDE에서 Gradle..