Exception and Test

최승훈·2023년 3월 16일
0

Exception

예외는 프로그램 실행 중에 개발자의 실수로 예기치 않은 상황이 발생했을 때 입니다.예를 들어 배열의 범위를 벗어난(ArrayIndexOutOfBoundsException), 값이 null이 참조변수를 참조(NullPointerException), 존재하지 않는 파일의 이름을 입력(FileNotFoundException) 등이 있습니다.

예외에는 2가지로 나눌 수 있습니다.

  • 체크 예외(Checked Exception),
  • 언체크 예외(Unchecked Exception)

Checked Exception

체크 예외는 RuntimeException의 하위 클래스가 아니면서 Exception 클래스의 하위 클래스들입니다. 체크 예외의 특징은 반드시 에러 처리를 해야하는 특징(try/catch or throw)을 가지고 있습니다.

존재하지 않는 파일의 이름을 입력(FileNotFoundException)
실수로 클래스의 이름을 잘못 적음(ClassNotFoundException)

Unchecked Exception

언체크 예외는 RuntimeException의 하위 클래스들을 의미합니다. 이것은 체크 예외와는 달리 에러 처리를 강제하지 않습니다.
말 그대로 실행 중에(runtime) 발생할 수 있는 예외를 의미합니다.

배열의 범위를 벗어난(ArrayIndexOutOfBoundsException)
값이 null이 참조변수를 참조(NullPointerException)

DAO

DAO(Data Access Object) 는 데이터베이스의 data에 접근하기 위한 객체입니다. DataBase에 접근 하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용합니다.

DTO

DTO(Data Transfer Object) 는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)입니다.
유저가 입력한 데이터를 DB에 넣는 과정을 보겠습니다. 유저가 자신의 브라우저에서 데이터를 입력하여 form에 있는 데이터를 DTO에 넣어서 전송합니다. 해당 DTO를 받은 서버가 DAO를 이용하여 데이터베이스로 데이터를 집어넣습니다.

VO

VO(Value Object) 값 오브젝트로써 값을 위해 쓰입니다. read-Only 특징(사용하는 도중에 변경 불가능하며 오직 읽기만 가능)을 가집니다. DTO와 유사하지만 DTO는 setter를 가지고 있어 값이 변할 수 있습니다.

JUnit5이란?

JUnit Platform + JUnit Jupiter + JUnit Vintage가 합쳐진 프레임워크로, Java8 부터 사용 가능합니다.

  • JUnit Platform
    • JVM에서 테스트 프레임워크를 실행하는데 기초 제공
    • TestEngine API로 테스트 프레임워크 개발
  • JUnit Jupiter
    • JUnit 5에서 테스트를 작성하고 확장을 하기 위한 새로운 프로그래밍 모델과 확장 모델의 조합
  • JUnit Vintage
    • 하위 호환성을 위해 JUnit3과 JUnit4를 기반으로 돌아가는 플랫폼에 테스트엔진

Intellij에서 JUnit 사용하기

src/test/java 하위에 패기지를 생성하고 클래스를 생성한다. Controller의 경로가 src/main/java/web/이라면 테스트 코드를 작성하기 위한 클래스의 경로는 src/main/java/web/이어야 합니다.
test 생성 단축기 Command + shift + T

성공

실패

profile
안녕하세요!!

0개의 댓글