프로그래밍 튜토리얼

실무형 프로그래밍 튜토리얼. Python, C++, JavaScript 등에서 명확한 예제와 모범 사례를 제공하며 설계, 테스트, 성능을 다룹니다.

COBOL에서 C++로의 마이그레이션: 레거시 시스템 현대화를 위한 실전 가이드

COBOL에서 C++로의 마이그레이션은 조직이 수행할 수 있는 가장 영향력 있는 현대화 프로젝트 중 하나이자, 동시에 가장 제대로 다뤄지지 않는 프로젝트이기도 합니다. 현재 프로덕션 환경에서 실행 중인 COBOL 코드는 약 2,200억 줄에 달합니다. 은행들은 이를 통해 수조 달러의 거래를 처리하고 있습니다. 정부는 연금 시스템, 세금 징수, 의료 시스템을 COBOL로 운영합니다. 항공사는 COBOL로 항공권을 예약합니다. 그리고 매년, 이 코드를 유지보수할 수 있는 인력은 퇴직에 가까워지고 있으며, 후임자는 거의 없는 실정입니다. 수십 년간 조직들은 현대화가 필요하...

C++ vs Rust 메모리 안전성 - 모던 C++를 활용한 실용적 예제

C++와 Rust 간의 메모리 안전성 논의는 소프트웨어 엔지니어링에서 가장 활발한 주제 중 하나가 되었습니다. 정부 기관이 의견을 제시하고, 컨퍼런스 발표가 이 주제에 할애되며, 양쪽 모두 강한 견해를 가지고 있습니다. 먼저 솔직하게 말씀드리겠습니다: Rust는 훌륭한 언어입니다. 소유권 모델과 빌림 검사기는 진정으로 혁신적이며, 컴파일 시점에 버그의 전체 범주를 잡아냅니다. 새 프로젝트를 시작하는데 Rust가 팀과 생태계에 적합하다면, 그것은 훌륭한 선택입니다. 동시에 C++는 세계에서 가장 성능이 중요한 소프트웨어의 근간으로 남아 있습니다: 운영체제 커널, 게임 ...

Tiny BPE Trainer – 빠르고 가벼운 C++ 기반 BPE 트레이너

Tiny BPE Trainer 소개GPT부터 RoBERTa까지 오늘날 대부분의 최신 NLP 모델은 **바이트 쌍 인코딩(BPE)**을 사용한 하위 단어 토큰화에 의존합니다. 하지만 순수 C++로 자신만의 어휘를 학습시키고 싶다면 어떻게 해야 할까요? Tiny BPE Trainer를 만나보세요. 최신 C++17/20으로 작성된 놀랍도록 빠른 헤더 전용 BPE 트레이너로, 종속성 없음, 완벽한 UTF-8 지원, 그리고 HuggingFace 호환 출력(vocab.txt, merges.txt)을 제공합니다. 왜 또 다른 BPE 트레이너가 필요할까요?기존 옵션은 다음과 같은 ...

NLP 및 ML을 위한 빠르고 UTF-8을 지원하는 C++ 토크나이저

모던 텍스트 토크나이저 소개BERT, DistilBERT 및 기타 트랜스포머 기반 아키텍처와 같은 최신 자연어 처리(NLP) 모델은 효과적인 토큰화에 크게 의존합니다. 하지만 C++ 개발자는 과도한 종속성, 부족한 유니코드 지원, 어휘 기반 인코더와의 호환성 부족 등 제한적인 옵션에 직면하는 경우가 많습니다. 이러한 이유로 저는 모던 텍스트 토크나이저를 만들었습니다. UTF-8을 지원하고, 종속성 없이, ML에 바로 사용 가능한 초고속, 헤더 전용 C++ 토크나이저입니다. 특별한 점은 무엇일까요? 종속성 없음 – Boost, ICU, 외부 라이브러리 없음 UTF-8 ...

프로그래밍 기초 배우기: 적합한 언어 선택하기

