Dev 24

[Python] * 연산의 오해와 진실, 얕은/깊은 복사

Python에서는 * 연산자를 사용하여 리스트나 문자열을 쉽게 복사하거나 확장할 수 있습니다.  이 연산은 매우 간편하지만, 작동 원리를 제대로 이해하지 못하면 의도치 않은 결과를 초래할 수 있습니다.특히, 리스트와 같은 가변 객체(mutable object) 를 다룰 때는 주의가 필요합니다.  이번 글에서는 Python의 * 연산이 어떻게 작동하는지, 그리고 이를 사용할 때 발생할 수 있는 문제와 해결 방법을 알아보겠습니다. 1. * 연산의 기본 원리Python의 * 연산자는 반복(repetition) 을 통해 객체를 복사하거나 확장하는 역할을 합니다.대표적으로 문자열, 숫자, 리스트에서 활용됩니다. (1) 문자열과 숫자의 경우문자열과 숫자는 불변 객체(immutable object) 이므로, * 연산..

Dev 2025.01.05

[Python] pip를 사용한 외장 라이브러리 삭제

Python 개발을 하다보면 다양한 외장 라이브러리를 설치하게 됩니다.VSCode, PyCharm, 또는 콘솔에서 pip를 통해 외장 라이브러리를 설치했을 것입니다. 오늘은 Python의 표준 패키지 관리 도구인 pip를 사용해 인터페이스에 관계없이 외장 라이브러리를 손쉽게 제거할 수 있는 방법에 대해 알아보겠습니다.명시적 삭제삭제하려는 패키지를 직접 명시해 삭제하는 명령어입니다.pip uninstall 아래 명령어는 numpy를 삭제하는 명령어입니다.pip uninstall numpy다음과 같이 여러 라이브러리를 동시에 삭제할 수 있습니다.pip uninstall numpy pandas  설치된 패키지 확인삭제 전 설치된 패키지의 목록을 확인할 수 있습니다.pip list  설치된 패키지 목록화만약 설..

Dev 2024.12.27

[EC2] AWS EC2 탄력적(Elastic) IP 등록

탄력적 IP란?탄력적 IP(Elastic IP)는 AWS에서 제공하는 고정된 퍼블릭 IP 주소입니다. 이는 EC2 인스턴스가 고정된 IP 주소를 유지하도록 돕는 서비스입니다. 일반적으로 EC2 인스턴스를 중지하거나 재시작하면 퍼블릭 IP가 변경될 수 있지만, 탄력적 IP를 사용하면 항상 동일한 IP 주소를 사용할 수 있습니다.AWS 프리 티어를 사용하는 경우, 탄력적 IP를 인스턴스에 연결하여 고정된 퍼블릭 IP를 무료로 사용할 수 있습니다.만약, 인스턴스에 연결되지 않거나 사용하지 않을 경우 비용이 발생할 수 있으므로 유의해야 합니다. 탄력적 IP 할당 및 인스턴스 연결 방법좌측의 메뉴에서 "탄력적 IP"를 클릭해 이동합니다.화면 우측 "탄력적 IP 주소 할당"을 클릭해 새 IP를 할당받을 수 있습니다..

Dev/AWS 2024.12.03

[Route 53] AWS 호스팅 영역 삭제 및 기타 레코드 삭제

AWS Route 53은 도메인의 DNS(Domain Name System) 정보를 관리하는 서비스입니다.도메인과 연결된 웹사이트, 이메일, 기타 서비스를 정상적으로 운영하려면 DNS 설정이 올바르게 유지되어야 합니다.호스팅 영역을 삭제하면 도메인과 관련된 모든 DNS 설정이 사라져 서비스가 중단될 수 있습니다.AWS는 이러한 실수를 방지하기 위해 호스팅 영역 삭제 전, NS(Name Server) 및 SOA(Start of Authority) 레코드를 제외한 나머지 레코드를 수동으로 삭제하도록 요구합니다. 왜 나머지 레코드를 수동으로 삭제해야 하나요?호스팅 영역을 삭제하면 해당 영역의 모든 레코드가 제거됩니다.AWS는 사용자가 도메인과 연결된 DNS 설정을 확인하고, 서비스 중단이나 데이터 손실을 방지..

Dev/AWS 2024.11.29

[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)...

Dev 2024.11.21

[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..

Dev 2024.11.20

[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() { // 작업 내용} 이 코드는 애플리케이션이 실행 중인 서버의 호스트 시간대를 기준으로 스케줄링됩니다. 즉, 로컬 환경에서 애플리케이션을 실행하면 로컬 시간대에 맞춰 작동하고,..

Dev/Backend 2024.11.10