본문 바로가기

Back/Spring8

Spring Web Layer(Dto?, Dao?) Web Layer 흔히 사용하는 컨트롤러(@Controller)와 JSP/Freemarket 등의 뷰 템플릿 영역 이외에도 필터(@Filter), 인터셉터, 컨트롤러 어드바이스(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역을 이야기함. Service Layer @Service에 사용되는 서비스 영역임 Service에서 비즈니스 로직을 처리하는 것이 아닌, Service는 트랜잭션, 도메인간 순서 보장의 역할을 수행함 일반적으로 Controller와 Dao(Data Access Object)의 중간 영역에서 사용함 @Transactional이 사용되어야 하는 영역임 Repository Layer Database와 같이 데이터 저장소에 접근하는 여역 기존에 개발하셨던 분들이라면.. 2022. 3. 28.
테스트코드 JUnit : 자바의 단위테스트를 위한 프레임워크 1. 테스트를 할 화면 창에 Ctrl + Shift + T 2. 아래 클릭 3. ok 클릭 4. 테스트 코드 생성 확인 5. 테스트 코드 작성 * assertEquals는 왼쪽에 예상되는 아웃풋, 오른쪽에는 내 아웃풋을 넣어줌 6. 함수만 실행 Ctrl + shift + F10 중앙 상단쪽에 Tests Passed를 확인할 수 있음. 7. 일부로 틀리기 ! 느낌표 하나로 테스트가 실패한 것을 볼 수 있음. 8. MockitoExtension 사용하기 package com.fastcampus.programming.dmaker.service; import com.fastcampus.programming.dmaker.code.StatusCode; import .. 2022. 3. 14.
[Spring] Null Safety 객체에 Null을 담지 않도록 하자. 담아도 되는데 그 객체는 다시한번 쳐다보자. 제임스 고슬링 아저씨의 10억불짜리 실수인 Null은 항상 체크해야한다. 위 코드에서 만약 request가 null이면 NPE가 뜬다. 1. @NonNull Annotation 이거쓰면 위처럼 if문 걸어서 예외처리 안해도 된다. NonNull Annotation은 3군데 붙을 수 있는데 아래와 같다. 1. 파라미터에 NonNull Annotation을 줬기에 메서드 호출 시점에 Exception이 처리된다. 따라서 아래 if문은 없어도 된다. 2. 프로퍼티에 NonNull이 있다. 이 프로퍼티는 Null이 될 수 없는 프로퍼티가 된 것이다. 3. Method는 NonNull이기에 Null을 리턴할 수 없다. 2. @Nul.. 2022. 2. 8.
[Spring] SpEL(Spring Expression Language) 필요한 데이터나 설정 값을 얻어올 수 있게 하는 특별한 형태의 표현식에 가까운 간편한 언어 @Value("${config.value}")와 같은 방식으로 설정값을 주입 받는데 활용 1. SpEL의 값 평가(인식) Spel Parser는 ""안에 들어가있는 문자열을 평가(evaluation)해서 결과 값을 만들어 낸다. 문자열 리터럴로 인식되어 concat등 메서드도 가능하다. 위 case처럼 리터럴 값에 접근하는 경우보다는 아래와 같은 경우를 많이 사용할 것 이다. 2. Bean의 Property 설정 기본적으로 #{} 방식으로 property를 설정 ${server.hostname}처럼 $로 시작하는 것은 application.properties 혹은 application.yml의 값을 가져올 때 사용.. 2022. 2. 8.