프로그래밍 세계로의 여정을 시작하는 것은 흥미롭기도 하고 압도적이기도 합니다. 수많은 프로그래밍 언어 중에서 자신의 목표와 포부에 맞는 올바른 언어를 선택하는 것이 중요합니다. 이 글에서는 첫 번째 프로그래밍 언어를 선택할 때 고려해야 할 요소를 살펴보고, 인기 있는 언어의 코드 예제를 제공하여 언어 간의 차이점을 설명하겠습니다. 프로그래밍 언어를 선택할 때 고려할 요소 경력 목표: 소프트웨어 개발 경력을 계획하고 있다면, 관심 있는 산업에서 어떤 프로그래밍 언어가 수요가 있는지 조사하는 것이 중요합니다. 학습 곡선: 일부 언어는 다른 언어보다 학습 곡선이 더 가파릅...

C++ 데이터 타입에서 .NET으로

저처럼 C/C++ 배경에서 .NET을 사용하기 시작하면 데이터 타입이 다르다는 것을 금방 알게 될 것입니다. 이 글에서는 개발 편의를 위해 C/C++에서 .NET(C#)으로의 가장 일반적인 데이터 타입을 다룹니다. 데이터 타입을 검색할 때 CTRL + F를 누르면 브라우저가 이 페이지에서 찾는 것을 도와줍니다. kbrryder @ codeproject에 특별히 감사드립니다. C/C++ 데이터 타입에서 .NET/C# 목록:ATOM .NET = ushort C++ = typedef WORD ATOM; BOOL .NET = bool or int C++ = typedef...

소프트웨어 충돌 시 Mini Dump를 작성하는 방법

이번 달에 아직 흥미로운 글을 쓰지 못해서 죄송합니다. 매우 바쁜 달이었습니다. 오늘 Stack Overflow 에서 디버깅에 관한 질문을 보았습니다. 사용자가 Visual Studio를 디버그 모드로 실행하여 애플리케이션이 언제 왜 충돌하는지 확인하려고 했습니다. 이것은 해결책이 아닙니다. Windows API에는 이러한 상황을 위한 기능이 있기 때문입니다. 간단히 말해, 소프트웨어가 충돌할 때 Mini Dump를 작성하도록 설정한 다음, Visual Studio(또는 원하는 디버거)에서 열어 정확히 어디에서 충돌이 발생했는지 확인할 수 있습니다....

RTL 함수를 사용한 DOS 및 NT 경로 변환

이 글을 읽고 있다면, 소프트웨어를 위해 DOS 및/또는 NT 경로를 변환하는 방법을 찾고 있다는 뜻입니다. 오늘 여기서 정확히 그것을 배울 수 있으니 안심하세요! Windows 경로 의 문제점은 분명합니다. 매우 혼란스럽습니다. 다시 말하겠습니다, 매우 혼란스럽습니다. 훌륭한 소프트웨어를 개발하면서 DOS와 NT 경로를 변환해야 할 때 이것이 문제가 됩니다. 이 글에서는 간결하게 설명하겠습니다. 시작해봅시다. ntdll 내에 다양한 변환에 사용할 수 있는 비공개 함수들이 있습니다. 이 함수 목록은 Rtl*로 시작하며 다음과 같습니다:...

런타임 암호화 문자열: 파트 1

런타임 암호화 문자열오늘은 런타임 암호화 문자열의 기초, 왜 문자열을 암호화해야 하는지, 그리고 직접 암호화를 만드는 방법에 대해 알아보겠습니다. 이 글에서 이해하고 배울 내용: 런타임 암호화 및 복호화란 무엇인가 왜 문자열을 암호화해야 하는가 누구나 민감한 데이터를 볼 수 있다는 것을 확인하기 자신만의 커스텀 암호화 만들기 런타임 암호화 및 복호화란프로그램(소프트웨어, 애플리케이션) 실행 중에 암호화 및/또는 복호화되는 데이터를 말합니다. 데이터는 메모리 블록, 네트워크 트래픽, 문자열 등 모든 종류가 될 수 있습니다. 이 목적으로 사용되는 가장 일반적인 방법 중 ...