Java (41) 썸네일형 리스트형 Spring boot Spring boot 는 제품수준의 Spring 기반 어플리케이션을 보다 쉽고 빠르게 만들수 있게 도와줍니다. 3rd party library 를 비롯한 스프링에 대한 설정들도 제공해줍니다. 대표적으로 내장 서버가 있습니다. XML 설정도 더 이상 하지 않습니다. code generation도 하지 않습니다. 이런 장점으로 더 customizing 하기가 쉽습니다. Spring boot 는 java8 이상부터 사용가능합니다. 보다 자세한 설명은 spring 공식 사이트를 참고해주세요 :) docs.spring.io/spring-boot/docs/current/reference/html/ Spring Boot Reference Documentation The reference documentation co.. ApplicationEventPublisher & ResourceLoader ApplicationEventPublisher ApplicationEventPublisher 는 이벤트 프로그래밍에 필요한 인터페이스를 제공하며 옵저버 패턴의 구현체입니다. 이벤트를 발생시킬 수 있는 기능을 ApplicationContext 가 가지고 있습니다. Spring 4.2 이전에는 Event는 Application Event 를 상속받아야하고 Event Handler는 Bean으로 등록 후 ApplicationListener를 구현해서 사용해야 했습니다. 이를 통해 전달받은 이벤트를 가지고 원하는 작업을 수행할 수 있습니다. 4.2 이후부터는 Event는 Application Event를 상속받지 않아도 됩니다. Spring Framework가 추구하는 것은 비침투성입니다. spring fram.. Environment ApplicationContext가 가지고 있는 기능들을 살펴보겠습니다. ApplicationContext 는 Bean Factory 기능 뿐 아니라 다른 기능도 가지고 있습니다. ApplicationContext는 위 그림과 같이 여러 인터페이스들을 상속받고 있습니다. 오늘은 그중에서도 EnvironmentCapable 에 대해서 정리하겠습니다. Profile 빈들의 묶음으로 "환경"이라고 할 수 있습니다. 예를 들어 실제 상용에서는 A 환경을 쓰고 테스트할때는 B환경을 쓰려고 할때 이런 환경을 의미합니다. 각각의 환경에서 다른 Bean을 사용해야하는 경우나 특정 Bean을 사용해야하는 경우 Profile을 사용합니다. 아무런 Profile을 설정하지 않은 경우에는 ApplicationContext.g.. Scope 저희가 만든 모든 bean은 모두 scope을 가지고 있습니다. scope 은 크게 '싱글톤' , '프로토타입'으로 나눌 수 있습니다. 싱글톤: 해당 bean의 인스턴스가 오직 하나뿐입니다. 프로토타입: 매번 새로운 객체를 새로운 인스턴스를 만들어서 사용해야하는 scope입니다. 그림을 통해 프로토타입을 자세히 보겠습니다. 프로토타입의 Proto 클래스와 싱글톤타입의 Single 클래스를 만들겠습니다. 그런 후에 아래와 같이 각 빈을 호출해보면 Proto는 매번 다른 인스턴스를 만들어서 보여주는 것을 볼 수 있으며 Single은 항상 같은 인스턴스를 보여주고 있습니다. Singleton 타입의 Bean에서 Prototype 스콥의 Bean을 사용할때에는 주의를 기울여야합니다. 왜냐하면 Singletone.. Autowired & Component Spring boot 프로젝트에서 여러 annotation이 사용됩니다. 이번 글에서는 annotation에 대해서 정리를 진행하도록 하겠습니다. 객체의 의존성을 가지는 부분에 해당 어노테이션을 사용하여 쉽게 의존성을 주입할 수 있습니다. 의존 객체를 주입하는 방법은 스프링 설정파일에서 혹은 태그로 의존 객체를 명시하는 방법이 있습니다. 의존객체 자동 주입(Automatic Dependency Injection)은 스프링 컨테이너가 자동으로 의존 대상 객체를 찾아 해당 객체에 필요한 의존성을 주입해줍니다. 이를 구현하는 방법은 @Autowired 와 @Resource를 통해 구현가능합니다. 1. Autowired 1.1 설명 @Autowired는 주입하려하는 Bean의 타입이 일치하는지 찾고 의존성 주입.. 기본 개념 Spring Spring 의 기본부터 차근차근 정리해나가겠습니다. 1. IoC 컨테이너 IoC 란 Inversion of Control의 약어로 의존관계 주입이라고도 합니다. 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는 것이 아닌, 주입 받아 사용하는 방법입니다. IoC는 Spring 없이도 사용 가능합니다. 그러나 그렇게 사용하지 않고 Spring을 사용하는 이유는 DI 방법의 노하우가 쌓여있는 방법이기 때문입니다. 초기에는 xml 방식으로 주입을 했었지만 현재는 annotation방식으로 주입하고 있습니다. Bean을 담고있는 것을 Container라 합니다. IoC 컨테이너가 관리하는 객체를 Bean이라 합니다. Bean으로 등록하는 이유는 의존성을 주입하고 싶거나 싱글톤으로 관리하고 싶은 경우 등록.. Thread Safe Thread safe 란, 멀티 thread 프로그래밍에서 여러 쓰레드로부터 동시에 접근이 이뤄져도 프로그램의 실행에 문제가 없음을 뜻합니다. 하나의 함수가 한쓰레드에서 호출되어 사용중일때 다른 쓰레드가 그 자원을 동시에 함께 사용하더라도 각 쓰레드에서 함수의 수행 결과가 올바로 나옵니다. 위키피디아 정의에 따르면, "Thread-Safe는 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을 뜻합니다. 보다 엄밀하게는 하나의 함수가 한 스레드로부터 호출되어 실행 중일 때, 다른 스레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 스레드에서의 함수의 수행 결과가 올바로 나오는 것으로 정의합니다. " Threa.. 컴파일 과정 Java 컴파일 과정에 대해 설명하겠습니다. Java 는 OS에 독립적입니다. JVM이 OS와 프로그램 사이에서 기계어로 해석해주는 역할을 수행하고 있기 때문입니다. 실행과정 1. .java 파일을 생성하고 build 수행 - complier 의 javac 명령어를 사용해 .class 파일을 생성합니다. - .class 파일도 아직 java byte code로 컴퓨터가 읽을 수 없습니다. 변환 과정이 필요합니다. 2. .class 파일을 java.exe 로 실행 .class 파일은 클래스로더를 통해 JVM내 로드됩니다. 그 후 *실행엔진에 의해 binary code로 변환되어 메모리상 배치됩니다. * 실행엔진(Excution Engine) 실행엔진에는 인터프리터와 JIT컴파일러가 있습니다. 인터프리터는 .. 이전 1 2 3 4 5 6 다음