rmlint 핵심 아키텍처 분석 및 확장 개발을 위한 심층 가이드
rmlint는 파일 시스템 내의 중복 데이터와 불필요한 파일을 신속하게 찾아내는 고성능 툴입니다. 이 가이드는 rmlint 프로젝트에 기여하거나 기능을 확장하려는 개발자를 위해 핵심 아키텍처와 개발 방법론을 상세히 다룹니다.
1. 개발 환경 설정 및 빌드 시스템
rmlint 프로젝트는 SCons를 빌드 시스템으로 사용하며, 주요 개발 작업은 develop 브랜치에서 이루 ...
8월 8일 15:11에 게시됨
EasyExcel 범용 내보내기 도구(주석 없음, 다중 스레드 지원)
기본 클래스 설명
=======
ExcelExportHandler(내보내기 유틸리티 클래스)
DataQuery(일반 데이터 조회)
DataProcessor(함수 매개변수)
SpringContextUtil(빈 객체 가져오기)
코드
====
ExcelExportHandler
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.PageUtil;
import cn.hutool ...
8월 5일 13:53에 게시됨
Delphi 프로그래밍의 핵심 기술과 실용적 활용
이 문서는 델파이 언어를 활용한 고급 개발 기법을 중심으로 구성된 실용적인 가이드입니다. 특히 수목청화 BBS 커뮤니티에서 공유된 최신 팁과 코드 예제를 바탕으로, 실제 개발 현장에서 유용하게 적용할 수 있는 내용들을 집약했습니다. 델파이의 강력한 시각적 컴포넌트 라이브러리(VCL), 통합 개발 환경(IDE), 그리고 객체 지향 설계 원칙은 윈도우 애플리케이션 개발 ...
7월 7일 21:44에 게시됨
Java 동시성 제어: CountDownLatch와 CyclicBarrier 심층 분석
Java 동시성 프로그래밍에서 스레드 간 실행 순서나 특정 지점에서의 동기화를 제어하는 것은 매우 중요합니다. CountDownLatch와 CyclicBarrier는 이러한 목적으로 사용되는 두 가지 대표적인 동기화 도구입니다. 이 글에서는 두 도구의 개념, 차이점, 실제 사용 예제, 그리고 내부 동작 원리를 소스 코드 수준에서 살펴보겠습니다.
1. CountDownLatch (Latch)
CountDown ...
6월 17일 05:56에 게시됨
Java 멀티스레드 환경에서 타이머 구현하기
1. 타이머의 개념과 필요성타이머는 특정 시점이 되면 지정된 동작을 수행하도록 예약하는 메커니즘입니다. Java의 java.util.Timer 클래스가 대표적인 구현체이며, schedule() 메서드를 통해 작업을 예약합니다.실무에서는 제한 없는 대기를 피하기 위해 필수적으로 사용됩니다. 예를 들어, 웹 브라우저의 요청 타임아웃(504 Gateway Timeout), 데이터베이스 백업, 캐시 ...
6월 8일 16:28에 게시됨
Java 멀티스레드 심층 분석: 생성부터 고급 동기화까지
1. 프로그램, 프로세스, 스레드
프로그램(Program)은 명령어와 데이터의 정적인 집합체로, 실행 중이 아닌 상태를 의미합니다.
프로세스(Process)는 프로그램이 실행 중인 동적인 상태로, 시스템 자원 할당의 기본 단위입니다.
스레드(Thread)는 프로세스 내에서 실행되는 더 작은 단위이며, 모든 프로세스는 최소 하나의 스레드를 가집니다. CPU 스케줄링의 실제 대상입 ...
6월 7일 18:19에 게시됨
자바 멀티스레드 환경의 데이터 동기화 문제와 해결 방법
멀티스레드 프로그래밍에서 여러 스레드가 동일한 자원에 동시에 접근할 때, 적절한 제어가 이루어지지 않으면 데이터의 일관성이 깨지는 '스레드 안전(Thread Safety)' 문제가 발생합니다. 예를 들어, 여러 스레드가 하나의 공유 변수 값을 증가시키는 단순한 작업조차도 예상치 못한 결과를 초래할 수 있습니다.
데이터 불일치 현상의 발생
공유 자원에 여러 스레드가 ...
6월 5일 18:52에 게시됨
다중 스레딩을 활용한 파일 입출력 및 삼각형 면적 계산
1. 다중 프로세스를 통한 순차적 파일 접근 제어
부모 프로세스는 파일에 데이터를 쓰고, 두 개의 자식 프로세스는 해당 파일에서 데이터를 읽어옵니다. 이때 1번 자식 프로세스가 먼저 실행되어 데이터를 읽도록 보장해야 하며, 파일 기반 입출력을 사용합니다.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types. ...
5월 23일 22:44에 게시됨
자바에서의 스레드 및 멀티스레딩 기초
병렬 처리를 활용하면 복잡한 작업을 여러 부분으로 나누어 다양한 CPU 코어에 분산 실행함으로써 처리 효율을 크게 향상시킬 수 있습니다. 그렇지 않으면 한 코어가 과부하 상태일 때 다른 코어들은 비활성 상태로 방치되는 '일코어 곤란, 여덟코어 관람' 현상이 발생합니다. 프로세스는 서로 다른 CPU에 배치될 수 있어 병렬 처리를 가능하게 하며, 이로 인해 코어 활용 ...
5월 22일 18:53에 게시됨