반응형

2025/09 37

[C++ STL 시리즈] 6편: unordered_set과 unordered_map 사용법

C++ STL 시리즈 6편: unordered_set과 unordered_map 사용법지난 글에서는 set과 map을 살펴보았습니다. 이번 글에서는 STL의 unordered_set과 unordered_map 컨테이너를 다루겠습니다.이 컨테이너들은 해시(Hash) 기반 자료구조를 사용하여, set과 map보다 검색, 삽입, 삭제 속도가 빠릅니다.특히 데이터 순서가 중요하지 않을 때 효율적입니다.1. unordered_set이란?unordered_set은 중복 없는 원소 집합 을 저장하며, 요소는 정렬되지 않고 해시 테이블에 저장됩니다.따라서 삽입, 삭제, 검색 모두 평균적으로 O(1) 시간에 수행됩니다.순서가 중요하지 않고 빠른 조회가 필요한 경우에 유용합니다. unordered_set 선언과 초기화#i..

c++ 2025.09.20

[C++ STL 시리즈] 5편: set과 map 사용법

C++ STL 시리즈 5편: set과 map 사용법지난 글에서는 STL의 stack과 queue를 살펴보았습니다.이번 글에서는 C++ STL에서 제공하는 **set과 map** 컨테이너를 다루겠습니다.두 컨테이너는 모두 데이터를 **자동 정렬**하며, 중복을 관리할 수 있어 효율적인 데이터 검색과 저장이 가능합니다. 1. set이란?set은 **중복 없는 원소의 집합**을 표현하는 컨테이너입니다.요소는 항상 정렬되어 저장되며, 삽입, 삭제, 검색이 효율적입니다.set은 내부적으로 **이진 검색 트리(Binary Search Tree)**를 사용하기 때문에 O(log n) 시간에 연산이 가능합니다. set 선언과 초기화#include #include using namespace std;int main() ..

c++ 2025.09.20

[C++ STL 시리즈] 4편: stack과 queue 사용법

C++ STL 시리즈 4편: stack과 queue 사용법지난 글에서는 STL의 deque 컨테이너 사용법을 살펴보았습니다.이번 글에서는 STL에서 제공하는 **stack과 queue** 컨테이너를 정리하겠습니다.두 컨테이너 모두 FIFO(First In First Out) 또는 LIFO(Last In First Out) 구조를 구현할 수 있는 자료구조로,자료를 순차적으로 처리할 때 유용합니다. 1. stack이란?stack은 **LIFO(Last In First Out)** 구조입니다.즉, 가장 나중에 추가한 요소가 가장 먼저 삭제됩니다.스택은 프로그램의 함수 호출, 되돌리기(undo) 기능 등에서 사용됩니다. stack 선언과 초기화#include #include using namespace std;..

c++ 2025.09.20

[C++ STL 시리즈] 3편: deque 사용

C++ STL 시리즈 3편: deque 사용법지난 글에서는 STL의 list 컨테이너를 살펴보았습니다.이번 글에서는 STL의 deque(Double Ended Queue) 컨테이너를 다뤄보겠습니다.deque는 vector와 list의 장점을 결합한 자료구조로, 양쪽 끝에서 삽입과 삭제가 모두 빠릅니다. 1. deque란?deque는 양쪽 끝에서 요소를 삽입(push)하거나 삭제(pop)할 수 있는 컨테이너입니다.vector처럼 임의 접근이 가능하며, list처럼 앞뒤 삽입과 삭제가 효율적입니다.따라서 큐(Queue)나 스택(Stack)을 구현할 때 매우 유용합니다. deque 선언과 초기화#include #include using namespace std;int main() { deque dq; ..

c++ 2025.09.20

[C++ STL 시리즈] 2편: list 사용법

C++ STL 시리즈 2편: list 사용법지난 글에서는 STL의 기본 개념과 vector 사용법을 다뤘습니다.이번 글에서는 **STL의 list 컨테이너**를 자세히 살펴보겠습니다.list는 **이중 연결 리스트(Doubly Linked List)** 구조로, 삽입과 삭제가 빈번한 상황에서 vector보다 효율적입니다. 1. list란?list는 STL 컨테이너 중 하나로, 메모리 상에서 요소가 연결 리스트 형태로 저장됩니다.vector와 달리 **임의 접근(Random Access)은 불가능**하지만,삽입과 삭제가 리스트 내 어느 위치에서든 O(1) 시간에 수행될 수 있습니다. list 선언과 초기화#include #include using namespace std;int main() { lis..

c++ 2025.09.19

[C++ STL 시리즈] 1편: STL 개요 및 vector 사용법

