1. 예외 발생 메서드(검증 대상) public class DoSomething { public static void func() { throw new RuntimeException("some exception message..."); } } RuntimeException이 발생하는 메서드를 만들었다. 우리가 검증해야할 검증 대상이다. 2. 예외 테스트 코드 작성하기 위에서 작성한 "예외 발생 메서드가 예외를 잘 발생하는지"를 테스하는 코드를 4가지 방법으로 작성해볼 수 있다. 방법1. assertThrows: 예외 타입이 같은지 검사 import static org.junit.jupiter.api.Assertions.assertThrows; @Test public void junit5에서_excepti..
1. null과 관련된 문제 null과 관련된 문제들을 크게 2가지로 요약해보면 1) 런타임에 NPE(NullPointerException)라는 예외를 발생시킬 수 있다. 2) NPE 방어를 위해서 들어간 null 체크 로직 때문에 코드 가독성과 유지 보수성이 떨어진다. 이렇게 null과 관련된 문제들로 인하여 Optional이 등장하게 되었다. 2. Optional 이란? Java8에서 Optional는 null이 올 수 있는 객체를 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다. Optional을 최대 1개의 원소를 가지고 있는 특별한 Stream이라고 생각하면 편하다. Optional 클래스는 아래와 같은 value에 값을 저장하기 때문에 값이 null이더라도 바로 ..
1. Stream 이란? Java8부터 지원하는 Stream은 컬렉션, 배열 등에 저장되어 있는 요소들을 하나씩 참조하며 반복적인 처리를 가능하게 하는 기능이다. Stream을 사용한다면 불필요한 for문과 if문 등의 분기처리를 쓰지 않고 깔끔하고 직관적인 코드로 변형할 수 있다. 2. Stream 특징 1) Stream은 원본 데이터를 변경하지 않는다. - 원본 데이터로부터 데이터를 읽기만 할 뿐, 변경은 하지 않는다. 2) Stream은 일회용이다. - 한 번 사용하면 닫혀서 재사용이 불가능하다. 필요시 정렬된 결과를 컬렉션이나 배열에 담아 반환할 수 있다. 3) Stream은 작업을 내부 반복으로 처리한다. - 내부 반복을 통해 간결한 코드를 작성할 수 있다. (내부반복이란 반복문을 메서드 내부에..
1. Map 이란? Map은 Key-Value 쌍으로 이루어진 자료형이다. Map은 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻는다.(순서가 없음) 값(Value)은 중복될 수 있지만, Key는 고유한 값(Unique)을 가져야 한다. 2. HashMap 이란? HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다. ▶ HashMap 변수명 = new HashMap(): HashMap 생성 // key: Integer, value: String..
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. 1. 회원 서비스 개발 1) src/main/java 하위에 service 패키지 생성 2) service 패키지에 MemberService 클래스 생성 3) 회원 서비스 클래스 코드 작성 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import java.util.List; import java..
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. 개발한 기능을 실행해서 테스트 할 때 1)자바의 main 메서드를 통해서 실행하거나, 2)웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행한다. 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 자바는 JUnit(프레임워크)로 테스트를 실행해서 이러한 문제를 해결한다. 내가 쓴 코드가 잘 돌아가는지 확인하는 코드를 작성해야한다. 1. 회원 리포지토리 메모리 구현체 테스트 1) src/test/java 하위에 repository 패키지 생성 2) repository 패키지에 MemoryMemberReposit..