"꾸준하고 완벽한 한 걸음"

2024/11 22

[Java] Java의 Collection Framework에 대해

Collection FrameworkJava Collection Framework는 데이터를 효율적으로 관리하고 조작하기 위한 표준화된 자료구조와 알고리즘의 집합입니다. 이를 통해 개발자는 복잡한 자료구조를 직접 구현할 필요 없이 최적화된 구현체를 사용하여 애플리케이션의 생산성과 유지 보수성을 높일 수 있습니다. Collections Framework OverviewCollections Framework Overview Introduction The Java platform includes a collections framework. A collection is an object that represents a group of objects (such as the classic Vector class)...

[Java] Double.MIN_VALUE는 음수가 아니다.

Java의 Double.MIN_VALUE는 종종 오해를 불러일으키는 상수입니다. 이름만 보면 "가장 작은 값"이라는 의미로 해석되어, 음수를 떠올리기 쉽습니다. 하지만 Double.MIN_VALUE는 음수가 아니며, 오히려 0에 가까운 양수입니다. 이를 이해하기 위해 해당 상수의 의미와 사용하는 맥락을 살펴보겠습니다. 1. Double.MIN_VALUE 란?Double.MIN_VALUE는 Java에서 double 타입이 표현할 수 있는 가장 작은 양의 값을 의미합니다. 이는 IEEE 754 표준에 따라 정의된 부동소수점 방식에서 정규화된 가장 작은 값입니다.public class DoubleExample { public static void main(String[] args) { Sys..

[EC2] AWS EC2 프리티어 인스턴스 생성하기

EC2 인스턴스란?EC2(Elastic Compute Cloud)는 AWS에서 제공하는 가상 서버 서비스로, 다양한 운영체제와 애플리케이션을 설치하고 실행할 수 있습니다. AWS 프리티어를 통해 12개월 동안 무료로 특정 리소스를 사용해볼 수 있습니다. 무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어이러한 프리 티어 혜택은 AWS 신규 고객에게만 제공되며 AWS 가입일로부터 12개월 동안 유효합니다. 12개월의 무료 사용 기간이 만료되거나 애플리케이션 사용량이 프리 티어 범위를 초과할 경우aws.amazon.com위 AWS 프리티어 개요 페이지에 다음과 같은 안내가 있습니다.그렇습니다. 공짜 서버를 매월 750시간 사용할 수 있습니다.음? 한달 동안 계속 서버를 실행해도 31D * 24H = 744시간..

Dev/AWS 2024.11.18

[PowerShell] Windows에서 빈 폴더를 자동으로 삭제하는 PowerShell 스크립트

파일 관리 작업을 하다 보면 불필요한 빈 폴더가 많이 생기곤 합니다. 특히 프로젝트를 관리하거나 여러 디렉터리를 정리할 때 빈 폴더가 쌓이면 관리가 번거로워질 수 있습니다. 이번 글에서는 PowerShell 스크립트를 사용하여 Windows에서 빈 폴더를 자동으로 탐색하고 삭제하는 방법을 소개하겠습니다. 아래는 Windows에서 빈 폴더를 삭제하기 위한 PowerShell 스크립트입니다. 이 스크립트는 현재 디렉터리에서 시작해 모든 하위 폴더를 탐색하고, 빈 폴더를 찾아 삭제하는 작업을 수행합니다.# 현재 디렉터리에서 시작하여 모든 하위 디렉터리를 검색하고, 디렉터리 정보만 가져옴$folders = Get-ChildItem -Path . -Recurse -Directory# 삭제된 폴더 수를 기록하는 변..

Dev 2024.11.15

[Docker] Docker 컨테이너 기본 시간대 설정

기본적으로 Docker 컨테이너는 호스트 시스템의 시간대와 무관하게 UTC 표준 시간대로 설정되어 있습니다. 이 점은 특히 한국과 같이 UTC+9 시간대를 사용하는 환경에서 중요한 고려 사항이 될 수 있습니다.호스트(EC2)의 시간대를 설정하는 방법은 지난 글에서 다룬적 있습니다. [EC2] AWS EC2 인스턴스에서 시간대(Timezone) 설정 변경하기AWS EC2 인스턴스를 활용할 때 기본적으로 시간대(Timezone)가 UTC(세계 협정시)로 설정되어 있습니다.UTC는 글로벌 시간 표준으로 편리하지만, 한국 시간과 같은 로컬 시간대가 필요한 경우에는 시간kyr-db.tistory.com하지만, Docker 컨테이너는 여전히 UTC 표준시간대를 사용합니다. 이를 해결할 수 있는 방법을 스프링 서버의..

Dev/Docker 2024.11.11

[Spring] 스프링부트 @Schedule 시간대 문제 해결

서버 환경에 따라 스프링 스케줄러가 설정된 시간에 동작하지 않는 경우가 발생할 수 있습니다. 특히, 애플리케이션의 시간대 설정과 배포 서버의 시간대가 일치하지 않을 때, 스케줄러가 의도한 시간에 실행되지 않을 수 있습니다. 이 글에서는 스프링 스케줄러가 배포 서버에서 한국 시간에 맞춰 정확하게 동작하도록 설정하는 방법을 다룹니다.문제 상황스프링 애플리케이션에서 아래와 같이 매주 수요일 오후 4시에 작업을 스케줄링했다고 가정해봅시다.@Scheduled(cron = "0 0 16 ? * WED")public void run() { // 작업 내용} 이 코드는 애플리케이션이 실행 중인 서버의 호스트 시간대를 기준으로 스케줄링됩니다. 즉, 로컬 환경에서 애플리케이션을 실행하면 로컬 시간대에 맞춰 작동하고,..

Backend 2024.11.10

[Java] 문자열 + 연산과 StringBuilder 비교

Java에서 문자열 결합 시 많이 사용하는 + 연산은 직관적이고 간단하지만, 성능 측면에서 적절하지 않은 경우가 있습니다. 이번 글에서는 문자열 결합의 효율적인 방법과 이유에 대해 설명하겠습니다.Java에서의 + 연산Java의 String은 immutable(불변)한 객체입니다. 따라서 String 간의 + 연산은 기존 객체를 수정하지 않고, 새로운 String 객체를 생성하게 됩니다. 이는 다음과 같은 코드에서 성능 문제가 발생할 수 있습니다.// 비효율적인 코드 예시String res = "";for (int i = 0; i  위 코드는 for 문이 실행될 때마다 새로운 String 객체를 생성하여 성능 저하를 유발합니다.  + 연산이 효율적인 경우단일 라인의 +연산에서는 Java 컴파일러가 내부적으..

[Dev C++] Dev C++에서 for 내부 변수 선언 오류 해결 방법

C언어 표준에 따라 for 내부 변수를 선언할 때, C99 보다 오래된 표준을 사용하는 경우 오류가 발생할 수 있습니다.이 문제를 해결하기 위한 표준 준수 작성 방법과, 컴파일러 옵션을 수정하는 방법을 설명하겠습니다. 1. 기본 C 표준 준수for 내부 변수 선언은 C99부터 지원되는 기능입니다.이를 해결하기 위해서는 우선 변수의 선언과 for 초기식을 분리하는 방법이 있습니다.다음과 같이 변수 선언을 분리하면 문제를 해결할 수 있습니다.초기식을 전체를 이동하는 방법도 가능합니다.이 방법은 C99 이후의 표준을 사용하지 않고도 C 표준을 준수하는 방법입니다.  2. 컴파일러 설정 변경하위 버전의 Dev C++에서는 컴파일러의 기본 설정에 따라 C89가 적용되는 경우가 많습니다.C99 또는 C11을 사용해..

Dev 2024.11.09

[Dev C++] Dev C++에서 c언어만 사용하는 방법

Dev C++은 기본적으로 C/C++ 통합 환경을 제공하기 때문에 C언어만 사용하는 설정이 필요합니다. 이 글에서는 Dev C++에서 C언어만 사용하는 방법을 설명하겠습니다. 우선 C언어로 코드를 작성해 줍니다. 1. 파일 저장 시 확장자 지정C/C++ 통합 환경을 제공하므로 컴파일하려는 파일의 확장자를 지정하면 C언어로만 컴파일을 할 수 있습니다.코드를 작성 후 다음과 같이 '파일 형식'을 '.C'로 선택 후 저장하면 됩니다. 잘 실행이 됩니다. 정말 C언어만 사용 가능한지 확인해 보겠습니다. stdio.h대신 C++의 iostream을 불러오려고 하니 C언어 컴파일러가 C++ 전용 코드를 인식할 수 없어 다음과 같은 오류가 발생합니다.  2. 컴파일러 설정 변경다음으로 소개할 방법은 Dev C++의 ..

Dev 2024.11.07