Spring Boot 15

Executable Jar

👣 개요 Spring Boot에는 Executable Jar라는 개념이 존재하여 Web Application Project 빌드 결과물이 War이 아니라 Jar를 될 수 있다. 이는 Gradle or Maven으로 빌드를 한 결과물로 바로 서버를 가동시킬 수 있다. 이로서 외부 웹 서버에 의존하지 않고 내장된 웹 서버로 실행 가능하다는 장점이 있다. 👣 War 배포 과정 1. War 파일 생성. - Gradle 기준 - build.gradle에 war 플러그인 추가. plugins { id 'war' } ... - Gradle 명령어로 War 빌드 gradle build 2. Tomcat에 War 파일 배포 - Tomcat 내부의 /webapps 디렉토리에 War 파일를 위치시킴. Tomcat/ ├── ..

Spring Boot 2023.07.28

application.yml 프로퍼티

👣 개요 예를 들어, Spring Boot로 애플리케이션을 구축하고 실제 배포를 할 때, 포트 번호를 8080에서 80을 변경해야 하는 순간이 온다. 만약 포트 번호를 Java 코드를 통해 하드 코딩을 하면 코드 담당자 이외의 개발자는 포트 번호를 바꾸기 위해 해당 코드를 읽고 수정해야 하는데 이는 매우 비효율적이고 유지보수에 불리하다. 때문에 이러한 설정값들은 하드 코딩하지 않고 Yaml 파일 등에 기입하고 사용하게 된다. 만약 Spring Boot에 이런 설정 파일을 Parsing하는 기능이 존재하지 않았다면 직접 파일을 불러와서 Json 규칙에 따라 파싱을 진행해야 하지만 다행히도 그런 기능이 존재하기 때문에 개발자는 Yaml 파일을 작성하고 일련의 규칙을 따르기만 하면 설정값을 Java 객체에 담..

Spring Boot 2023.07.27

Spring Boot 버전 관리 원리

👣 개요 Spring Boot의 장점 중 하나로 꼽히는 특징은 '자동 버전 관리'다. Spring Framework에는 애플리케이션을 만들기 위해 여러 라이브러리들을 사용하게 된다. 예를 들어, Flyway를 이용해 DB 마이그레이션 등등의 기능을 구성하고 성능 향상을 위한 캐싱 DB로 Redis를 사용하기도 한다. 간단히 해당 라이브러리를 다운받고 사용하면 쉬울 것 같지만 사용하고 있는 Spring Framework의 버전이 다운 받은 라이브러리와 호환이 되지 않아 호환되는 버전을 찾고 적용하는 일을 수행해야 한다. 이는 비즈니스 코드와는 동떨어진 작업이고 시간, 에너지가 다소 무의미하게 소비되는 작업이다. Spring Boot에서는 이런 Dependency들의 호환되는 버전을 미리 확인하고 이를 관리..

Spring Boot 2023.07.27

Spring Boot 자동 설정 원리

👣 개요 Spring Boot는 Spring Framework에 비해 비즈니스 코드에만 집중하기 쉬운데 그 이유 중 하나가 'Auto Configuration 기능'이다. 예를 들어, Spring에서 Tomcat 관련 설정을 하지 않으면 오류가 발생하는데 Spring Boot는 이미 관련 기본 설정을 미리 하기 때문에 Tomcat 설정을 하지 않고도 Tomcat을 구동시킬 수 있을 뿐더러 원한다면 맘대로 커스터마이징을 할 수 있다. 해당 게시물은 어찌하여 Spring Boot에서는 위와 같이 기본 설정을 해줄 수 있고 어찌 커스터마이징 하는지 작성하고자 한다. 👣 Spring Boot의 Bean 수집 방법 Spring Boot에는 서버를 구동시키기 위한 Application.java 파일이 필요하고 해당..

Spring Boot 2023.07.27

Servlet에서 Spring Boot까지의 발전 양상

💬 웹 서버 구축 시, 어려움 문제점 1. Http의 복잡한 통신 규약 Http는 단순히 데이터만 주고 받을 뿐만 아니라 통신 규약을 지키기 위한 많은 헤더를 가지고 있고 자원을 요구하는 URI는 각종 정보를 포함하고 있기 때문에 직접 모든 규약에 맞게 설정하기 어렵다. HTTP 통신을 위한 복잡한 규약을 지켜서 Request를 해석하고 Response를 클라이언트에게 전달해야 한다는 제약이 있다. 문제점 2. 동적 페이지의 필요성 동적 페이지란? 미리 만들어진 웹 페이지가 아닌 상황에 유연하게 대처하기 위해 입력된 데이터를 기반으로 새로운 웹 페이지를 만드는 HTML 페이지. 💬 Servlet의 탄생. Java를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램. 웹프로그래밍에서 웹 프로그래밍에서 ..

Spring Boot 2023.07.12