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) 를..
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. 포스트들을 보다 보니 외부 설정 파일에서 읽어오는 것을 적어 놓은 게 너무 많았다. 여기에 모아 본다. 1-1 비슷비슷하고 중복되는 것도 있다. 2. Java Config 클래스를 통한 외부 설정파일 읽어오기 Spring : Configuration with Java Config Class - 설정 및 외부 properties 에서 읽어오기 1. XML파일 없이 스프링을 설정한다. 2. Configuration 클래스를 생성한다. 2-1 클래스 정의 위에 @Configuration을 붙인다 - xml 설정 파일처럼 이 클래스를 설정파일로 사용한다. 2-2 Annotation을 사용하기 위.. kogle.tistory.com 3. Xml을 통한 외부 설정 파일 읽어오기 Spring : Web MVC ..
1. auto configuration은 스프링 부트가 만들어진 중요한 이유 중 하나이다. 1-1 스프링의 설정은 Dependency Injection과 IOC 때문에 코드만큼 늘어날 수 밖에 없는 구조를 가지고 있다. 1-2 예전에는 코드에서 수행했던 모든 의존성에 대한 처리를 프레임워크에서 수행해야 하므로 1-2-1 언제, 어디에. 어떻게 의존성을 주입해야 할지에 대해 모든 기술이 별도로 이루어져야 한다. 1-2-2 이것이 POJO를 가능하게 한 스프링의 장점이지만 반대로 너무 많은 설정은 단점이 될 수 밖에 없다. 1-3 이것을 해결하기 위한 시도로 스프링 부트가 제안되었고, 프레임워크 개발자들이 제안하는 권고를 담고 있다. 1-3-1 즉 많이 사용되는 설정과 인과 관계가 있는 것은 프레임워크에서 ..
1. 인터페이스에는 불필요한 메소드가 있어서는 안된다. 2. 필요한 기능에 맞는 인터페이스를 여러 개 생성하는 것이 모든 메소드를 다 가지는 인터페이스보다 낫다. 3. 아래는 지난 Open Close 원리에서 붙였던 도면을 여기에도 가져다 쓰고 있다. 3-1 아래의 도식 역시 Interface segregation의 원칙이 반영되어 있다. 3-2 FlyBehavior, QuackBehavior라는 두개의 별도의 기능을 가지는 인터페이스를 사용하고 있기 때문이다. 4. 하지만 아래의 예제의 경우, Duck 클래스는 두 개의 인터페이스를 구현한 객체를 소유하는 형식으로 구현한다. 4-1 즉 Duck 클래스가 가지는 기능의 형태를 다양한 방식으로 확장하고 있는 것이지 4-2 Duck 자체의 기능을 추가하는 방..
1. 확장에는 열려있고 수정에는 닫혀 있어라 2. 코드 수정을 하지 않는 방향으로 작성해야 한다. 3. 항상 기능 확장 가능성을 고려하여 설계해야 한다. 4. 확장을 하려면 추상 레이어가 필요하다. 5. 이 원리를 가장 잘 설명해 주는 패턴이 strategy 패턴이다. 아래는 Head First Degisn pattern에 나오는 건데 인터넷에서 찾아서 붙였다. 6. Duck을 확장하기 위해서 FlyBehavior 인터페이스를 사이에 두고 나는 방법에 대한 클래스를 구현하고 있다. 6-1 Duck은 FlyBehavior의 fly()를 호출하면 실제 구현체에 따라서 다른 기능을 사용할 수 있게 된다.
1 이전에 작성한 것이 있긴 한대 내용이 좀 부실해서 다시 정리한다. 2. 스프링 라이프 사이클은 스프링 컨테이너가 어떻게 스프링 빈을 관리하는지에 대한 내용이다. 3. 인터넷을 찾아보면 위의 라이프 사이클에 맞게 작성한 코드가 있어 언제 호출하는지 확인 할 수 있다. 3-1 아래 수 많은 interface가 구현되고 있다. 각각의 인터페이스는 하나 혹은 두 개 정도의 메소드를 가지고 있다. 3-2 sysout안에 어떤 interface의 메소드인지를 명시하였다. 3-3 Aware 인터페이스는 스프링이 프레임워크의 내부적인 동작을 수정하기 위한 기회를 제공한다. 3-4 InitializingBean, DisposableBean은 이벤트에 따라 실행되는 call back 메소드를 제공한다. 3-5 @Pos..
- 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
- hibernate
- 로그인
- crud
- 하이버네이트
- 스프링
- one-to-one
- 스프링부트
- Spring Security
- spring boot
- 외부파일
- MYSQL
- Validation
- 매핑
- 설정하기
- login
- Rest
- 상속
- jsp
- 설정
- XML
- one-to-many
- 자바
- RestTemplate
- Security
- Many-To-Many
- form
- Spring
- WebMvc
- mapping
- Angular