TIL 34

24.08.03 TIL - Effective Java Item 55

옵셔녈 반환은 신중히 하라 자바 8 이전 값 반환할 수 없을 때자바 8 전에는 메서드가 특정 조건에서 값을 반환할 수 없을 때 취할 수 있는 선택지가 2가지 있었다.예외를 던진다.null을 반환한다.두 방법 모두 허점이 있다. 예외 던지는 경우 허점예외는 진짜 예외적인 상황에서만 사용해야 한다.예외를 생성할 때 stack trace 전체를 캡처해 비용 크다. null 반환하는 경우 허점별도의 null 처리 코드 추가해야 한다.null 처리 무시하고 반환하면 NullPointException 발생할 수 있다. (null을 반환하게 한 실제 근본적인 원인과 전혀 상관 없는 코드에서 발생 가능) 다른 선택지자바 8로 가면서 메서드가 특정 조건에서 값을 반환할 수 없을 때 취할 수 있는 선택지가 하나 더 생겼다..

TIL 2024.08.04

24.08.02 TIL - application.properties 분리

오늘 배운 것application.properties 분리 appcliation.properties란?Spring Framework 프로젝트에서 사용되는 설정 파일이다.  이 파일을 통해 애플리케이션의 다양한 설정을 정의할 수 있다. 데이터베이스 연결 정보, 서버 포트, 로깅 설정 등 다양한 환경 설정을 application.properties 파일에서 관리한다.  파일의 내용은 일반적으로 키-값 쌍으로 이루어져 있다.   src/main/resources 디렉토리에 위치한 아래와 같은 파일이 application.properties이다.  # 서버 포트 설정server.port=8080# 데이터베이스 URL 설정spring.datasource.url=jdbc:mysql://localhost:3306/m..

TIL 2024.08.03

24.08.01 TIL - 에라토스테네스의 체

오늘 배운 것에라토스테네스의 체 소수 구하기알고리즘 문제 중 특정 범위의 소수를 구하라는 문제들이 많이 있다.  이 문제를 푸는 가장 간단한 방법은 범위의 모든 수가 소수인지 아닌지 판별하면 된다.  특정 수 n이 소수인지 아닌지 판별하는 방법으로는 n이 2부터 n-1까지에서 나눠 떨어지는 것이 있는지 보는 것이다.  for(int j=2;j 이렇게 한다면 시간 복잡도는 O(N)이다.  이 방법보다 조금 더 빠르게 할 수 있는 방법은 n이 2부터 sqrt(N) = 루트 N까지에서 나눠 떨어지는 것이 있는지 보는 것이다.  for(int j=2;j 이렇게 한다면 시간 복잡도는 위의 방법보다 조금 빠르겠지만 여전히 O(N)이다.  하지만 n개의 수에 대해서 O(N)의 시간 복잡도라면 특정 범위에서 소수를 구..

TIL 2024.08.02

24.07.31 TIL - @Scheduled 관련

오늘 배운 것@Scheduled@EnableScheduling @Scheduled란?특정 코드를 주기적으로 또는 특정 시간에 반복 실행하고자 할 때 사용하는 Spring Framework에서 제공하는 annotation. 이 annotation으로 간단하게 반복적, 주기적으로 실행해야 하는 작업을 별도 scheduler 설정 없이도 할 수 있다.  예를 들어 '매일 새벽 1시에 제품 가격을 갱신하는 로직 수행해야지' 또는 '30분마다 알림 보내는 로직 수행해야지' 이렇게 구현하고 싶을 때 쉽게 할 수 있도록 도와주는 것이다.   @Scheduled 주요 속성cron : CronExpression을 사용해 작업이 실행될 주기를 간단하게 지정하는 것이다. @Scheduled(cron = "0 0 * * * ..

TIL 2024.07.31