@Component 어노테이션과 @Bean 어노테이션은 둘 다 스프링 컨테이너에 빈으로 등록하기 위한 어노테이션이다.@Component : @Component는 클래스 레벨에서 사용되며 런타임 시 컨포넌트 스캔을 통해 자동으로 빈으로 등록해주는 어노테이션이다.@Co
@ModelAttribute는 클라이언트에서 전달된 값들을 자동으로 바운딩 해주고 받은 값을 자동으로 클라이언트에 보내주는 어노테이션입니다. @ModelAttribute를 사용하기 위해서는 몇 가지의 규칙을 조심해야 합니다.@ModelAttribute 어노테이션을 이용
빌더 패턴은 복잡한 객체를 생성하는 방법을 정의하는 클래스와 표현하는 방법을 정의하는 클래스를 별도로 분리하여, 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공하는 패턴이다.생성자를 통해 객체를 생성할 경우 여러가지 단점이 있다.생성자 파라미터가 많을 경
spring-jdbc : jdbc Template 등 JDBC 연동에 필요한 기능을 제공한다.tomcat-jdbc : DB 커넥션풀 기능을 제공한다.myspl-connector-java : MySQL 연결에 필요한 JDBC 드라이버를 제공한다.DataSource 설정
의존 대상을 설정 코드에서 직접 주입하지 않고 스프링이 자동으로 의존하는 빈 객체를 주입 해주는 기능을 자동 주입이라고 한다.의존 주입을 하지 않을 경우의존 주입을 사용했을 경우@Autowired 어노테이션을 주입하려는 필드나 메서드에 사용하면 스프링이 자동으로 Con
컴포넌트 스캔은 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능이다. 설정 클래스에 빈으로 등록하지 않아도 클래스를 빈으로 등록해주는 기능이다. 설정 클래스에 빈으로 등록하지 않아도 원하는 클래스를 빈으로 등록할 수 있으므로 컴포넌트 스캔 기능을 사용하면 설정
AOP는 Aspect Oriented Programming의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법이다. AOP는 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을
IoC나 DI는 레고와 같은 것이다.스프링이 바닥판처럼 깔려있고, 우리는 그 위에서 멋진 조립(나의 어플리케이션)을 만들면 된다.연결할 수 도 있고 연결을 해제 할 수 도 있는 즉 조립할 수 있는 형태이다.의존성 주입이란 한 객체가 다른 객체를 사용할 때 의존한다라고
널 안정성을 높이는 방법아래와 같은 코드를 만들지 않는 방법혹은 아래와 같은 널 체크를 하지 않아서 발생하는 NPE(Null Pointer Exception)을 방지하는 방법완벽한 방법은 아니지만 IDE(Intellij, Eclipse)에서 경고를 표시함으로써 1차적인
java.net.URL의 한계(classpath 내부 접근이나 상대경로 등)를 넘어서기 위해 스프링에서 추가로 구현(제가 하고 있는)업무에서는 많이 사용되는 부분은 아니지만, 스프링의 내부 동작을 이해하기 위해서 필요한 부분imgSpring 내부 Resource 구현체
Mock : Mock 객체는 가짜(모의)라는 뜻을 가지며 테스트를 진행할 때 진짜 객체와 비슷하게 동작하도록 프로그래머가 직접 행동을 관리하는 객체이다. 객체를 쉽게 만들고, 관리하고, 검증할 수 있는 방법을 제공하는 프레임워크이다.Given테스트를 위한 주어진 상태테
트랜잭션이란 쪼갤 수 없는 업무 처리의 최소 단위를 말한다. 예를 들어 A라는 사람이 B라는 사람에게 계좌이체를 한다고 가정하면 A라는 사람이 B에게 송금하는 과정에서 A는 송금이 완료 됐지만 시스템에서 송금하는 과정에서 B에게 입금이 되지 않고 에러가 생겼을 경우 A
유효성 검사주로 사용자 또는 요청(http request) 내용에서 잘못된 내용이 있는지 확인하는 단계를 뜻한다.학문적으로 여러 세부적인 단계들이 있기도 하지만 실제로 개발자가 주로 챙겨야 하는 검증은 크게 두 종류로 나뉜다.필수 데이터의 존재 유무문자열의 길이나 숫자
BindingResult는 검증 오류를 보관하는 객체이다. BindingResult를 보관하는 방법은 세가지가 있다.@ModelAttribute 객체에 타입 오류 등으로 바인딩이 실패하는 경우예) 사용자가 정수형 필드에 문자를 넣었을 경우바인딩이 실패하면 스프링이 Fi
에러 코드는 enum 타입으로 한곳에서 관리하는게 좋다.RuntimeException 을 상속받아 사용하려는 의도에 맞게 재정의한 코드이다. 스프링부트는 오류가 발생하면 server.error.path에 설정된 경로에서 요청을 처리한다. 스프링부트에서는 기본적으로 Ba
WebMvcTest 구현 중 아래와 같은 빈 인식을 못한다는 오류를 만났다.@WebMvcTest 어노테이션은 MVC를 위한 테스트이다 Web Layer한다. (ex:@Controller, @RestController, @ControllerAdvice,@RestContr
ResponseEntityExceptionHandler 란 ResponseEntityExceptionHandler는 이미 Spring MVC에서 제공하는 예외처리 클래스로, Spring MVC 애플리케이션에서 발생하는 표준적인 예외들을 효율적으로 처리할 수 있도록 도와