전체 글
-
[SpringBoot] AOP카테고리 없음 2021. 8. 22. 19:59
이 포스팅은 인프런에서 스프링 핵심원리 - 기본편을 듣고 작성한 것입니다. AOP: Aspect Oriented Programming OOP를 보완할 수단으로, 관점 지향 프로그래밍이라고 불린다. 시간 측정 AOP 등록 package hello.hellospring.aop; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; @Component @Aspect public class TimeTraceAop { @Around("executio..
-
[SpringBoot] Maven VS Gradle, 빌드 자동화 도구Web/Java | Spring-boot 2021. 8. 15. 19:12
스터디 개인 과제를 하면서 이번에는 Gradle이 아닌 Maven을 사용하게 되어 차이점을 글로 남긴다 :) Gradle? Maven? 둘 다 우리가 프로젝트에서 작성한 java 코드와 프로젝트 내에 필요한 각종 xml, properties, jar 파일들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주는 빌드과정을 의미한다! Maven - java용 프로젝트 관리도구로 apache의 ant 대안으로 만들어졌다. - 빌드중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리 종속성 관계를 pom.xml에 명시한다. - Maven은 외부저장소에서 필요한 라이브러리와 플러그인들을 모두 다운한 다음, 로컬시스템의 캐시에 모두 저장한다. Gradle - apache maven과 apache ant에서 볼 수 있..
-
[SpringBoot] 빈 생명주기 콜백 (Bean Life Cycle Callback)Web/Java | Spring-boot 2021. 8. 8. 18:20
이 포스팅은 인프런에서 스프링 핵심원리 - 기본편을 듣고 작성한 것입니다. 스프링빈의 기본적인 라이프사이클 -> 객체 생성 -> 의존관계 주입 스프링은 개발자가 초기화 작업을 의존관계 주입이 모두 완료되고 난 후에 할 수 있도록 스프링빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 다양한 기능을 제공하며, 안전하게 종료 작업을 진행할 수 있도록 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 준다. 즉 스프링 빈의 이벤트 라이프사이클은 -> 스프링컨테이너생성 -> 스프링빈생성 -> 의존관계주입 -> 초기화콜백 -> 사용 -> 소멸전콜백 -> 스프링 종료 초기화 콜백: 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출 소멸전 콜백: 빈이 소멸되기 직전에 호출 스프링은 다양한 방식으로 생명주기 콜백을 지..
-
[SpringBoot] 싱글톤 컨테이너Web/Java | Spring-boot 2021. 8. 8. 18:10
이 포스팅은 인프런에서 스프링 핵심원리 - 기본편을 듣고 작성한 것입니다. 웹 애플리케이션과 싱글톤 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 웹 애플리케이션은 여러 클라이언트가 동시에 요청을 하고, 이때 요청이 올때마다 객체를 만들어낸다면 낭비가 심하다. 순수한 자바코드에서는 -> 스프링 없는 순수한 DI 컨테이너인 AppConfig는 요청할 때마다 객체를 새로 생성. -> 고객 트래픽이 초당 100이 나오면 초당 100개 객체가 생성되고 소멸됨 -> 메모리 낭비가 심함. 이를 방지하기 위해 사용하는 것이 싱글톤 패턴이다! 싱글톤 패턴 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야함. private 생성자를 사용해서 외부에..
-
[SpringBoot] Spring Container, BeanFactory와 ApplicationContextWeb/Java | Spring-boot 2021. 8. 1. 17:14
이 포스팅은 인프런에서 스프링 핵심원리 - 기본편을 듣고 작성한 것입니다. BeanFactory 스프링 컨테이너의 최상위 인터페이스다. 스프링 빈을 관리하고 조회하는 역할을 담당한다. getBean() 을 제공한다. 지금까지 우리가 사용했던 대부분의 기능은 BeanFactory가 제공하는 기능이다. ApplicationContext BeanFactory 기능을 모두 상속받아서 제공한다. 빈을 관리하고 검색하는 기능을 BeanFactory가 제공한다. 그렇다면 BeanFactory가 아닌 ApplicationContext가 필요한 이유가 뭘까 ? ApplicationContext에 있는 수많은 부가기능 때문이다! 부가기능 예시 - 메시지소스를 활용한 국제화 기능 예를 들어서 한국에서 들어오면 한국어로, 영..
-
[SpringBoot] 객체 지향 설계, 스프링Web/Java | Spring-boot 2021. 8. 1. 15:44
이 포스팅은 인프런에서 스프링 핵심원리 - 기본편을 듣고 작성한 것입니다. 스프링이란? 스프링은 자바 기반의 프레임워크이며, 자바 언어의 가장 큰 특징인 객체지향언어의 특징을 잘 살려내어 웹 애플리케이션을 개발할 수 있도록 도와준다. 객체 지향의 특징 - 추상화 - 캡슐화 - 상속 - 다형성 다형성 세상을 역할과 구현으로 구분한다. 자동차라는 역할 -> 아반떼, 테슬라등의 구체적 모델로 구현 로미오와 줄리엣이라는 역할 -> 장동건, 김태희라는 구체적 배우로 구현 자바도 마찬가지로 역할 (인터페이스) -> 클래스 (구현) 으로 역할을 나눈다. --> 오버라이딩 즉, 다형성을 이용하여 객체 인스턴스를 실행시점에 바꿀 수 있다. 이를 통해 클라이언트를 변경하지 않고도 서버의 구현을 변경 가능하게 하는 점이 다..