1. JUnit 4 버전의 테스트 코드이다. 2. ArgumentCaptor이라는 클래스를 사용하여 인자 값을 받아올 수 있다. 2-1 ArgumentCaptor의 capture는 verify 구문 내에서 사용할 수 있다. 2-2 반환되는 값은 Recipe Set이 되고 검증에 사용할 수 있다. package pe.pilseong.recipe.controller; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.ui.Model; import pe.pilseong.recipe.domain.R..
1. JUnit 4 버전의 테스트 코드이다. 1-1 아래는 unit 테스트이므로 컨텐스트를 생성할 필요가 없다. 1-1-1 여기서는 MokitoAnnotations.intiMocks 메소드를 사용하였는데 1-1-2 @RunWith(MockitoJUnitRunner.class)를 사용해도 된다. 1-2 컨트롤러는 일반적으로 Service를 사용하고 Model을 사용한다. 둘 다 Mock으로 생성하였다. 1-3 service를 호출했을 때 반환할 값을 설정하였다. 1-4 controller의 메소드를 호출하여 정상적인 view이름을 반환하는 지 확인한다. 1-5 마지막으로 service의 메소드가 몇 번 호출되었는지 model의 메소드가 몇 번 호출되었는지 체크한다. package pe.pilseong.re..
1. JUnit 4 버전의 테스트 코드이다. 2. 아래는 Service 구현체의 Unit테스트의 예시이다. 연동이 필요하기 때문에 Mock object를 사용한다. 2-1 테스트는 context를 사용하지 않는다. 2-2 Mockito를 통해 Repository fixture을 구현하고 있다. 2-3 MockitoAnnotations은 @Mock으로 지정된 fixture를 초기화 해 준다. initMocks의 인자는 테스트 클래스가 된다. 2-3-1 더 정확히 말하면 @org.mockito.Mock, @Spy, @Captor, @InjectMocks 로 지정된 fixture를 초기화 해준다. 2-3-2 이 방식을 사용하지 않으려면 클래스에 @RunWith(MockitoJUnitRunner.class) 를..
1. Optional은 다양한 functional 프로그래밍 기능을 지원한다. 2. 값이 들어 있을 때는 값을, 값이 없을 때는 null을 반환하는 경우 2-1 아래의 comment 된 부분과 아래 한 줄은 동일하다. @Override public Owner findById(Long id) { Optional optionalOwner = this.ownerRepository.findById(id); // if (owner.isPresent()) { // return owner.get(); // } else { // return null; // } return optionalOwner.orElse(null); } 2-2 orElse 메소드는 단순히 값이 없을 경우 반환할 데이터를 지정할 수 있다. 2-2-..
0. LOB은 가변길의를 갖는 큰 데이터를 저장하는데 사용하는 데이터형이다. 0-1 CLOB은 문자기반을 데이터를 저장하는데 사용된다. 0-2 BLOB은 binary 데이터를 저장하는데 사용된다. 1. @Lob은 일반적인 데이터베이스에서 저장하는 길이인 255개 이상의 문자를 저장하고 싶을 때 지정한다. 2. 아래는 유저 엔티티를 데이터베이스에 저장하는 간단한 발췌인데, 유저는 이름과 사진을 정보를 가지고 있다. // 유저 엔티티 @Entity @Table(name="user") @Data public class User { @Id private Long id; @Column(name = "name", columnDefinition="VARCHAR(128)") private String name; @Lo..
1. spring.jpa.hibernate.ddl-auto에서 설정하는 자동 데이터베이스 생성 정책에 대한 내용이다. 2. 선택 가능 옵션들 2-1 none 2-2 validate - 기동 시 스키마를 검증하여 필요한 테이블과 컬럼이 없을 경우 에러가 발생한다. 2-3 update - Entity에 적합하게 기존의 스키마를 변경한다. 데이터는 그대로이다. 2-4 create - 기동 시 데이터베이스 스키마가 생성된다. 종료 시 데이터만 삭제된다. 2-5 create-drop - 기동 시 데이터베이스 스키마가 생성되지만, 종료시 데이터베이스 스키마가 삭제 된다. 3. 내장 데이터베이스(h2, hsql, derby)에는 스프링 부트는 create-drop을 기본으로 사용한다. 4. Hibernate의 기본 ..
1. 이 문제는 알고리즘에 관한 내용으로 깊은 생각을 요구한다. Share A string S of lowercase English letters is given. We want to partition this string into as many parts as possible so that each letter appears in at most one part, and return a list of integers representing the size of these parts. Example 1: Input: S = "ababcbacadefegdehijhklij" Output: [9,7,8] Explanation: The partition is "ababcbaca", "defegde", "hijhk..
0. 사용된 lambda는 0-1 정렬을 위하여 sorted(Comparator)를 사용하였다. 0-2 toArray는 배열을 생성하는데 내부적으로 IntFunction을 인자로 받는다. 0-2-1 IntFunction은 하나의 int 값을 인자로 받아 특정타입을 반환하는 함수이다. 0-2-2 보통 인자는 생성할 배열의 크기가 되고 여기서는 new 메소드로 타입을 지정한다. 1. 이 문제는 정렬에 대한 문제이다. 937. Reorder Data in Log Files You have an array of logs. Each log is a space delimited string of words. For each log, the first word in each log is an alphanumeric ..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib