Spring

Cloud-DevLog
[Spring Boot] application.properties VS application.yml
·Spring
Spring Boot는 프로젝트 설정을 application.properties 또는 application.yml 파일로 하게 된다. Spring Initializer로 프로젝트를 만들면 자동으로 application.properties가 생성되지만, application.yml로 설정을 많이 한다. application.properties와 application.yml 파일의 차이점application.propertieskey = value 형태로 모든 줄이 구성되어 있다.단순하고 직관적이며, 키와 값을 한 줄에 정의한다.중첩 구조를 표현하기 어렵다.# spring configuration spring.application.name=example # devtools - live reload spring..
[Spring] Maven VS Gradle
·Spring
자바 프로젝트에서 널리 사용되는 빌드 자동화 도구인 Maven과 Gradle에 대해 알아보고 차이점에 대해 알아보자. 1. Maven과거에는 Apache Ant라는 빌드 도구를 많이 사용하였지만, Ant의 대안으로 출시된 현재는 Maven을 많이 사용한다.XML 기반의 pom.xml을 사용하여 프로젝트 설정을 정의한다.XML 이라서 정형화된 구조를 보이지만, 설정이 길어지면 가독성이 떨어질 수 있다.Apache 라이센스로 배포되는 오픈 소스 소프트웨어이다. POM(Project Object Model)아래는 pom.xml에 포함된 기능이다.프로젝트 이름, 라이센스 등의 프로젝트 정보소스, 리소스, 라이프사이클 마다 실행한 플러그인 등의 빌드 설정환경마다 달라질 수 있는 프로파일 정보가 담긴 빌드 환경의존..
[Spring] JAR VS WAR
·Spring
JAR? WAR?JAR과 WAR은 모두 Java의 jar 옵션을 이용하여 생성된 압축(아카이브)한 파일로 애플리케이션을 쉽게 배포하고 동작시킬 수 있게 파일들을 패키징한 것이다. JAR(Java ARchive)JAR은 패키지 파일 형식으로 .jar 확장자를 가진다.Java 애플리케이션이 동작하도록 Java 프로젝트를 압축한 파일이다.Class (Java 리소스, 속성 파일), 라이브러리 등을 포함한다.JRE(Java Runtime Environment)만 있어도 실행 가능하다.java -jar 프로젝트명.jar WAR(Web Application ARchive)WAR은 웹 애플리케이션 아카이브 or 웹 애플리케이션 리소스를 나타내며, .war 확장자를 가진다.모든 Servlet/JSP 컨테이너에 배포할 ..
[Spring] Spring VS Spring Boot
·Spring
Spring VS Spring BootSpring과 Spring Boot는 Java 애플리케이션 개발을 위해 널리 사용되는 오픈 소스 프레임워크이다. 둘 다 개발을 위한 강력한 기능을 제공하지만 용도와 접근 방식에서 차이가 있다. Spring Framework(Spring)Spring은 엔터프라이즈급 애플리케이션을 개발하기 위한 종합적인 프레임워크이다. 애플리케이션의 다양한 계층(Web, Data Access, Business Logic 등)를 쉽게 관리하고 통합할 수 있게 해준다. Spring의 주요 모듈로는 Spring Core, Spring MVC, Spring Data, Spring Security 등이 있다. 여러 설정 파일과 어노테이션을 통해 애플리케이션 동작을 세밀히 조정한다. Spring ..
[Spring MVC] 웹 애플리케이션 이해
·Spring
웹 서버, 웹 애플리케이션 서버웹(HTTP 기반)HTML 메시지로 HTML, TEXT, 이미지, 음성, 영상, JSON, XML 등등 모든 형태의 데이터를 전송할 수 있다. 웹 서버(Web Server)HTML 기반으로 동작하고 정적 리소스를 제공하며 기타 부가 기능을 가진다.정적 리소스는 HTML, CSS, JS, 이미지, 영상 등이 있다.기술: Nginx, Apache 웹 애플리케이션 서버(Web Application Server - WAS)HTML 기반으로 동작하고 웹 서버의 기능을 포함한다.프로그램 코드를 실행하여 애플리케이션 로직을 수행한다.동적 HTML, HTTP API(JSON)서블릿, JSP, 스프링 MVC기술: Tomcat, Jetty, Undertow 웹 서버(Web Server) VS..
[Spring] 스프링 빈 스코프(Bean Scope)
·Spring
빈 스코프(Bean Scope)란?스프링 빈(Spring Bean)이 스프링 컨테이너에 시작과 동시에 만들어지고, 컨테이너가 종료될 때까지 유지된다고 지금까지 배웠으며, 이는 스프링 빈이 기본적으로 싱글톤 스코프(Singleton Scope)로 생성되기 때문이였다. 즉, 빈 스코프(Bean Scope)는 빈이 존재할 수 있는 범위를 말한다. 하지만, 요구사항과 여러 구현할 기능에 의해 싱글톤이 아닌 스코프도 필요한 경우가 많다. 이를 명시적으로 구분하려고 Scope라는 키워드가 존재한다. 빈 스코프 종류싱글톤 스코프스프링 프레임워크의 기본 스코프이며, 스프링 컨테이너 시작과 종료 사이에 유지되는 가장 넓은 범위의 스코프이다. 프로토타입 스코프프로토타입 빈의 생성과 의존 관계 주입까지만 관여하고 그 외에는..
[Spring] 빈 생명주기 콜백(Bean LifeCycle Callback)
·Spring
빈 생명주기 콜백(Bean LifeCycle Callback)이 필요한 이유?스프링 컨테이너가 객체를 관리한다는 것은 객체가 생성하고 소멸하는 생명주기 LifeCycle를 관리한다는 것이다. 여기서 콜백 함수란, 특정 이벤트나 조건이 발생했을 때 호출되는 함수이다. Spring 프로젝트 시작 시, DB 연결, 소켓 연결 등 시간이 걸려 미리 연결을 하고, 애플리케이션 종료 시점에 연결을 종료해야 하는 경우가 있다. 이 경우에는 객체를 초기화하고 종료하는 작업을 해줘야 한다. 예 : Connection Pool의 Connect, Disconnect 스프링 빈도 초기화와 종료 작업이 진행된다. 객체 생성, 의존 관계 주입의 생명주기를 가지고 있다. 결국, Spring Bean은 객체 생성과 의존 관계 주입이..
[Spring] 컴포넌트 스캔(Component Scan)
·Spring
컴포넌트 스캔@Component를 가진 모든 대상을 가져와 Bean에 등록하기 위해 찾는 과정을 말한다. 즉, 빈 설정 파일과 @Bean을 통해 빈을 일일이 지정할 필요가 없다. 즉, 명시적인 등록과 달리, 자동으로 빈을 등록하는 방법이다. 1. xml 파일에 설정하기 2. Java 파일 안에서 설정하기 (*실무에서 많이 쓰는 방법)@Configuration @ComponentScan(basePackages = "com.dx") public class AppConfig { } 컴포넌트 스캔 대상@Component : 컴포넌트 스캔에서 사용한다.@Controller : Spring MVC Controller에서 사용한다.@Service : Spring Business 로직에서 사용한다.@Repository..
cloud-grace
'Spring' 카테고리의 글 목록