전체 글 59

TypeScript 정적 분석 도구: typecheck와 ESLint의 차이

TypeScript 프로젝트에서 코드의 문제를 미리 발견하기 위해 typecheck와 ESLint를 함께 사용하는 경우가 많다.둘 다 코드를 실행하기 전에 문제를 검사한다는 공통점이 있지만, 검사하는 대상과 목적에는 차이가 있다.간단히 구분하면 다음과 같다.비교 항목 typecheck ESLint실행 도구 TypeScript Compiler (tsc) ESLint주요 목적타입 검사코드 패턴 및 규칙 검사검사 기준TypeScript 타입 시스템설정된 ESLint 규칙자동 수정X일부 규칙에서 가능주요 설정tsconfig.jsoneslint.config.js typechecktypecheck는 TypeScript의 타입 시스템을 이용해 코드의 타입 오류를 검사하는 작업이다.별도의 typecheck라는 도구가..

개인프로젝트 2026.09.27

협업을 위한 JavaScript/TypeScript 주석 컨벤션: JSDoc과 TSDoc

언어별 문서 주석과 문서화 도구프로젝트의 규모가 커지고 여러 개발자가 함께 코드를 작성하다 보면 코드 자체뿐만 아니라 주석을 어떤 형식으로 작성할 것인지도 중요해진다.특히 일정한 형식의 문서 주석을 사용하면 IDE에서 클래스나 함수의 설명을 확인할 수 있을 뿐만 아니라, 이를 기반으로 API 문서를 자동으로 생성할 수도 있다.언어와 개발 환경에 따라 주로 사용하는 문서 주석과 문서화 도구가 조금씩 다르다. 예를 들어 C++에서는 Doxygen 스타일의 주석을 작성하고 Doxygen으로 문서를 생성하는 방식이 많이 사용된다. C++/CLI에서는 .NET 생태계와 함께 사용할 수 있는 MSVC XML Documentation Comments를 작성하고 DocFX 등의 도구를 통해 문서화할 수 있다.그렇다면 ..

개인프로젝트 2026.09.25

Qt란?

Qt는 C++ 기반의 크로스플랫폼 애플리케이션 프레임워크로, 하나의 코드로 Windows, macOS, Linux, 모바일까지 다양한 환경에서 동작하는 프로그램을 만들 수 있게 해준다.단순한 UI 라이브러리가 아니라, 애플리케이션의 구조 자체를 제공하는 프레임워크다. Qt의 동작 방식프로그램의 기본 흐름을 Qt가 관리한다개발자는 그 구조 안에서 기능만 구현한다QApplication app(argc, argv);QWidget window;window.show();return app.exec(); // 이벤트 루프 시작 app.exec()가 실행되면 이벤트 루프가 시작되고, 이후에는 Qt가 사용자 입력을 처리하며 프로그램 흐름을 제어한다. Qt의 장점 크로스플랫폼을 지원하여 한 번 작성한 코드로 여러 운..

C++ 2026.05.06

정적/동적 라이브러리 비교

C++ 프로젝트를 규모 있게 만들기 시작하면 정적 라이브러리(static library)와 동적 라이브러리(dynamic library) 개념을 접하게 된다.단순히 파일 포맷 차이처럼 보이지만, 빌드 방식 & 링크 과정 & 실행 구조 & 배포 전략까지 영향을 준다..이 글에서는 두 개념의 차이, 장단점, 그리고 성능 관점의 차이를 정리한다. 정적 라이브러리정적 라이브러리는 컴파일 시점에 실행 파일에 포함되는 라이브러리다.보통 Windows에서는 .lib, Linux에서는 .a 형태로 존재한다. 동작 방식예를 들어 다음과 같은 수학 라이브러리를 만들었다고 가정한다.project/|── math/| |── math.h (여기에 add, mul 등 구현됨)| |── math.cpp|── main.cpp..

C++ 2026.04.26

두 컨테이너의 크기 일치를 보장하는 방법

C++에서 두 개의 컨테이너(ex: vector)를 함께 관리해야 하는 경우가 있다. -> push_back과 pop_back 연산의 호출 횟수가 항상 동일std::vector vec1;std::vector vec2;for (int i = 1; i 두 컨테이너의 크기 일치를 보장하는 방법으로는 매번 조건문으로 크기를 확인하는 방식이 있다. 하지만 이 검사를 누락하면 범위를 벗어난 접근이 발생해 런타임 오류로 이어질 수 있다. 이 방법은 런타임 오류를 막는 최소한의 안전장치지만 여전히 실수 가능성이 존재한다. 두 컨테이너가 반드시 동일한 크기를 유지해야 한다면 개별 컨테이너 두 개로 관리하지 말고 std::pair로 묶어서 관리하는 것이 더 안전하다. std::pair를 사용하면 두 값이 독립적으로 존재..

C++ 2025.09.22

[C++] 우선순위큐 - 최대힙, 최소힙

우선순위큐(priority queue)우선순위큐(default 최대 힙)는 삽입된 요소에 대해 우선순위가 높은 데이터를 먼저 가져오는 형식의 자료구조다. 우선순위큐는 주로 힙 자료구조를 기반으로 구현된다. 힙(heap)힙은 완전이진트리의 일종으로 우선순위큐를 위해 만들어진 자료구조다.최대값/최소값을 빠르게 찾아내도록 만들어졌다.최대힙에서는 최대값, 최소힙에서는 최소값을 O(1)의 시간복잡도로 빠르게 접근할 수 있다.삽입과 삭제 연산은 트리의 높이에 비례하기 때문에 O(log N)의 시간복잡도를 가진다.이진탐색트리에서는 중복된 값을 허용하지 않는 반면 힙 트리에서는 중복된 값을 허용한다.힙은 최대힙과 최소힙 형태로 나뉜다. 최대힙부모노드의 키 값이 자식노드의 키 값보다 크거나 같은 완전이진트리부모노드의 키..