SPRING 74

[SpringBoot] SpringBoot 웹환경 구성 원리

지난 포스팅에서는 Spring Boot 클래스를 직접 만들어보았다. [SpringBoot] 내장톰캣에서 Spring Boot클래스 만들기 [SpringBoot] Main클래스에서 내장톰캣 실행시키기 [SpringBoot] 외장톰캣에서 SpringMVC 구현하기 [SpringBoot] 외장톰캣으로 WAS 띄우기 with IntelliJ(무료버전) SpringBoot는 내장톰캣을 사용한다. SpringBoot가 내장 lordofkangs.tistory.com MySpringBootMain 클래스는 Main클래스로 MySpringApplication 클래스를 호출하여 실행한다. MySpringApplication 클래스는 스프링컨테이너, DispatcherServlet, 내장톰캣을 생성 및 설정을 담당하는 클..

SPRING/Spring Boot 2023.04.27

[SpringBoot] 내장톰캣에서 Spring Boot클래스 만들기

[SpringBoot] Main클래스에서 내장톰캣 실행시키기 [SpringBoot] 외장톰캣에서 SpringMVC 구현하기 [SpringBoot] 외장톰캣으로 WAS 띄우기 with IntelliJ(무료버전) SpringBoot는 내장톰캣을 사용한다. SpringBoot가 내장톰캣을 사용하면서 간편해진 점을 알아보기 위 lordofkangs.tistory.com 지난 포스팅에서는 내장톰캣을 활용하여 서블릿 하나를 띄어보았다. 이번에는 SpringMVC가 적용된 Spring Boot클래스를 만들어보겠다. 1. 어노테이션 만들기 import org.springframework.context.annotation.ComponentScan; import java.lang.annotation.*; @Target(E..

SPRING/Spring Boot 2023.04.02

[SpringBoot] Main클래스에서 내장톰캣 실행시키기

[SpringBoot] 외장톰캣에서 SpringMVC 구현하기[SpringBoot] 외장톰캣으로 WAS 띄우기 with IntelliJ(무료버전) SpringBoot는 내장톰캣을 사용한다. SpringBoot가 내장톰캣을 사용하면서 간편해진 점을 알아보기 위해 우선, SpringBoot 이전에 사용했던 외장톰lordofkangs.tistory.com 지난 포스팅에는 외장톰캣을 활용한 SpringMVC를 구현해보았다. 개발자가 작성한 코드가 WAR로 압축되고 톰캣WAS로 배포된 뒤, WAS서버가 실행되어야 했다. 서버의 실행주체는 외장톰캣이다. 발상을 바꾸어, 어차피 톰캣도 JAVA언어로 구현되어있는데 톰캣을 라이브러리로 만들고 개발자가 톰캣설정 및 실행을 하는 코드를 구현하여 main 메소드로 실행시키면..

SPRING/Spring Boot 2023.04.02

[SpringBoot] 외장톰캣에서 SpringMVC 구현하기

[SpringBoot] 외장톰캣으로 WAS 띄우기 with IntelliJ(무료버전) SpringBoot는 내장톰캣을 사용한다. SpringBoot가 내장톰캣을 사용하면서 간편해진 점을 알아보기 위해 우선, SpringBoot 이전에 사용했던 외장톰캣 방식에 대해서 알아보겠다. 외장톰캣 방식이란? 개발 lordofkangs.tistory.com 지난 포스팅에서 IntelliJ에서 외장톰캣을 띄어 보았다. 이제 해당 환경에서 SpringMVC를 구현해보겠다. SprinMVC 구현 톰캣은 서블릿(Servlet)을 사용한다. 서블릿의 정의는 아래 포스팅을 참고바란다. [ JSP ] Servlet 이란? Servlet이란 Server Application Let의 줄임말이다. Let은 조각을 의미하니 서버의 조..

SPRING/Spring Boot 2023.04.02

[SpringBoot] 외장톰캣으로 WAS 띄우기 with IntelliJ(무료버전)

SpringBoot는 내장톰캣을 사용한다. SpringBoot가 내장톰캣을 사용하면서 간편해진 점을 알아보기 위해 우선, SpringBoot 이전에 사용했던 외장톰캣 방식에 대해서 알아보겠다. 외장톰캣 방식이란? 개발자가 작성한 코드는 war파일로 WAS의 webapps 영역에 배포되어 풀린다. WAS가 외부에 있어 war파일로 압축한 뒤, 배포를 하는 방식이 외장톰캣 방식이다. 외장톰캣으로 WAS 띄우기(IntelliJ 무료버전) - explodedWar War파일은 explodedWar 방식을 사용한다. explodedWar는 압축된 War가 아닌 압축이 풀린 디렉토리 형태이다. 압축이 아니므로 변화에 대응한 성능이 좋지만 용량 문제가 있을 수 있다. build.gradle을 살펴보자. //war 풀..

SPRING/Spring Boot 2023.04.02

[스프링] 제어의 역전(IOC)이란?

스프링의 핵심 개념인 제어의 역전(IOC)에 대해서 알아보겠다. 제어의 역전(Inversion of Control) 제어(Control)란 무엇일까? 아래 코드를 살펴보자. public class A { B b = new B(); // B 객체 생성 } 1. 생성할 권리 new 연산자로 객체 B를 생성했다. 이는 생성할 권리이다. 2. 접근할 권리 A클래스는 B객체가 저장된 Heap 메모리 주소를 b 참조변수(멤버변수)로 갖는다. 고로, A 클래스의 객체는 B객체에 접근할 권리를 갖는다. 이렇듯, 생성할 권리와 접근할 권리를 통틀어 '제어(Control)'이라 부른다. A는 B를 생성하고 접근할 권리를 갖는다. 그러나 여기서 한 가지 문제점이 발생한다. B는 오로지 A가 있어야 존재하고 A만 접근 가능하..

SPRING/Spring Basic 2022.02.15

[스프링] 스프링 라이브러리 설치하기 ( Maven )

[스프링] 어플리케이션 컨텍스트 ( Application Context ) [스프링] 프레임워크란 무엇인가? ( 제어의 역전 (IOC) ) 스프링은 '프레임워크(FrameWork)'이다. 프레임워크가 개발자의 작업을 도와준다는 말을 많이 들어봤을 것이다. 어떻게 도와준다는 말일까? ' lordofkangs.tistory.com 지난 포스팅에서 프레임워크의 핵심 원리인 '제어의 역전(IoC)'을 구현하는 어플리케이션 컨텍스트에 대해서 알아보았다. 그럼 이번 포스팅에서는 Maven으로 Spring 라이브러리를 추가한 후, 어플리케이션 컨텍스트를 실제로 생성해보겠다. Maven으로 Spring 라이브러리 추가하기 어플리케이션 컨텍스트를 사용하려면 어플리케이션 컨텍스트 기능이 담긴 인터페이스가 필요하다. 표준 ..

SPRING/Spring Basic 2021.08.12

[스프링] 어플리케이션 컨텍스트 ( Application Context )

[스프링] 프레임워크란 무엇인가? ( 제어의 역전 (IOC) ) 스프링은 '프레임워크(FrameWork)'이다. 프레임워크가 개발자의 작업을 도와준다는 말을 많이 들어봤을 것이다. 어떻게 도와준다는 말일까? '프레임워크'란 무엇인가? 프레임워크를 사용하지 않으 lordofkangs.tistory.com 지난 포스팅에서 프레임워크(Framework)란 무엇인가 알아보았다. 간단히 요약하면 프레임워크는 객체의 생성 및 관계 설정 권한을 소스코드로부터 완전히 가져오는 도구를 의미한다. 이를, 제어의 역전(IoC)이라 부른다. 그럼 이번 포스팅에서 구체적으로 어떤 방식으로 제어의 역전이 이루어지는지 알아보자. 어플리케이션 컨텍스트 ( Application Context ) 지난 포스팅에서 객체의 생성 및 관계 ..

SPRING/Spring Basic 2021.08.05

[스프링] 프레임워크란 무엇인가? ( 제어의 역전 (IOC) )

스프링은 '프레임워크(FrameWork)'이다. 프레임워크가 개발자의 작업을 도와준다는 말을 많이 들어봤을 것이다. 어떻게 도와준다는 말일까? '프레임워크'란 무엇인가? 프레임워크를 사용하지 않으면 개발자의 소스코드가 프로그램의 흐름을 제어한다. User user = new User("22231123l","민구","1111"); // user 객체 생성 ConnectionMaker connectionMaker = new AConnectionMaker(); // connectionMaker 객체 생성 UserDao userDao = new UserDao(connectionMaker); // userDao객체 생성 및 userDao와 connectionMaker 간의 관계설정 어떤 객체를 생성할지 어떤 객체..

SPRING/Spring Basic 2021.08.03

[스프링] 관심사의 분리 ( 관계설정 책임의 분리 )

[ 스프링 ] 관심사의 확장 ( 인터페이스 ) [ 스프링 ] 관심사의 분리 ( 클래스의 분리 ) [ 스프링 ] 관심사의 확장 ( 추상클래스 ) [ 스프링 ] 관심사의 분리 ( DAO ) 스프링 프레임워크를 사용하기 위한 기본 개념을 하나씩 정리해볼까 한다. lordofkangs.tistory.com 지난 포스팅까지 인터페이스를 이용한 확장을 알아 보았다. 그러나 한 가지 문제가 있었다. UserDao 클래스의 관심사는 'DB 엑세스를 위한 SQL실행'이지 'ConnectionMaker 인터페이스의 구현객체와의 관계 설정'은 관심사가 아니다. UserDao 클래스가 한 가지 구현객체를 선택하면 두 클래스는 '종속'되어 버린다. 종속은 변화에 좋지 않은 관계이다. "느슨한 결합"을 유지해야한다. 관계 설정 ..

SPRING/Spring Basic 2021.07.26