C++ STL 시리즈 1편: STL 개요와 vector 사용법 C++ 프로그래밍을 하다 보면 자료구조와 알고리즘을 직접 구현해야 하는 경우가 많습니다.하지만 C++에서는 이미 구현된 표준 라이브러리인 STL(Standard Template Library)을 제공합니다.STL은 효율적이고 안정적인 자료구조와 알고리즘을 제공하여, 개발자가 직접 구현하지 않고도 쉽게 사용할 수 있게 도와줍니다. 1. STL의 구성 요소STL은 크게 컨테이너(Containers), 알고리즘(Algorithms), 반복자(Iterators)로 구성됩니다.컨테이너(Containers): 데이터를 저장하고 관리하는 자료구조입니다. 예: vector, list, deque, set, map알고리즘(Algorithms): 컨테이너에 적..

c++ 2025.09.19

C# WPF/WinForms GUI 개발: MVVM, 데이터 바인딩, 커스텀 컨트롤 활용

C# WPF/WinForms GUI 개발: MVVM, 데이터 바인딩, 커스텀 컨트롤 활용C#에서 GUI 애플리케이션 개발은 WPF(Windows Presentation Foundation)와 WinForms 두 가지 주요 기술을 통해 이루어집니다.사용자 인터페이스(UI) 구성, 이벤트 처리, 화면 전환 등 다양한 기능을 효율적으로 구현하려면 MVVM 패턴, 데이터 바인딩, 커스텀 컨트롤 활용이 필수적입니다. 이번 글에서는 실무 예제와 함께 WPF/WinForms GUI 개발 핵심 개념과 구현 방법을 소개합니다. 1. WPF와 WinForms 비교WinForms: 빠른 UI 구성, 단순한 이벤트 기반, 레거시 프로젝트 활용WPF: XAML 기반, MVVM 패턴, 데이터 바인딩 지원, UI 커스터마이징 용이..

c# 2025.09.18

C# Entity Framework(Core)와 데이터베이스 연동

C# Entity Framework(Core)와 데이터베이스 연동C#에서 데이터베이스 연동은 거의 모든 애플리케이션에서 필수입니다. Entity Framework(Core)는 ORM(Object-Relational Mapping) 라이브러리로, 객체 지향 코드로 DB CRUD를 처리할 수 있어 생산성과 유지보수성을 크게 향상시킵니다. 이번 글에서는 LINQ + DB CRUD, Code First와 Database First, SQL Server와 SQLite 연동 방법에 대해 알아봅니다. 1. Entity Framework(Core) 소개EF Core는 .NET Core와 .NET 5/6/7에서 사용하는 ORM 라이브러리입니다.데이터베이스 테이블과 C# 클래스를 매핑하고, SQL을 직접 작성하지 않아도..

c# 2025.09.18

C# 디자인 패턴 – Singleton, Factory, Observer 사용법

C# 디자인 패턴 – Singleton, Factory, Observer 사용법C#에서 디자인 패턴(Design Pattern)은 소프트웨어 설계 문제를 효율적으로 해결하기 위한 재사용 가능한 코드 구조입니다.실무 프로젝트에서는 객체 생성, 이벤트 처리, 모듈 간 결합도를 낮추는 데 많이 활용됩니다. 이번 글에서는 싱글톤(Singleton), 팩토리(Factory), 옵저버(Observer) 패턴을 예제 중심으로 살펴보겠습니다. 1. 싱글톤 패턴(Singleton)싱글톤 패턴은 애플리케이션 내에서 클래스의 인스턴스를 하나만 생성하고, 어디서든 접근할 수 있도록 보장합니다.주로 설정 관리, 로그 관리, DB 연결 객체 등에 활용됩니다.public class Logger { private static ..

c# 2025.09.18

Visual Studio C++ MFC CRect 사용법

Visual Studio C++ MFC에서 CRect 사용법MFC 프로그래밍에서 **사각형(Rectangle)** 영역을 다루어야 할 때 매우 유용한 클래스가 있습니다.바로 CRect 클래스입니다.CRect는 윈도우 좌표 기반의 사각형 정보를 관리하고, 다양한 편의 함수를 제공하여 GUI 프로그래밍을 쉽게 만들어줍니다. CRect란?CRect는 MFC에서 제공하는 사각형 클래스입니다.네 개의 정수 좌표 left, top, right, bottom으로 사각형을 정의하며,크기 계산, 이동, 충돌 검사 등 다양한 기능을 제공합니다. CRect 기본 선언CRect rect(10, 20, 200, 150); // left, top, right, bottom left : 사각형 왼쪽 좌표top : 사각형 위쪽 좌..

c++ 2025.09.18
반응형