본문 바로가기
728x90

스터디/JAVA13

[JAVA] 타임존 알아보기 Instant, LocalDateTime, ZonedDateTime 목차   1. GMT, UTCGMT영국에 있는 그리니치 천문대 (경도 0도)를 기준으로하는 태양 시간쉽게 좌우로 15도씩 1시간 차이를 나타내며 동쪽으로 +1시간씩 서쪽으로는 -1시간 현재 한국은 동쪽으로 약 135도에 위치해있으며 GMT 기준으로 9시간이 차이가 난다.그래서 보통 한국의 타임존은 GMT+09:00으로 표현된다.UTC지구의 자전주기의 흐름이 점점 늦어지고 있는 문제를 해결하기 위해 나온 시간대이다.소프트웨어를 사용할 때에는 UTC가 더 정확하다. 2. InstantInstant는 1970년 부터 현재 시간까지를 계산한 nano초 동안의 시간이며 하나의 순간을 나타냅니다.대부분의 로직과 데이터들은 UTC와 같은 정확한 시간으로 계산되어야 하므로 자주 사용하는 클래스입니다.public cla.. 2024. 7. 2.
[JAVA] enum 비교는 equals 일까 == 일까? 목차   1. enum 비교 equalspublic void test(NotificationType notificationType) { // case1) enum 값을 앞에 작성 if (NotificationType.DONE.equals(notificationType) { ... } // case2) enum 값을 뒤에 작성 if (notificationType.equals(NotificationType.DONE) { ... } // case3) == 비교 if (notificationType == NotificationType.DONE) { ... }} 위 코드는 메소드의 파라미터로 넘어온 값(notificationType) 을 알림타입 enum 값(NotificationType.DONE) 을 비.. 2024. 4. 28.
[JAVA] Junit InvalidTestClassError 오류 원인과 해결 방법 목차 1. InvalidTestClass Error 테스트 코드를 작성하다가 InvalidTestClassError 를 보게되었습니다. 작성한 코드 import org.junit.jupiter.api.Test; ... @RunWith(SpringRunner.class) @SpringBootTest(classes = TestApplication.class) @ActiveProfiles(resolver = TestProfileLoader.class, inheritProfiles = true) @Transactional @Rollback public class TestCode { @Test public void test() { ... } } 에러 메시지 org.junit.runners.model.Invalid.. 2024. 1. 29.
[JAVA] Mac M1, M2 openjdk17 설치하기 목차 1. brew 설치 brew 명령어를 사용하기전에 homebrew 가 설치되어있어야합니다. homebrew 설치하는 자세한 방법은 아래 링크를 참고하세요! [JAVA] Mac homebrew 설치 및 사용 방법 목차 1. Homebrew란? Homebrew 는 Ruby 로 개발된 Mac 용 패키지 관리 애프리케이션입니다. 프로그램을 설치할 때 설치 파일을 다운로드받아 직접 설치할 수 있지만 homebrew 를 사용하면 터미널에서 명령 hyeri0903.tistory.com 2. open jdk17 설치 brew 명령어로 간단하게 openjdk17을 설치합니다. brew install openjdk@17 3. 환경 변수 설정 zsh를 사용할 경우 아래 명령어로 PATH 추가합니다. echo 'expo.. 2024. 1. 28.
[JAVA] Mac homebrew 설치 및 사용 방법 목차 1. Homebrew란? Homebrew 는 Ruby 로 개발된 Mac 용 패키지 관리 애프리케이션입니다. 프로그램을 설치할 때 설치 파일을 다운로드받아 직접 설치할 수 있지만 homebrew 를 사용하면 터미널에서 명령어를 입력하여 프로그램을 간단하게 설치할 수 있습니다. 따라서 이러한 간편함으로 Mac 유저들은 대부분 homebrew를 설치해서 사용하기때문에 반드시 설치해야되는 필수 프로그램중 하나입니다. 3. Homebrew 설치하기 Homebrew (https://brew.sh/ )사이트에 접속해서 아래 코드를 복사해주세요. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh).. 2024. 1. 27.
[JAVA] Fail-Fast 와 Fail-Safe 목차 1. Fail-Fast란 Fail-Fast 는 동작중 오류가 발생하면 바로 오류를 알리고, 작업을 중단하는 것입니다. 즉, 문제가 발생하면 곧바로 실행을 중단하고 최대한 빨리 예외를 던집니다. ArrayList, HashMap 등과 같은 java.util 패키지의 콜렉션에 대한 기본 반복자는 Fail-Fast입니다. Fail-Fast Iterators Iterator의 remove() 메소드 이외의 코드로 기존 Collection이 수정되면 Fail-Fast iterators는 예외가 발생합니다.Collections은 modCount라는 내부 카운터를 유지합니다. Collection에서 항목을 추가하거나 제거 할 때마다 이 카운터가 증가합니다.반복 할 때 각 next() 호출에서 modCount의 .. 2023. 8. 17.
[JAVA] Collections.emptyList() 와 Lists.newArrayList() null을 반환하는 것은 위험하니 빈 empty List를 반환하는게 안전합니다. empty List를 반환하기위해 사용할 수 있는 코드는 아래와 같이 두 가지 선택이있는데요, Collections의 emptyList 와 Lists의 newArrayList는 무슨차이가 있을까요? Collections.emptyList() public static final List emptyList() { return (List) EMPTY_LIST; } Collections.emptyList() 는 static 으로 이미 만들어진 객체입니다. 따라서 cpu와 메모리에 추가 비용이 발생하지 않습니다. Collections.emptyList() 은 final 로 불변 객체를 리턴합니다. 따라서 객체 값을 받아 변경하는 경.. 2023. 8. 11.
[JAVA] CollectionUtils.isEmpty() 사용법 및 예시 객체의 Null 체크와 empty 여부를 동시에 체크하기 위해 어떻게 해야할까요? 지난번에는 String의 white space와 null 체크할 때 사용하는 StringUtils에 대해서 알아보았는데요~ 만약 List 의 empty 여부를 확인하고 싶다면 어떻게 해야하는지 알아보도록 하겠습니다~ ColletionUtils 문자열의 다양한 메소드를 사용하기위해 StringUtils 패키지를 사용했다면 객체에 대한 메소드를 사용하기위해서 CollectionUtils 패키지를 사용합니다. CollectionUtils는 Apache Commons에서 제공하는 클래스로 List의 길이와 null 체크 할 때 주로 사용됩니다. CollectionUtils.isEmpty() List testList = new Ar.. 2023. 2. 12.
[JAVA] StringUtils.isBlank()와 StringUtils.isEmpty() 차이 Apache Commons에서 제공하는 패키지중 하나인 StrigUtils 를 사용하여 String의 null 체크, white space(공백) 체크 또는 빈 문자열의 유무를 확인 할 수 있습니다. StringUtils 알아보기 StringUtils는 org.apache.commons.lang.StringUtils 패키지에서 제공하는 클래스입니다. 자바의 String 클래스가 제공하는 문자열 관련 기능을 강화한 클래스인데요 StringUtils의 특징은 아래와 같습니다. - 특징 StringUtils 클래스만으로 거의 대부분의 문자열 처리를 수행 파라미터 값으로 null을 주더라도 NPE (Null Point Exception)을 발생시키지 않음 참고: https://commons.apache.org/.. 2023. 2. 11.
[JAVA] 자바 예외 처리 (Exception) 자바 프로그램 컴파일시 발견하지 못하는 에러를 Runtime error 라고 한다. 이때 발생하는 에러를 어떻게 처리할지 개발자가 예외 처리로 핸들링 할 수 있다. 예외 처리 1. try catch 구문 예외가 발생했을 때 try ~ catch ~ finally 구문으로 예외를 처리하거나 throw로 메소드를 호출한 곳으로 던질 수 있다. 한 가지 중요한 점은 자바에서 모든 예외는 Exception 이라는 클래스를 상속받는다. Exception : 컴파일 시 발생 (일반예외) RuntimeException : 프로그램 실행 시 발생 (실행예외) Exception의 상속 트리구조는 아래와 같다. 예외 처리하는 방식은 아래와 같다. try { //로직 수행 구문 }catch(Exception e){ //Ex.. 2021. 8. 20.
[JAVA] Primitive Type 과 Wrapper Class 💡기본형과 참조형 JAVA의 변수는 기본적으로 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있다. 기본형으로는 short, int, long, float, double, byte, char, boolean 으로 8가지가 있다. 1. 기본형(Primitive Type) - 모두 첫 글자가 소문자 - 산술 연산이 가능하다. - Null로 초기화 할 수 없다. 2. 참조형(Wrapper Class) - 모두 첫 글자가 대문자 - 산술 연산 불가능 - Null 사용이 가능하다. - DB와 연결시 DTO 객체에 Null이 필요한 경우 사용할 수 있다. 기본형은 변수의 값을 그대로 저장한다. 참조형은 객체의 레퍼런스를 저장한다. 참조형에는 객체가 할당되어야하는데 기본형과 달.. 2021. 8. 15.
[JAVA] 객체 지향 설계 SOLID 객체지향 설계에서 자주 나오는 단어인 SOLID를 두루뭉실하게만 알고있어서 정리하려고한다. SOLID 컴퓨터 프로그래밍에서 SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다. 문자 약어 개념 S SRP (Single reponsibil.. 2021. 7. 2.
[JAVA] 자바 오류, 에러 (Error) 종류 1. 컴파일 에러 (Compillation Error) - 컴파일 단계에서 오류 발견, 컴파일러가 에러 메시지 출력 - 에러 발생 원인 : 문법 오류 - 예) 맞춤법, 문장부호(;), 선언되지 않은 변수 사용 등 2. 런타임 에러 (Runtime Error) - 프로그램 실행 중 에러 발생 - 컴파일 때 에러나지 않고 프로그램 실행 시 에러 발생 -> 문법적 오류는 아님 - JVM에서 에러 메시지 출력 (XXXException 에러) - 예외(Exception)처리 등을 통해 에러 해결 - 예) 0으로 나누기, 무한루프, null pointer error, segmentation fault(존재하지 않는 메모리 위치에 접근, 잘못된 index 참조) - RuntimeException 종류 3. 논리 에러.. 2021. 5. 30.
728x90