분류 전체보기110 202504 최근에 기술 면접을 진행했는데, 오랜만에 사람들과 개발 관련 이야기를 나눈 기분이 들었다. 졸업 이후에 정말 오랜만에 개발 관련 대화를 나눈 것 같았고 집에 와서는 새삼 행복했다는 걸 깨달았다. 면접 결과와는 상관 없이 '내가 정말 좋아하는 일은 개발이었구나'를 다시 생각할 수 있었다는 점에서 충분히 만족스러웠다. 자신의 일에 애정을 가진 사람들과 해당 분야에 대해 이야기를 나눌 수 있다는 건 즐거운 일이다. 정말 좋은 에너지를 받았고 소중한 시간을 투자해주셔서 감사하다.점점 업무는 바빠지고 있다. 주어진 일에는 최선을 다 하고 싶어서 머릿속에 업무 관련 생각이 가득하다. 퇴근 후에도 업무 생각을 종종한다. 그러다가도 내가 정말 좋아하는 일은 이게 아니었는데 싶고, 현재 삶에 어딘가 불만족스러운 마음이 .. 2025. 4. 5. 디자인 패턴 - 컴포넌트 패턴 컴포넌트 패턴 기반 설계특징: 객체가 특정 기능을 직접 상속받는 것이 아니라, 여러 독립적인 컴포넌트를 조합하여 기능을 확장하는 방식장점유연성: 객체는 여러 개의 컴포넌트를 가질 수 있으며, 필요에 따라 쉽게 추가 및 삭제 가능코드 재사용성 증가: 특정 기능을 독립적인 컴포넌트로 만들어 여러 객체에서 공유 가능런타임 동적 변경 가능: 게임 실행 중 새로운 기능을 추가하거나 제거할 수 있음단점관리 복잡성 증가: 컴포넌트가 많아지면 객체와 컴포넌트 간의 관계를 관리하는 코드가 증가할 수 있음초기 설계 필요: 시스템을 처음부터 컴포넌트 기반으로 설계해야 효과적임 상속 vs 컴포넌트 패턴 비교비교 항목상속컴포넌트 패턴구조계층 구조 기반독립적인 모듈 조합확장성상속 구조에 따라 제한적새로운 컴포넌트를 추가하여 유연.. 2025. 3. 29. 데이터 직렬화 & 역직렬화 직렬화 (Serialization): 데이터 구조를 바이트 스트림 또는 문자열로 변환하는 과정Json은 JavaSript 객체를 문자열 형태로 변환하는 것을 의미하고, 이를 통해 데이터를 네트워크에 전송하거나 파일에 저장할 수 있다.직렬화된 데이터는 전송을 위해 표준 텍스트 형식으로 인코딩된다.C#에서 만든 객체를 Json 형식의 문자열로 변환하는 과정정리하면...Json은 JavaScript 객체를 문자열 형태로 변환한 것이고, 목적은 네트워크로 데이터를 전송하거나 파일 저장을 위함임직렬화를 통해서 데이터를 표준 텍스트로 인코딩해서 전송하는 것 역직렬화 (Deserialization): 직렬화된 데이터를 다시 원래의 데이터 구조로 변환하는 과정Json 문자열을 다시 C# 객체로 변환하는 과정 직렬화 및.. 2025. 3. 29. 7. 그래픽 객체의 사용 7.1 GDI와 DC의 개념1) 그래픽 디바이스 인터페이스 (GDI: Graphics Device Interface)그래픽을 출력하고자 하는 애플리케이션은 윈도우에게 요청을 하고, 윈도우는 디바이스 드라이버를 호출하면 디바이스 드라이버가 하드웨어를 구동시킨다. 하드웨어의 종류와 관계 없이 항상 같은 명령어를 이용하여 그래픽을 출력할 수 있다. 이때, 윈도우가 하드웨어를 제어할 수 있도록 애플리케이션에 제공하는 모든 기능을 그래픽 디바이스 인터페이스라고 한다.즉, 그래픽 디바이스 인터페이스는 애플리케이션과 디바이스 드라이버의 중간 다리 역할을 하는 것으로 애플리케이션에 대한 장치 독립적인 그래픽 동작을 수행한다.2) 디바이스 컨텍스트 (DC: Device Context)윈도우 프로그램은 윈도우의 화면에 출.. 2025. 3. 5. 6. 사용자 인터페이스 6.1 메뉴(Menu)메뉴는 윈도우에서 가장 보편적으로 사용되는 사용자 인터페이스로 해당 애플리케이션이 가진 기능을 사용자에게 알려주고, 사용자의 선택에 따라 기능을 수행할 수 있도록 매개 역할을 한다.메뉴의 형태는 크게 3가지로 나눌 수 있다.1) 풀다운 메뉴(Pull-down Menu)애플리케이션 상단에 여러 개의 카테고리가 일렬로 늘어서 있는 형태를 취하고 있으며, 사용자가 카테고리 하나를 선택하면 선택된 카테고리 아래로 메뉴가 뚝 떨어지면서 애플리케이션의 기능을 작동시킬 수 있는 메뉴 항목이 나타난다.2) 캐스케이딩 메뉴(Cascading Menu)풀다운 메뉴에서 변형된 메뉴 형태로, 메뉴 항목의 오른쪽에 또 하나의 서브 메뉴가 나타나는 메뉴이다.3) 팝업 메뉴(Pop-up Menu) 또는 문맥 .. 2025. 1. 19. 5. 도큐먼트 파일 입출력 및 템플릿 (2) 5.3 SDI 템플릿SDI란 뷰 클래스, 도큐먼트 클래스, 메인프레임 클래스가 하나의 템플릿으로 구성되어진 것을 말함하나의 도큐먼트를 갖는 프로그램도큐먼트 - 뷰 구조에서 도큐먼트는 디스크에서 데이터를 읽고 저장하는 기능을 함SDI 형태의 프로그램으로는 메모장이나 그림판과 같은 것들을 들 수 있음SDI에서 각 클래스의 인스턴스를 얻어오는 방법클래스의 인스턴스를 얻으면 그 인스턴스 값으로 얻어온 클래스의 멤버 변수나 멤버 함수를 이용할 수 있는 것1) 애플리케이션 클래스의 인스턴스를 얻는 방법애플리케이션 클래스의 포인터 변수를 생성한 다음 AfxGetApp()이라는 함수를 이용하면 프로그램의 어디에서나 이 클래스의 인스턴스를 얻을 수 있음2) 메인 프레임 클래스의 인스턴스를 얻는 방법메뉴와 툴바, 상태 표.. 2024. 12. 29. 이전 1 2 3 4 ··· 19 다음