728x90
Best Story
- [PostgreSQL] 데이터베이스 서버 보안 취약점 방지 실제 운영중인 서비스에서 데이터베이스의 보안은 매우 중요한 문제이므로 보안 관련 설정을 적용하여 취약점을 미리 방지하는 것이 좋다. PostgreSQL은 데이터베이스 보안을 강화하기 위해 다양한 설정과 기능을 제공한다. 특히 서버 설정 파일을 통해 암호화를 적용하고 안전한 인증 방식을 사용할 수 있다. 이 글에서는 PostgreSQL의 pg_hba.conf 파일을 중심으로 hostssl 및 scram-sha-256 설정 방법과 관련 정보를 다룬다. pg_hba.conf 파일 개요경로: /var/lib/postgresql//main/pg_hba.conf역할: PostgreSQL의 호스트 기반 인증(HBA, Host-Based Authentication) 방식을 정의하며, 클라이언트 접속을 제어한다. 1... 2024.10.22
- [서버] PowerShell 7으로 업그레이드하기: 설치 방법과 주요 장점 PowerShell 7의 설치 방법과 주요 장점, 그리고 SSH 접속 후에도 편리한 자동완성을 사용하는 방법 리눅스 서버를 운영하다 보면 Windows 환경에서 SSH 접속이나 스크립트 작업을 할 일이 많다. 그동안 Windows에 기본 설치된 PowerShell 5.1을 사용해왔는데, 최근 PowerShell 7로 업그레이드하면서 자동 완성, 명령어 예측 등 다양한 개선 사항을 체감할 수 있었다. ✅ PowerShell 5.1 vs PowerShell 7Windows에 기본 탑재된 PowerShell은 5.1 버전이며 PowerShell 7은 .NET Core/.NET 기반으로 재작성된 크로스 플랫폼 버전이다.PowerShell 5.1: Windows 전용, .NET Framework 기반PowerS.. 2025.12.14
- [PostgreSQL] File로 간단하게 DB Table 백업하기 개발하다 데이터를 잠깐 백업해야 하는데 pg_dump..등 사용하기 귀찮을 때 간단하게 백업하는 방법 1. 테이블 데이터 백업하기 (Backup)PostgreSQL에서 COPY + TO 명령어를 사용하여 테이블 데이터를 파일로 백업할 수 있다.#COPY {schema.table} TO '{backup_path}' DELIMITER ',' CSV HEADERCOPY test.user TO '/path/to/backup/user.csv' DELIMITER ',' CSV HEADER; 2. 백업 데이터 복구 (Restore)백업된 CSV 파일을 다시 테이블로 복구하려면 COPY + FROM 명령어를 사용하여 데이터를 복구할 수 있다.# COPY {schema.table} FROM '{file_path}' .. 2024.10.22
- [CS] Garbage Collection. 가비지 컬렉션 💡가비지 컬렉션(Garbage Collection) 이란?프로그램 실행 중 동적으로 할당된 메모리 중 더 이상 참조되지 않는 객체를 자동으로 탐지하여 해제하는 메모리 관리 기법으로, 메모리 누수를 방지하고 안정적인 자원 관리를 지원한다. Java, C#, Python 등에서 사용되며, 개발자가 명시적으로 메모리를 해제하지 않아도 되도록 해준다. 왜 필요할까?프로그램에서 객체 생성 등의 작업으로 메모리를 할당해주다 보면, 메모리를 해제하는 코드를 직접적으로 작성하지 않는 이상 메모리 사용량은 계속 증가하게 되고 결국 메모리 누수(Memory leak)가 발생할 수 있다. 이러한 문제를 해결하기 위해서 가비지 컬렉션은 필수적이다.가비지 컬렉션은 프로그램에서 사용 중인 메모리 영역에서 더 이상 사용하지 않는.. 2023.09.23
- [SpringMVC] 많이 사용되는 주요 @Annotation 정리 Annotation 이란? 클래스나 메서드에 특별한 의미와 기능을 부여하여 코드량을 줄이고, 유지보수성과 생산성을 높이는 기술이다 💡 Spring의 주요 Annotation리스트@Bean@Bean은 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려할 때 사용 되는 Annotation이다.@Configurationpublic class ApplicationConfig { @Bean(name="myarray") public ArrayList array() { return new ArrayList(); }}@Bean어노테이션에 name이라는 값을 이용하면 자신이 원하는 id로 Bean을 등록할 수 있다.어노테이션 안에 값을 입력하지 않을 경우 메소드의 이름을 CamelCase로 변경한 .. 2023.08.19
- [Java] 에러 노트 Java 개발 중 발생한 에러를 정리하는 곳입니다. 메서드 호출 실패 에러에러 코드- ERROR o.s.s.s.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.java.lang.NoSuchMethodError: kr.co.test.CommonEnv.setConfig(Ljava/lang/String;)발생 원인- 로컬 IDE는 pom.xml 설정을 엄격히 따르지만, 서버 환경에서는 클래스 로더가 pom.xml의 의도와 상관없이 파일 시스템 순서대로 라이브러리를 읽다가 먼저 발견된 구버전을 로드함.해결 방법- 빌드 결과물(WAR/JAR) 내부에 중복 포함된 구버전 라이브러리를 찾아 제거하거나, pom.xml에서 의존성 .. 2026.01.03
- [SpringBoot] Functional Interface를 활용한 Lazy 초기화 전략 Batch 애플리케이션에서 OpenSearch 클라이언트들의 불필요한 초기화를 방지하기 위해 Supplier를 활용한 Lazy 초기화 전략 적용 사례.📚 목차1. 배경 지식 1.1 Lazy 초기화란? 1.2 Functional Interface와 Supplier2. 문제 상황 2.1 기존 환경 2.2 문제점 인식 2.3 @Lazy 적용 시도3. 해결 방법: Supplier를 활용한 Lazy 초기화 3.1 핵심 아이디어 3.2 개선된 코드 3.3 동작 흐름 비교4. 실제 사용 예시5. 추가 개선: 캐싱을 통한 중복 초기화 방지6. 정리 1. 배경 지식Lazy 초기화란?Lazy 초기화(지연 초기화)는 객체의 생성을 실제로 필요한 시점까지 미루는 기법이다. Spring에서는 기본.. 2025.10.19
- [컨퍼런스] AWS AI x Industry week 2025 AWS AI x Industry week 컨퍼런스 : AI 시대의 클라우드 기술과 다양한 산업 분야의 혁신 사례 기조연설: AI 시대의 클라우드 전략발표자: Ben Cabanas (AWS Asia Pacific 지역 Tech 전략 총괄)AI 시대의 핵심 인프라AI 시대에서 클라우드와 분산 컴퓨팅은 선택이 아닌 필수다. 학습과 연산을 위한 인프라로서 클라우드의 중요성이 더욱 강조되고 있었다.AI로 AI를 학습시키다흥미로운 사례로 물류 센터의 로봇 학습 방식이 소개되었다. AI 모델로 가상 환경을 구축하고, 그 안에서 다른 AI 모델을 학습시켜 효율성을 극대화하는 방식이었다.소형 커스텀 AI의 시대이제는 범용 대형 모델보다 고객별 맞춤형 소형 AI가 더욱 중요해지고 있다. 각 비즈니스의 특성과 요구사항에 .. 2025.10.19
- [Java] BlockingQueue를 활용한 순차 처리 동시성 제어 성능 최적화를 고민할 때 무조건 병렬 처리가 정답은 아니다. 상황에 따라서는 순차 처리를 통한 동시성 제어가 더 적합할 수 있다. Queue의 기본 개념Queue는 FIFO(First-In-First-Out) 구조로, 먼저 들어온 데이터가 먼저 나간다.[작업1] → [작업2] → [작업3] → 처리 ↑ ↓ 추가(add) 완료(poll) 💡 왜 BlockingQueue가 필요한가?실무에서 배치성 대용량 데이터 생성 API를 개발하는 중 데이터 정합성과 서버 환경을 고려하여 아래의 내용들에 대한 고려가 필요했다.API 요청이 들어오면 즉시 응답을 반환해야 함 (사용자 경험 향상)실제 처리는 비동기로 순차적으로 진행 (서버.. 2025.09.09
- [SpringFramework] IoC 원칙에 위배되는 static 키워드? 📌 Spring에서 static 키워드를 지양해야 하는 이유Java를 사용할 때 static 키워드는 클래스 레벨에서 공유되는 변수 또는 메서드를 정의할 때 자주 사용된다. 대표적으로 static 메서드는 객체 생성 없이 호출할 수 있고, static 변수는 클래스 로딩 시 메모리에 올라가 하나의 값만을 공유하게 된다. 하지만 Spring Framework에서는 이러한 static 사용이 프레임워크의 철학 및 동작 방식과 충돌하며, 불필요하거나 문제가 될 수 있다. 1. Spring은 IoC 기반 프레임워크 • 객체 생성, 생명주기 관리, 의존성 연결 등을 개발자가 아닌 Spring 컨테이너가 제어한다. • 즉, 객체 인스턴스는 컨테이너가 주입하고 관리해야 하며, 필요한 구성은 모두 빈 단위로 주입 가.. 2025.07.28
728x90