본문 바로가기

반응형

c c++ mfc

(10)
UML Sequence Diagram에서 Boundary, Control, Entity 클래스가 하는 역할은? 오늘은 UML Sequence Diagram을 그릴 때 좀 헷갈리는 부분이 있어 정리하려고 합니다.보통 수명선(LifeLine)이라고 이렇게 그리는데요.점선은 시간의 경과를 나타내는 거고 그 위의 네모는 객체를 나타냅니다. 그런데 저 객체 자리에 다음과 같이 다른 것들을 그릴 수 있습니다.얘네들은 언제 사용하는 것일까요? 1. Actor (사용자)먼저 Actor는 너무 분명하죠. 프로그램을 사용하는 사용자입니다. 이견의 여지가 없죠.UML 시퀀스 다이어그램에서 Actor는 시스템과 상호작용하는 외부 참여자를 표현하고, 시스템 사용 시나리오를 정의하며, 시스템의 경계와 범위를 설정하는 데 사용됩니다. 2. Boundary(경계)다음으로 Boundary. 해석 그대로 시스템의 경계를 모델링하는 클래스입니다...
GFlags 를 이용하여 메모리 누수 찾기 오늘은 C/C++, MFC를 이용한 Windows Application 개발중에 직면할 수 있는 메모리 누수 문제를 해결할 수 있는 툴에 대해 기록하려 합니다. 1. 설치파일 찾기 GFlags 는 Windows용 디버깅 도구입니다. google에서 검색하면 설치할 수 있는 페이지를 찾을 수 있습니다. 타고 타고 들어가면 아래 세번째 그림과 같이 WDK 설치페이지까지 갑니다. 거기서 2단계, SDK를 설치하면 됩니다. 2. 설치 설치파일을 실행하면 다음과 같은 화면이 나오는데 여기서 'Debugging Tools for Windows' 를 체크하여 설치합니다. 나머지는 필요에 따라 선택하시면 됩니다. 3. 실행 windows 좌측하단의 검색버튼에서 gflags를 검색하여 실행합니다. 그러면 다음과 같은 g..
C++ 20의 주목할만한 Feature 안녕하세요. 오늘도 역시 제 본업입니다. 지난 시간 C++17에 추가된 내용들을 먼저 정리해 보았습니다. 오늘은 이어서 C++20에 추가된 내용중에 제 개인적인 의견으로 유용할 것 같은 애들만 기술했습니다. 참고하시고, 시작합니다~~ 1. 우주선 연산자(Spaceship Operator) C++20에서는 새로운 비교 연산자인 "우주선 연산자"(Spaceship Operator)가 도입되었습니다. 이 우주선 연산자는 기존의 비교 연산자들을 한 번에 처리할 수 있는 강력한 도구입니다. 우주선 연산자는 기호로 표현되며, 공식적으로는 "세 방향 비교"(Three-Way Comparison) 또는 "총 등호"(Total Ordering)라고 불립니다. 이 연산자의 반환 값은 다음과 같습니다: 양수: 첫 번째 인수..
C++ 17의 주목할만한 Feature 안녕하세요. 오늘은 잠시 제 본업으로 돌아왔습니다. 업무에 사용중이던 Visual Studio 버전을 2019에서 2022로 올리게 되었고, 동시에 사용하던 C++ 표준이 14에서 20으로 올라가게 되며 그간 새 표준에 추가된 기능 중 유용한 기능에 대해 기록해 볼까 합니다. 우선은 C++ 17에 추가된 내용들을 먼저 정리해 보려고 합니다. 참고로 아직 C++ 23은 정식으로 나온거 같지는 않네요. 그리고 20에서 추가되는 기능도 크지 않을 거라는 전망입니다. 아래에 나열한 기능들은 제 개인적인 의견으로 유용할 것 같은 애들만 기술했습니다. 참고해 주세요~ 1. C++ 17에서 유용할 거 같은 애들 std::optional : 값이 있을 수도 있고 없을 수도 있는 상황, 이를테면 한 자료구조에서 특정 요..
[Git] Merge vs Rebase, 그 차이점 알아보기 안녕하세요. 오늘은 Git에서 자주 사용되는 두 가지 브랜치 통합 방법, 'Merge'와 'Rebase'에 대해 알아보겠습니다. 이 두 가지 방법은 각각 서로 다른 목적과 상황에 따라 사용되며, 그 결과물도 조금씩 다릅니다. 다음과 같이 A라는 Master에서 B라는 Branch를 생성해서 작업했다고 가정합니다. 1. Merge Git의 Merge는 두 개의 브랜치를 합칠 때 사용하는 가장 기본적인 도구입니다. Merge 작업을 수행하면, 병합하려는 두 브랜치의 변경 사항을 모두 포함하는 새로운 커밋(아래그림의 C3)이 생성됩니다. 이 과정에서 원래의 커밋 히스토리(커밋 순서)가 유지됩니다. 하지만 이런 방식은 여러 사람이 동시에 작업할 경우 커밋 히스토리가 복잡해질 수 있습니다. 저는 Git gui t..
UML Class Diagram의 화살표들, Class 간의 관계 오늘은 UML의 Class Diagram으로 설계를 진행할 때, 항상 이 화살표를 어떤거를 써야하는지 헷갈려서 정리하는 시간을 가져보겠습니다. UML Class Diagram은 시스템의 구조를 시각화하기 위해 사용되며, 클래스 간의 관계를 나타내는 화살표로 다양한 종류의 연관 관계를 표시할 수 있습니다. 이 글에서는 Composition, Aggregation, Association, Dependency, Inheritance, Realization/Implementation관계에 대해 소개하고 각각에 대한 예제 코드도 제공합니다. 1. Association (연관)Association은 두 클래스가 서로 연관되어 있음을 나타냅니다. 연관 관계는 일반적으로 클래스 간의 참조 관계를 의미하며, 다이어그램에..
ADO (ActiveX Data Objects) 이해하기 및 예제 (VBScript, C#, C++) 안녕하세요! 오늘은 데이터 액세스 프레임워크 중 하나인 ADO(ActiveX Data Objects)에 대해 알아보도록 하겠습니다. 데이터베이스와 상호 작용하는 애플리케이션을 개발할 때 중요한 개념입니다. 저는 실제로 MFC/C++ 을 사용하여 개발중에 DB접근을 위해 사용해오고 있습니다. ADO란? ADO는 마이크로소프트에서 제공하는 컴포넌트 기반의 데이터 액세스 프레임워크로, 데이터 소스와 상호 작용하기 위한 기능을 제공합니다. ADO는 COM(컴포넌트 객체 모델) 기반으로 개발되어 있으며, 다양한 프로그래밍 언어 (예: Visual Basic, C++, C# 등) 와 환경에서 사용할 수 있습니다. ADO의 구성 요소 ADO는 여러 개의 객체 모델 간의 상호 작용을 통해 데이터 액세스를 제공합니다. ..
SQLite란? 안녕하세요, 오늘은 많은 개발자들이 선택하는 경량 DBMS인 SQLite에 대해 알아보겠습니다. SQLite는 2000년에 첫 출시된 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)입니다. SQLite는 이름에서 알 수 있듯이, "light" 즉, "경량"을 의미하며 이는 그 특성을 잘 나타냅니다. 1. 서버가 필요 없습니다 SQLite는 서버-클라이언트 구조를 가지고 있지 않습니다. 대신, 데이터베이스 전체가 하나의 파일로 저장되며 이 파일은 직접 읽고 쓸 수 있습니다. 이러한 특성 때문에 설치나 설정 과정 없이도 간단하게 사용할 수 있으며, 운영체제 간 호환성도 좋습니다. 2. ACID(원자성, 일관성, 고립성, 지속성)를 준수합니다 SQLite는 트랜잭션 중 하나라도 실패하면 모든 작업을 ..

반응형