alt

[0331] 패턴프

Shared on April 1, 2026

객체지향 프로그래밍 기초 강의 요약

개요

  • 주제: 객체지향 패러다임과 Java 기반 구현
  • 목적: 객체, 클래스, 상호작용, 이벤트 처리, UI 그리기(다이얼로그)와 같은 핵심 개념을 체계적으로 이해하고, 실제 코드 설계와 구현에 적용할 수 있도록 함

핵심 개념

카테고리주요 내용
객체 정의속성(Attributes) – 객체가 보유한 값(예: 색, 크기, 위치) <br>구성(Components) – 객체를 이루는 하위 객체(부품) <br>연관(Association) – 객체 간 연결(친구, 부모-자식 관계)
클래스 설계• 클래스는 객체를 만들기 위한 메타 객체 <br>생성자(new) – 객체 인스턴스화와 주소 할당 <br>상속(Inheritance) – 특화/일반화 관계 <br>구성(Composition) – 부품 관계(aggregation/composite)
상태와 메소드상태(State) – 현재 속성 값들의 집합 <br>메소드(Method) – 입력값을 받아 규칙에 따라 결과를 반환하거나 상태를 변형 <br>• 메소드는 메시지(Message) 를 통해 호출
메시지와 이벤트메시지 – 객체 간 통신, 메소드 호출 트리거 <br>이벤트(Event) – 외부(OS, UI)에서 발생, 핸들러가 처리 <br>핸들러(Handler) – 이벤트를 받아 로직을 실행
UI 그리기좌표계 – (x, y) 포인트 <br>기본 도형 – 직사각형, 다각형, 자유선(Polyline) <br>입력 방식 – 클릭, 드래그, 더블클릭, 제스처 <br>구현 분리 – 이벤트 처리 + 실제 그리기 로직
그래픽스 최적화버퍼드 이미지(BufferedImage) – 한 장의 메모리 캔버스 <br>다중 버퍼링(Double Buffering) – 깜빡임 방지, 성능 향상 <br>그리기 흐름 – 배경색 → 도형 → 화면 출력
개발 실습• 클래스와 객체 설계 연습 <br>• 이벤트 리스너 구현 및 테스트 <br>• 다이얼로그 기반 그리기 예제 <br>• 코드와 설계 문서(보고서) 제출

상세 노트

1. 객체와 클래스

  • 속성은 객체 내부에 저장되는 값이며, 객체가 보유한 정보(예: 색, 크기, 위치)
  • 구성(Components) 은 객체를 이루는 다른 객체(부품)로, 독립적인 엔티티이며 new 로 생성된 자식
  • 연관(Association) 은 객체 간 연결점(주소)이며, 친구 관계(외부에서 연결)와 자식 관계(내부에서 생성)의 차이

2. 클래스 설계 원칙

  • 클래스는 메타 객체로서, 객체를 만들 때 필요한 구조와 메소드를 정의
  • 생성자는 객체 생성 시 주소를 할당하고 초기화
  • 상속은 일반화와 특화 관계, 구성은 부품 관계(aggregation/composite)

3. 상태와 메소드

  • 상태는 객체가 현재 갖는 속성 값들의 집합
  • 메소드는 입력값을 받아 규칙에 따라 결과를 반환하거나 상태를 변경
  • 메소드는 메시지를 통해 호출되고, 호출 시 객체의 상태가 변하면 다른 객체에 메시지를 보낼 수 있음

4. 메시지와 이벤트

  • 메시지는 객체 간 통신 수단; 메시지가 도착하면 해당 객체가 메소드를 실행
  • 이벤트는 외부(OS, UI)에서 발생하며, 이벤트 핸들러가 이를 받아 로직을 수행
  • 핸들러는 로직컨트롤을 분리하며, 실제 그리기 로직은 객체 내부에 두어 재사용 가능

5. UI 그리기

  • 좌표계(정수형 x, y)만으로 직사각형, 다각형, 자유선 그리기 가능
  • 입력 방식: 클릭, 드래그, 더블클릭, 제스처 등
  • 구현 분리: 이벤트 처리(좌표 수집)와 실제 그리기 로직(도형 그리기)

6. 그래픽스 최적화

  • 버퍼드 이미지: 메모리 상에 한 장의 캔버스를 만들고, 그 위에 그리기
  • 다중 버퍼링: 깜빡임 방지와 성능 향상을 위해 사용
  • 그리기 흐름: BufferedImageGraphics2D → 배경 색 → 도형 → 화면에 출력

7. 실습 및 과제

  • 보고서: 객체지향 패러다임, 이벤트 핸들러(로직/컨트롤 분리), 다중 버퍼링에 대한 이론 및 구현
  • 코드: 클릭-이동-더블클릭 이벤트 처리, 직사각형 그리기, 다중 버퍼링 적용
  • 테스트: 이벤트 흐름을 시각화하고, 버퍼링 효과를 확인

핵심 포인트

  • 객체는 속성·구성·연관으로 정의되고, 클래스는 객체 생성의 메타 구조
  • 메소드는 메시지를 통해 호출되며, 상태 변화를 통해 다른 객체와 상호작용
  • 이벤트 기반 UI 구현 시 로직과 컨트롤을 명확히 분리하고, 버퍼링으로 성능을 확보

이 요약은 강의 내용을 핵심 개념과 실전 적용 지침으로 정리한 것이며, 실제 코딩 시 참고용으로 활용하세요.