JUnit 5 : 테스트 반복하기 2부 인자 값들의 소스 @ValueSource 파라미터를 나열한다. @NullSource, @EmptySource, @NullAndEmptySource 기존 파라미터에 Null 혹은 빈값의 파라미터를 추가할 수 있다. @EnumSource @MethodSource @CsvSource @CsvFileSource @ArgumentSource 인자 값 타입 변환 암묵적인 타입 변환 명시적인 타입 변환 @ValueSource로 선언한 파라미터(@ValueSource(ints {10, 20, 40}))를 객체의 생성자에 파라미터로 하여 객체를 생성한 후 객체로 접근하여 가져온 값들을 테스트에서 확인해보자. 즉, 커스텀한 타입으로 변환하여 파라미터를 받고자 할 땐, Converte..
JUnit : 테스트 반복하기 어떤 테스트에 대해서 반복적으로 테스트를 진행할 수 있다. @DisplayName("스터디 만들기") @RepeatedTest(value = 10, name = "{displayName}, {currentRepetitions}/{totalRepetitions}" ) void create_study(RepetitionInfo repetitionInfo) { System.out.println("test" + repetitionInfo.getCurrentRepetition() + "/" + repetitionInfo.getTotalRepetitions()); } {displayName} : @DisplayName {currentRepetitions} : 현재 반복한 횟수 {tot..
JUnit5 : 커스텀 태그 JUnit에서 제공하는 어노테이션들을 메타 어노테이션으로 사용할 수 있다. 즉, 사용자가 만든 어노테이션에 JUnit 어노테이션을 넣어 사용할 수 있다는 것이다. //사용자 정의 어노테이션 //FastTest @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Test @Tag("fast") public @interface FastTest { } //SlowTest @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Test @Tag("slow") public @interface FastTest { } @FastTest @DisplayName("스터..
JUnit 5 : 태깅과 필터링 각 테스트 그룹을 만들고, 원하는 테스트 그룹만 테스트를 진행할 수 있는 기능이다. 여러 조건으로 우리가 원하는 태그를 붙여 해당 태그를 지정하여 테스트를 진행할 수 있는 것이다. @Tag 테스트 메소드에 태그를 추가할 수 있다. 하나의 테스트 메소드에 여러 태그를 사용할 수 있다. 소스로 확인해보자 Fast 태그와 slow 태그를 사용하여 용도에 맞게 테스트를 진행해보자 즉, 실행결과가 빠르게 나타나는 테스트를 fast, 실행결과가 느리게 나타나는 테스트는 slow로 가정하자 @DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) public class TagTest { @Test @DisplayNam..
MyISAM vs Inno DB 트랜잭션 처리가 필요하고 대용량 데이터를 다루기 위해서는 InnoDB가 효율적이다. 트랜잭션 처리가 필요없고 운영에 Read Only 기능이 많은 서비스일수록 MyISAM이 효율적이다. SELECT가 많은 서비스 : MyISAM 데이터 변화가 많은 서비스 : InnoDB MyISAM과 InnoDB의 가장 대표적인 차이 두 스토리지 엔진에서 가장 대표적인 차이는, Locking에 대한 것이다. MyISAM : Table Rocking으로 Row Level Locking을 지원하지 못해, SELECT INSERT UPDATE DELETE 시 해당 테이블 전체에 Locking이 걸리게 된다. InnoDB : Row Level Locking을 지원함으로써, 특정 데이터가 변경, ..
Inno DB Inno DB는 높은 안정성과 성능을 유지하는 범용 스토리지 엔진이며, transactional-safe 테이블을 관리한다. MySQL8.0에서는 InnoDB를 기본 스토리지 엔진으로 사용하고 있다. Inno DB 스토리지 엔진 기능 Feature Support B-tree indexes Yes Backup/point-in-time recovery (Implemented in the server, rather than in the storage engine.) Yes Cluster database support No Clustered indexes Yes Compressed data Yes Data caches Yes Encrypted data Yes (Implemented in the s..
MyISAM MyISAM은 ISAM(Indexed Sequential Access Method)의 단점을 보완하기 위해 나온 버전으로, 이 엔진은 비-트랜젝션-세이프(non-transactional-safe) 테이블을 관리한다. MySQL 5.5 이전까지 기본 스토리지 엔진이었다. MyISAM 스토리지 엔진 기능 Feature Support B-tree indexes Yes Backup/point-in-time recovery (Implemented in the server, rather than in the storage engine.) Yes Cluster database support No Clustered indexes No Compressed data Yes (Compressed MyISAM t..
MySQL 스토리지 엔진 데이터베이스의 엔진으로, DB에 대해 데이터를 CRUD를 사용하는 기본 소프트웨어 컴포넌트이다. 즉, 데이터를 직접적으로 다루는 역할을 하는 것을 말하며, InnoDB가 가장 기본적이고 가장 범용적이다. 서버에서 지원하는 스토리지 엔진 서버에서 지원하는 스토리지 엔진을 확인하려면 SHOW ENGINES 명령어를 사용하면 된다. SHOW ENGINES\G *************************** 1. row *************************** Engine: PERFORMANCE_SCHEMA Support: YES Comment: Performance Schema Transactions: NO XA: NO Savepoints: NO ***************..
- Total
- Today
- Yesterday
- effectivejava
- @Lazy
- try catch finally
- 빈 순환 참조
- 인프런
- java
- 이펙티브 자바
- 점층적 생성 패턴
- 팩토리 메소드 패턴
- 정적팩터리메서드
- Effective Java
- 자바8
- 이펙티브자바
- Spring
- mustache
- java8
- 김영한
- jdk버전
- package-private
- flatMap
- 연관관계
- JPA
- 빌더 패턴
- 생성자
- try with resources
- ifPresent
- 스프링부트
- 복사 팩토리
- springboot
- junit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |