프로그래밍 언어/Java

에러 TimeUnit을 찾을 수 없다는 에러가 계속 발생해서 애를 먹었다.  해결결론부터 말하자면, 문제의 원인은 인텔리제이 버전 때문이었다. 나는 에러발생 당시 IntelliJ 2023.1 버전을 사용하고 있었고, JDK 21로 프로그램을 실행하였다.현재 가장 최신 버전인 2024.2.4 버전으로 바꾸니 에러가 완전히 해결되었다.캐시도 지워보고 별짓을 다했는데, IDE버전 문제라니... 허무하다.  나처럼 고생하는 사람이 없길 바라면서 블로그를 포스팅한다.  참고자료https://stackoverflow.com/questions/77551293/intellij-idea-jdk-21-issue-with-java-util-concurrent-package-timeunit-class?answertab=tre..
글을 쓰게 된 계기 Assertions의 메서드들 중에는 다음과 같이 Exception을 테스트하는 메서드가 있다 ThrowableTypeAssert assertThatExceptionOfType(final Class
이번에 우테코 프리코스를 하면서 테스트를 많이 접하게 되었다. 테스트는 내가 구현한 기능을 테스트하는 용도라고만 생각했는데, 잘 이용하면 학습도구로 사용될 수 있다는 것도 알게되었다! 예를 들어 특정 상황에서 Collections의 함수가 어떻게 동작하는지 눈으로 확인하기 위해 여러번 System.out을 호출할 수도 있겠지만, 여러 상황에 반복적으로 테스트하기는 번거로울 수 있다. 이 때 assertJ와 JUnit을 이용한다면 다양한 상황에서 반복적으로 테스트를 작성할 수 있기 때문에 학습 효율이 올라갈 수 있다! 물론 테스트에 대해 조금은 공부해야겠지만, 조금의 지식이 있는 사람이라면 정말 유용한 학습도구가 될 것 같다. +) 동시에 테스트도구에도 익숙해질 수 있을 듯 이번에는 Test코드를 만들어서..
이전글 https://fladi.tistory.com/380 [JAVA] 상수와 enum 공부하기1 Java에서 Enum이란? enum은 enumeration이라는 셈, 계산, 열거, 목록이라는 뜻의 앞부분만 따서 만든 자바의 예약어이다. JDK 1.5 부터 등장한 열거형 상수이다. 서로 연관된 상수들의 집합이라고 생각할 fladi.tistory.com 서론 이전 글에서 java에서의 상수와 enum을 알아봤다. enum은 상수를 모으는 역할을 할 뿐만 아니라, 연관값을 설정하는 등 다양하게 활용될 수 있다고 하였는데 이번에 다양한 활용법들을 정리해보려고 한다. 아래의 블로그를 많이 참고하여 작성한다! https://techblog.woowahan.com/2527/ Java Enum 활용기 | 우아한형제..
Java에서 Enum이란? enum은 enumeration이라는 셈, 계산, 열거, 목록이라는 뜻의 앞부분만 따서 만든 자바의 예약어이다. JDK 1.5 부터 등장한 열거형 상수이다. 서로 연관된 상수들의 집합이라고 생각할 수 있다. (그냥 관련 있는 상수들을 하나로 모아두었다고 생각하면 쉽다) 자바에서 상수를 정의하는 방법 상수는 변하지 않는 값이다. 즉, 기본 자료형의 값을 고정하는 것을 상수라고 한다. 자바에서 상수를 정의하는 방법은 다양하다. 1. 임의의 값을 지정하여 상수처럼 쓰기 /* * 월요일 = 1 * 화요일 = 2 * 수요일 = 3 * ... */ int day = 1; switch (day) { case 1: System.out.println("월요일"); break; case 2: S..
public class Day { private static final int MONDAY = 1; private static final int TUESDAY = 2; private static final int WEDNESDAY = 3; ... } 자바 클래스 내부에서 상수를 정의할 때 관례적으로 private static final을 사용한다 이렇게 선언하면 장점이 무엇이고, 왜 관례가 되었는지 한 번 알아보려고 한다! static이란? static은 클래스마다 하나만 만들어지는 정적인 것이다. 클래스에 static변수를 만들면 객체가 만들어질 때마다 만들어지지 않고, 클래스마다 각각 하나씩만 만들어진다. static변수는 클래스가 로딩될 때 메모리에 올라가고, 객체 생성 및 삭제와 관계없이 프로그램..
이전 글 https://fladi.tistory.com/369 [JAVA] 단위테스트 공부1: Mock 알아보기 객체지향 프로그램에서는 여러가지 객체들이 서로 협력하면서 메시지를 주고 받는다. 그렇기 때문에 클래스의 독립적인 메서드를 테스트하기 위해서는 협력하는 상대를 가짜객체로 만들어서 fladi.tistory.com https://fladi.tistory.com/370 [JAVA] 단위테스트 공부2: 테코톡 보고 정리 fladi.tistory.com 이번에는 이전에 공부한 내용을 바탕으로 활용한 내용을 설명하겠다 @ParameterizedTest //Class Car public void moveOrStop() { if (isMove()) { move++; } } private boolean isMo..
public class ConsoleInput implements Input { private InputValidator inputValidator; public ConsoleInput() { this.inputValidator = new InputValidator(); } ... } 이런식으로 클래스 내부에서 속성을 만들어 사용하는 경우에 InputValidator에 대한 mock객체를 어떻게 넣어야하나 궁금했다. 그래서 구글링을 해봤다 https://cornswrold.tistory.com/369 Mockito 어노테이션(@Mock, @InjectMocks) Mockito 관련 어노테이션 @RunWith(MockitoJunitRunner.class) Mockito에서 제공하는 목객체를 사용하기 하기위..
1주차의 Test코드를 조금 분석했었는데, 2주차 테스트코드를 작성할 때 도움을 많이 받았다. 그래서 2주차의 Test코드도 분석해보려고 한다! 1. ApplicationTest분석 class ApplicationTest extends NsTest { private static final int MOVING_FORWARD = 4; private static final int STOP = 3; @Test void 전진_정지() { assertRandomNumberInRangeTest( () -> { run("pobi,woni", "1"); assertThat(output()).contains("pobi : -", "woni : ", "최종 우승자 : pobi"); }, MOVING_FORWARD, STOP..
자바에서 문자열 양쪽 공백을 제거하는 방법은 trim와 strip이 있습니다. StringBuilder, StringBuffer/ split, StringTokenizer 등 같은 동작을 하지만 이름이 같은 도구들이 많은데, trim와 stip도 마찬가지입니다! 이번에 차이점을 확실히 알아두기 위해 블로그에 포스팅합니다. String.Strip() String str = " 안녕하세요 "; String strip = str.strip(); System.out.println("[" + strip + "]"); Strip()은 스트링 값을 받아 양쪽 공백을 제거한 스트링을 반환합니다. 메서드를 타고 들어가서 읽어보면 다음과 같이 설명합니다. 모든 선행 및 후행 white space을 제거하여 값이 이 문자열..
fladi
'프로그래밍 언어/Java' 카테고리의 글 목록