서버 간 통신어떤 포털 사이트를 하나의 서비스 단위로 개발한다고 가정즉 블로그, 카페, 메일 등의 기능들을 하나의 애플리케이션에 통합했다는 뜻서비스를 이렇게 구성한다면 서버를 업데이트 하거나 애플리케이션을 유지보수 할 때마다 ‘사이트 작업 중입니다’ 라는 팻말을 걸고 작업을 해야됨그만큼 개발에 보수적인 입장을 취할 수 밖에 없고, 서비스 자체의 규모도 커지기 때문에 서비스를 구동하는데 걸리는 시간도 길어진다.이러한 문제를 해결하기 위해 나온 것이 → 마이크로서비스 아키텍처(MSA:Microservice Architecture)마이크로서비스 아키텍처는 단어 그대로 서비스 규모를 작게 나누어 구성한 아키텍처이 기능 적용 → 애플리케이션 하나에 여러 기능을 넣어 개발하지 않고 블로그 프로젝트, 카페 프로젝트,..
내장 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은 스프링 공식 문서에서 제공하는 다이어그램스프링 프레임워크 공식 문서에는 스프링 버전 별로 다른 다이어그램을 제시하고 있지만 큰 틀은 유사하다.스프링 프레임워크를 사용한다고 해서 모든 모듈을 사용할 필요는 없다.애플리케이션 개발에 필요한 모듈만 선택해 사용하게끔 설계되어 있다. == 경량 컨테이너 설계