내장 WAS스프링 부트의 각 웹 애플리케이션에는 내장 WAS(Web Application Server)가 존재웹 애플리케이션을 개발할 때 가장 기본이 되는 의존성인 ‘spring-boot-starter-web’의 경우 밑 그림과 같은 톰캣을 내장한다.스프링 부트이 자동 설정 기능은 톰캣에도 적용되므로 특별한 설정 없이도 톰캣을 실행할 수 있다. 필요에 따라서 톰캣이 아닌 다른 웹 서버(Jetty, Undertow 등)로 대체 할 수 있다.WAS이란?Was(Web Application Server)란?HTTP 요청을 받아서,자바로 만든 웹 프로그램(Servlet, JSP 등)을 실행하고,응답을 클라이언트에게 돌려주는 역할을 한다.자바로 만든 웹 서비스를 동작시키려면 WAS가 꼭 필요하다. WAS 동작 순서..
자동 설정스프링 부트 → 스프링 프레임워크의 기능을 사용하기 위한 자동 설정(Auto Configuration)을 지원자동 설정은 애플리케이션에 추가된 라이브러리를 실행하는데 필요한 환경 설정을 알아서 찾아준다.예제@SpringBootApplicationpublic class Chapter1Application { public static void main(String[] args) { SpringApplication.run(Chapter1Application.class, args); }}@SpringBootApplication이걸 붙이기만 해도 Spring이 자동으로 필요한 설정과 Bean을 찾아서 알아서 등록해줌@SpringBootApplication 애너테이션3개의 애너테이션이 합쳐진 것포함된 어..
의존성 관리Spring Framework는 의존성 설정을 개발자가 직접 하고, 호환되는 버전 관리도 수동으로 해야 해서 불편함이 많았음.하지만 스프링 부트에서는 이 같은 불편함을 해소 하기 위해💡 ‘spring-boot-starter’라는 의존성을 제공의존성은 여러 종류가 있음각 라이브러리의 기능과 관련해서 자주 사용되고 서로 호환되는 버전의 모듈 조합을 제공 → 이를 통해 개발자는 라이브러리 호환 문제를 해결할 수 있다. 좀 더 예를 들어 설명한다면기존 Spring Framework 방식의 문제점예전에는 어떻게 했을까?기존 Spring 프로젝트에서는 다음과 같은 식으로 직접 라이브러리 버전을 정해서 명시해야 했음dependencies { implementation 'spring-core:4.3...
스프링 프레임워크 vs 스프링 부트하이버네이트(Hibernate) → 자바 객체 ↔ 관계형 데이터베이스 간의 매핑(ORM, Object-Relational Mapping) 을 도와주는 프레임워크즉, 자바 객체를 DB 테이블과 자동으로 매핑해주고, SQL문 없이도 DB에 접근하게 해줌Spring에서는 JPA(Java Persistence API)라는 표준 인터페이스를 사용하고, 그 구현체 중 가장 유명한 것이 HibernateJDBC(Java Database Connectivity)란? (1990년대 후반~)Java에서 DB 연결하는 가장 원시적이고 기본적인 방식Java와 DB 사이를 연결해주는 가장 기본적인 방법이고 직접 SQL문 작성 필요반복적인 코드가 많고 생산성이 낮음Connection conn =..
스프링 프레임워크의 다양한 모듈스프링 프레임워크는 기능별로 구분된 약 20여 개의 모듈로 구성돼 있다. 그림 1.3은 스프링 공식 문서에서 제공하는 다이어그램스프링 프레임워크 공식 문서에는 스프링 버전 별로 다른 다이어그램을 제시하고 있지만 큰 틀은 유사하다.스프링 프레임워크를 사용한다고 해서 모든 모듈을 사용할 필요는 없다.애플리케이션 개발에 필요한 모듈만 선택해 사용하게끔 설계되어 있다. == 경량 컨테이너 설계
관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)객체지향 프로그래밍(OOP : Object-Oriented PRogramming)과 다른 것AOP란?AOP는 관점을 기준으로 묶어 개발하는 방식을 의미 == 핵심 로직과 부가 기능을 분리해서 코드를 깔끔하게 관리하는 방식여기서 관점(aspect)이란 어떤 기능을 구현할 때 그 기능을 ‘핵심 기능’과 ‘부가 기능’으로 구분해 각각을 하나으로 보는 것을 의미그럼 ‘핵심 기능’과 ‘부가 기능’의 의미를 알아보자핵심 기능비즈니스 로직을 구현하는 과정에서 비즈니스 로직이 처리하려는 목적 기능을 말한다.ex → 클라인어트로부터 상품 정보 등록 요청을 받아 DB에 저장하고 그 상품 정보를 조회하는 비즈니스 로직을 구현했다면 (1) 상품..