Back-end/SpringBoot

    IOC(Inversion of Control, 제어의 역전)란

    IoC(Inversion of Control, 제어의 역전)란 객체의 생성과 객체 생명 관리, 흐름 제어를 제 3자에게 위임하는 프로그래밍 모델 이 방식은 대부분의 프레임워크에서 사용하는 방법으로, 개발자는 필요한 부분을 개발해서 끼워 넣기의 형태로 개발하고 실행하게 된다. 이렇게 조립된 코드의 최종 호출은 개발자에 의해서 제어되는 것이 아니라 프레임워크의 내부에서 결정된 대로 이뤄지게 되는데, 이러한 현상을 "제어의 역전"이라고 표현한다. Spring에서의 IoC Spring 프레임워크에서 지원하는 Ioc Container는 자바 객체(빈)의 생성과 생명주기, 의존관계를 관리한다. 이를 코드 대신 컨테이너가 오브젝트에 대한 제어권을 갖고 있다고 해서 IoC라고 부른다. 그래서 스프링 컨테이너를 IoC ..

    [SpringBoot] .idea 디렉토리 제외하기

    [SpringBoot] .idea 디렉토리 제외하기

    .idea 디렉토리는 커밋하지 않는다. (실행시 자동 생성되는 파일이기에 깃허브에 올릴 필요가 없다!) 아래 코드를 .gitignore 파일에 추가해준다. .gradle .idea

    [SpringBoot] AOP란?

    AOP가 필요한 경우? ex) 모든 기능들의 수행 시간을 측정하고 싶을 때, 시간 측정하는 코드를 매 기능마다 따로 넣으면 비효율적이다 이때 AOP를 사용하면, 각 기능별로 시간 측정하는 코드를 자동으로 넣을 수 있다! 즉, 공통 관심 사항(cross-cutting concern)과 핵심 관심 사항(core concern)이 있을 때, 핵심 관심 사항 : 각 기능별 핵심 로직 공통 관심 사항 : 공통적으로 들어갈 로직 AOP를 사용하면 각 기능별 핵심 로직에 공통적으로 들어갈 로직을 일괄 적용할 수 있다! => 유지 보수하기 쉬워짐! @Component @Aspect// 어노테이션 달아주기 public class TimeTraceAop { @Around("execution(* hello.hellospri..

    [SpringBoot] 스프링 빈 의존관계 설정하기

    스프링 빈 의존관계 설정하는 데에는 두 가지 방법이 있다. 1. 컴포넌트 스캔 + 자동 의존 관계 2. 자바 코드로 직접 등록 1. 컴포넌트 스캔 + 자동 의존 관계 컴포넌트 스캔 컨트롤러, 서비스단, 레포지토리단 앞에 어노테이션으로 @Controller, @Service, @Repository 을 붙여주면, 스프링 빈으로 자동 등록된다. 이때 각 어노테이션은 내부적으로는 @Component가 들어있고, 이를 통해 컴포넌트 스캔하고, 스프링빈 등록된다. 자동 의존 관계 설정 @Autowired @RequiredArgsConstructor (더 권장) @Autowired를 생성자 앞에 붙여주면, 객체 생성시에 스프링빈에 주입함 이때, 생성자가 1개이면 생략할 수 있다.! 혹은 생성자를 주입하는 방법도 있다..