ICPC 알고리즘 대비: 순열 생성과 정렬 알고리즘의 핵심 개념
기초 알고리즘 복습 및 심화
순열 생성 문제
입력된 숫자 배열에 대해 모든 가능한 순열을 생성하는 문제는 STL 라이브러리를 활용하면 효율적으로 해결할 수 있다.
class PermutationGenerator {
public:
vector<vector<int>> generateAllPermutations(vector<int>& inputArray) {
sort(inputArray.begin(), inputArray.end());
...
9월 22일 09:38에 게시됨
x86 보호 모드에서 Local APIC 타이머를 활용한 고정밀 타이머 구현
x86-64 보호 모드 환경에서 Local APIC(Advanced Programmable Interrupt Controller) 타이머는 PIT나 HPET 없이도 CPU 내부 타이머를 활용해 고정밀 주기적 인터럽트를 생성한다. 운영체제 커널에서 스케줄러 틱, 시간 측정, 프로파일링 등에 활용할 수 있으며, TSC(Time Stamp Counter)와 결합하면 더 정밀한 타이밍을 얻을 수 있다.
전체 구현 코드
아래 코드는 ...
9월 22일 08:46에 게시됨
서버 트래픽 분산을 위한 6가지 로드 밸런싱 알고리즘 심층 분석
분산 시스템 아키텍처에서 서버 부하를 효과적으로 관리하고 가용성을 높이기 위해 다양한 로드 밸런싱(Load Balancing) 알고리즘이 사용됩니다. 본 글에서는 가장 널리 쓰이는 6가지 알고리즘의 작동 원리, 장단점 및 구현 로직을 기술적 관점에서 상세히 살펴보겠습니다.
1. 라운드 로빈 (Round Robin)
라운드 로빈은 가장 직관적이고 단순한 무상태(Stateless) 스케줄 ...
9월 22일 05:52에 게시됨
C++11 주요 기능 및 현대적 문법 활용 가이드
C++ 표준은 지속적으로 진화하여 개발의 효율성과 안전성을 높여왔습니다. 2011 년에 공식화된 C++11 은 기존 C++98/03 에 비해 압도적인 개량을 이룩했습니다. 약 140 여 개의 새로운 기능과 600 가지 이상의 버그 수정이 포함되어 언어로서의 완성도가 크게 향상되었습니다. 이번 글에서는 시스템 및 라이브러리 개발에 필수적인 C++11 의 핵심 문법들을 중심으로 정리하 ...
9월 22일 03:27에 게시됨
IO 멀티플렉싱: 블로킹 소켓에서 epoll까지의 진화
블로킹 I/O의 근본적 한계
서버가 클라이언트 연결을 받고 데이터를 읽는 가장 단순한 코드는 다음과 같다.
int sock = socket(AF_INET, SOCK_STREAM, 0);
bind(sock, ...);
listen(sock, 5);
while (1) {
int client = accept(sock, ...); // 연결 대기 (블로킹)
char buf[1024];
int n = read(client, buf, sizeof(buf)); // 데이터 대기 (블로킹)
p ...
9월 22일 03:03에 게시됨
MUI 프레임워크용 크로스 플랫폼 로딩 오버레이 컴포넌트 구현
MUI 기반 하이브리드 앱이나 웹 환경에서 네이티브 대기 화면(Plus Runtime)과 표준 DOM 오버레이를 자동 분기 처리할 수 있는 로딩 상태 표시 컴포넌트입니다. 기존 프레임워크 내장 메서드의 환경별 제약 사항을 보완하여, 단일 API로 일관된 UX를 제공하는 것을 목표로 합니다.
JavaScript 구현 로직
DOM 요소의 생명주기를 추적하고, 중복 호출 시 상태를 갱신하며, ...
9월 22일 02:31에 게시됨
소규모 팀이 JuiceFS를 효과적으로 활용하는 방법
이전 회사에서부터 JuiceFS를 사용해왔고, 여러 소규모 회사에서 이 도구를 사용하며 필수적인 인프라로 자리 잡았습니다. 특히 소규모 팀에 있어 큰 도움이 되었습니다. 최근 글쓰기 활동을 계기로, 소규모 팀이 JuiceFS를 어떻게 사용하고 있는지 소개합니다.
이 글에서 다루는 사례는 "특이한 활용"이라기보다는, JuiceFS가 이미 널리 사용되고 있는 기능들입 ...
9월 22일 00:02에 게시됨
Pandas와 JSON 데이터 처리
JSON 기본 이해
JSON(JavaScript Object Notation)은 XML과 유사하게 텍스트 정보를 저장하고 교환하는 구문입니다. JSON은 XML보다 더 작고 빠르며, 파싱하기 쉽습니다. Pandas는 이러한 JSON 데이터를 효과적으로 다룰 수 있습니다.
[
{
"번호": "J001",
"이름": "네이버",
"url": "www.naver.com ...
9월 21일 20:44에 게시됨
FRP를 활용한 내부 네트워크 서비스 공개 접속 설정
환경 정보 준비
항목값
내부 Jenkins 주소http://192.168.1.75:8080
공개 서버 IP111.27.135.123
FRP 버전0.62.0 (/root/frp_0.62.0_linux_amd64에 설치)
포트 접속 주소http://111.27.135.123:18080
도메인 접속 주소http://jenkins.example.com:8081
FRP 다운로드 및 설치
공식 다운로드 위치:
https://github.com/fatedier/frp/releases
Linux x86_64 시스템에서 ...
9월 21일 20:43에 게시됨
PyTorch-NPU/xglm_1.7b 모델 활용: 다국어 지원 및 NPU 가속 최적화
PyTorch-NPU/xglm_1.7b 소개
PyTorch-NPU/xglm_1.7b는 17억 개의 파라미터를 가진 다국어 자동회귀 언어 모델로, 5000억 개의 서브토큰으로 구성된 다양한 언어 코퍼스에서 훈련되었습니다. 이 모델은 30개 이상의 언어를 지원하며 Huawei NPU 하드웨어 가속을 기본으로 제공합니다.
주요 기능 및 장점
다국어 처리: 영어, 중국어, 러시아어, 일본어, 한국어 등 30개 이 ...
9월 21일 17:41에 게시됨