스프링

개발일지/Spring

[회고] 스프링 핵심 원리 - 기본편

스프링 부트를 이용하여 2가지 프로젝트를 진행해보고 나서 문득 스프링에 대한 기초가 궁금해서 수강한 강의이다. 비전공자이다 보니 기초가 아무래도 부족하지 않나 싶은 생각도 들었고, 사실 워낙 유명한 분의 강의이다 보니 궁금한 게 컸다. 대부분 부트캠프에서 배웠던 내용들이라 새롭게 배웠다기보다는 복습을 한 기분이다. 그때 당시에는 IoC, DI 등 이러한 용어적인 부분들이 배우면서도 와닿지 않았었다. 프로젝트를 진행하면서, 이런 저런 기능도 추가하고 구현하면서 어렴풋이 알게 되었던 것 같다. 좋았던 점은 과거의 스프링이 없던 시절부터 점점 현대로 발전해 오는 과정에서 왜 이러한 기능들이 생겨났는지와, 왜 이러한 기능들이 필요한지에 대한 이유들에 대한 설명이다. 그러한 과정을 코드로 보여준다. 예를 들어, ..

개발일지/Spring

Spring - 빈 생명주기 콜백

스프링 빈의 이벤트 라이프사이클 스프링컨테이너생성 -> 스프링빈생성 -> 의존관계주입 -> 초기화콜백 -> 사용 -> 소멸전콜백 -> 스프링종료 초기화 콜백 : 빈이 생성되고, 의존관계 주입이 완료된 후 호출 소멸전 콜백 : 빈이 소멸되기 직전에 호출 Spring은 크게 3가지 빈 생명주기(Bean LifeCycle) 콜백을 지원합니다 인터페이스(InitializingBean, DisposableBean) 설정 정보에 초기화 메서드, 종료 메서드 지정 @PostConstruct, @PreDestroy 애노테이션 지원 1. 인터페이스(InitializingBean, DisposableBean) 먼저 인터페이스를 사용하는 방법을 알아보겠습니다. package hello.core.lifecycle; impor..

개발일지/Spring

Spring 다양한 의존성 주입

Spring 관련해서 요즘 기초부터 다시 보고 있는데 생성자 주입에 관해서 보고 있던 중, 흥미로운 부분을 발견했다. 수정자 주입과 필드 주입이다. (옛날에는 수정자 주입, 필드 주입을 많이 사용했었다고 한다) 수정자 주입 선택, 변경의 가능성이 있는 의존관계에 사용한다 자바빈 프로퍼티 규약의 수정자 메서드 방식을 사용하는 방법이다 set메서드를 public으로 열어둬야 한다 (누군가 변경가능성 있음) @Component public class OrderServiceImpl implements OrderService { private MemberRepository memberRepository; private DiscountPolicy discountPolicy; @Autowired public void..

개발일지/Spring

스프링 싱글톤 컨테이너 (Spring Singleton Container)

스프링 컨테이너 기존 싱글톤 패턴의 문제점을 모두 해결함과 동시에 객체 인스턴스를 싱글톤으로 관리한다 (싱글톤패턴의 문제점) 싱글톤 패턴을 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리함 스프링 컨테이너는 싱글톤 컨테이너 역할을 함(싱글톤 객체를 생성하고 관리하는 기능을 싱글톤 레지스트라 함) @Test @DisplayName("스프링 컨테이너와 싱글톤") void springContainer() { ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService1 = ac.getBean("memberService", MemberService.class); MemberSe..

개발일지/Spring

캐시 사용해보기 @Cacheable, @CacheEvict (Spring-boot)

캐시 사용 서버의 부담을 줄이고 성능을 높이기 위해 사용되는 기술 DB에서 조회하는 게 오래 걸리는 작업에 적용하여 해당 결과값을 저장해 두고 가져옴으로써 빠르게 처리가 가능해짐 동일한 결과값이 매번 자주 호출되는 작업에 적용하면 유리하다 -> 결과값이 매번 다른 작업에 적용한다면 캐시를 확인하는 작업으로 인한 부하가 생겨 성능이 오히려 떨어질 수 있으니 주의하여 사용한다 Spring Cache (@Cacheable) 간단 사용법 1. gradle 종속성 추가 implementation 'org.springframework.boot:spring-boot-starter-cache' 2. @EnableCaching 설정 캐시 기능을 사용할 애플리케이션에 @EnableCaching 어노테이션을 붙여준다 @Sp..

E-room
'스프링' 태그의 글 목록