class A,B,C가 있다고 치자.이 class들을 Bean으로 등록하게 되면, Spring IoC container에 new A,new B, new C 이렇게 instance화해서 저장한다. 그리고 여기에 각각의 설정에 따른 값을 입혀서 객체를 생성하게 된다. 이러
Aspect Oriented Programming공통적인 부분을 spring이 도와서 처리해준다.특정 함수 호출 전이나 후에 뭔가 공통적인 처리가 필요하다면 사용전체적으로 쓰는 것이 아니라 특정 몇몇곳에서 써야할 때 유용하다.ex) 로깅 , 트랜잭션, 인증..Aspec
유효성 검증이라는 뜻으로 해석할 수 있다. 주로 사용자 또는 서버의 요청(http requeset)내용에서 잘못된 내용이 있는지 확인하는 단계를 말한다.학문적으로는 여러 단계가 있지만 실제로 개발할때 챙겨야 하는 검증은 크게 두가지로 나뉜다.데이터 검증필수 데이터의 존
사용자나 외부 서버의 요청을 특정 도메인 객체에 저장해서 우리 프로그램에 Request에 담아주는 것을 뜻한다.Converter<S,T>Interface를 사용하는데S(source)라는 타입을 받아서 T(target)이라는 타입으로 변환해서 리턴해주는 인터페이스이
java.net.URL의 한계(classpath 내부 접근이나 상대경로 등)를 넘어서기 위해 스프링에서 추가로 구현스프링 내부 동작을 이해하기 위해서 반드시 필요한 부분이다. Spring 내부 Resource 구현체 중 대표적인 몇가지UrlResourcejava.net
Expression Language는 짧고 간단한 문법을 통해 데이터나 설정 값을 얻어올 수 있게 하는 특별한 형태의 표현식에 가까운 간편한 언어이다.(그래프 접근 등 가능)그래프 접근이란? 예를들어, school.class.teacher.name 처럼 "학교에 있는
kotlin이나 다른 언어들은 null을 잘 다룰 수 있도록 되어 있지만, java 같은 경우는 잘 되어 있지 않다. 위와 같은 메서드에서 request가 null 값일때 NullPointerException이 발생할 것이다. 그런데 문제는 Exception이 발생한
Transaction 특징ACIDAtomic 예를들어, 은행에서 계좌 송금을 하는데 내 계좌에서 10000원이 빠져 나가고 상대방이 내 돈을 받지 못한다면 안되기 때문에 계좌 송금부터 입금까지 하나의 transaction으로 본다. 만약, 내 계좌에서 출금은 성공하고
h2는 java기반으로 실행되기 때문에 java는 깔려있어야 한다.http://www.h2database.com/html/download.html여기서 다운받는다.압축을 풀어주고나서 H2/bin 파일을 찾아간다.윈도우라면 h2.bat 맥이라면 h2.sh를 실행
@SpringBootTest는 실제 구동되는 애플리케이션과 똑같이 application context를 로드하여 테스트하기 때문에 하고싶은 테스트를 모두 할 수 있다.하지만 설정된 빈을 모두 로드하기 때문에 규모가 크면 클수록 느려진다.단위 테스트라는 의미가 희석 될
mvc를 위한 테스트이다. 웹에서 테스트하기 힘든 컨트롤러를 테스트하기 적합하다.웹상에서 요청한 요청과 응답에 대해 테스트할 수 있다.필터 or 시큐리티 까지 자동으로 테스트하며 수동으로 추가/삭제 가능@SpringBootTest 보다 가볍게 테스트할 수 있다.@Con
spring-boot-starter스프링부트의 코어, auto-configuration,logging,yaml 제공spring-boot-starter-aop관점 지향 프로그래밍을 위한 스타터spring-boot-starter-batch스프링배치를 사용하는데 필요한 스타
RuntimeException을 상속하는 자식 클래스를 생성해 주었다.먼저, 예외에 대해서 살펴보자.Java에서 예외는 Error,RuntimeException,OtherException으로 나눌 수 있다.Error: JVM, 하드웨어 등 시스템에 문제가 발생했을때 나
앞으로 이야기할 주제는 예약 주문 결제 프로젝트를 진행하던 중 만난 동시성 문제에 관한 이야기이다.먼저, 동시성 문제란 한 자원에 여러 쓰레드가 동시에 접근 했을 때, 내가 예상했던 값이 결과로 나타나지 않는 것을 말한다.예를 들어보면,위의 그림처럼 i라는 자원에 대해