본문 바로가기

스프링 부트로 배우는 자바 웹 개발

(4)
Spring Boot) 5. REST API 서버 만들기 + REST 관련 요소 1. REST Representational State Transfer 분산 네트워크 프로그래밍의 아키텍처 스타일 API : 데이터와 기능의 집합 , 이를 통해 데이터와 기능을 사용자들이 사용할 수 있게 함 REST API : API 구조가 REST 요건에 부합하는 경우 RESTful하다고 말함 1.1 REST의 특징 클라이언트 서버 클라이언트 서버가 각각 독립적 상태 없음 클라이언트 서버간 통신시 상태 없음, 서버가 클라이언트 상태 기억할 필요 없음 레이어드 아키텍처 서브 클라이언트 사이에 다 계층 형태로 레이아 추가, 수정, 제거 가능 캐시 캐시 있을 수도 있고 없을수도 있는데 있다면 클라이언트가 응답 재사용 할 수 있음. 서버 부하 낮춰서 성능 개선 코드 온 디맨스 요청이 오면 코드를 줌 특정 시점..
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: ..