본문 바로가기

분류 전체보기

(183)
멀티스레드 프로그래밍 선장님과 함께하는 자바 스터디입니다. 자바 스터디 Github github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 나의 Github github.com/cmg1411/whiteShip_live_study cmg1411/whiteShip_live_study ✍ 자바 스터디할래. Contribute to cmg1411/whiteShip_live_study development by creating an account on GitHub. github.com Thread 클래스와 Runnab..
예외 처리 선장님과 함께하는 자바 스터디입니다. 자바 스터디 Github github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 나의 Github github.com/cmg1411/whiteShip_live_study cmg1411/whiteShip_live_study ✍ 자바 스터디할래. Contribute to cmg1411/whiteShip_live_study development by creating an account on GitHub. github.com 자바에서 예외 처리 방법 (try..
인터페이스 선장님과 함께하는 자바 스터디입니다. 자바 스터디 Github github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 나의 Github github.com/cmg1411/whiteShip_live_study cmg1411/whiteShip_live_study ✍ 자바 스터디할래. Contribute to cmg1411/whiteShip_live_study development by creating an account on GitHub. github.com 인터페이스 정의하는 방법 인터페이..
패키지 선장님과 함께하는 자바 스터디입니다. 자바 스터디 Github github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 나의 Github github.com/cmg1411/whiteShip_live_study cmg1411/whiteShip_live_study ✍ 자바 스터디할래. Contribute to cmg1411/whiteShip_live_study development by creating an account on GitHub. github.com package 키워드 import..
디스패치, 다이나믹 디스패치, 더블 디스패치 Dynamic Method Dispatch Dependency 의존성 하나의 클래스 A 가 있다. 다른 클래스 B 가 있다. B 클래스의 내부 구현에서 A 클래스로 인스턴스를 만들었다. B 클래스 내부에서 만든 A 의 인스턴스로 A 클래스의 메서드도 사용했다. 그렇게 에플리케이션을 잘 사용하다가, A 클래스의 메서드를 삭제했다. 그럼 B 클래스는 어떻게 될까? 당연히 오류를 뱉을 것이다. B는 A를 사용하고 있었으니까. 이렇게 B 가 A를 사용하고 있는 상태를 B 는 A를 의존한다 라고 하고, 두 클래스는 의존관계가 있으며 이런 것을 의존성이라 한다. 디스패치 디스패치란 어떤 메서드를 호출할 것인가 를 결정하는 과정을 말한다. 즉 메서드의 의존성을 결정하는 과정이라 할 수 있다. 정적 디스패치 동적 디스..
상속 선장님과 함께하는 자바 스터디입니다. 자바 스터디 Github github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 나의 Github github.com/cmg1411/whiteShip_live_study cmg1411/whiteShip_live_study ✍ 자바 스터디할래. Contribute to cmg1411/whiteShip_live_study development by creating an account on GitHub. github.com 자바 상속의 특징 super 키워..
@TestMethodOrder 이 어노테이션은 뭘까. 테스트 클래스에 테스트 메서드를 쭉 나열했다고 치자. 이 테스트 메서드들은 위에서 아래로 실행될까? 그건 보장할 수 없다. 테스트를 실행해야하는 순서를 보장해야할 때, 이 어노테이션을 쓰면 된다. 아래 예시를 보자. @TestInstance(TestInstance.Lifecycle.PER_METHOD) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) class CarTest { private int number = 0; @Order(3) @Test void test1() { System.out.println(1); } @Order(2) @Test void test2() { System.out.println(2); } @Order(1)..
JUnit 의 @TestInstance 다음 테스트 코드가 있다. class CarTest { private int number = 0; @Test void test1() { System.out.println(++number); } @Test void test2() { System.out.println(++number); } } 이 클래스 테스트들을 돌리면 결과가 어떻게 나올까. 1과 2? 나도 처음엔 그렇게 생각했다. 하지만 정답은 1과 1이다. 왜냐하면, JUnit 에서는 @Test 가 붙은 테스트 메서드를 실행시킬 때, 각각 클래스를 새로 로딩(?) 한다. 그럼 처음 생각했던 대로 1, 2가 나오게 하려면 어떻게 해야 할까. @TestInstance 어노테이션을 사용하면 된다. 이 어노테이션에는 인수를 설정할 수 있는데, @TestIns..