해당 글은 매일메일 서비스를 이용하면서 받은 질문에 대한 공부 내용을 적은 글입니다.
만약 잘못된 내용이 있으면 댓글로 남겨주세요!
매일메일 - 기술 면접 질문 구독 서비스
기술 면접 질문을 매일매일 메일로 보내드릴게요!
www.maeil-mail.kr
객체지향 프로그래밍이란
객체지향 프로그래밍(OOP)는 프로그램 설계 방법론 중 하나입니다.
프로그램을 객체(Object)라는 단위로 나누고 이런 객체들의 상호작용으로 프로그램을 구성하는 방식을 의미합니다.

이런 객체지향이 생겨난 이유는 프로젝트의 유지 및 보수와 연결되어 있습니다.
이전에는 절차적 프로그래밍을 사용했습니다. 절차적 프로그래밍은 프로그램을 함수 단위로 나눠 함수의 호출로 프로그램을 구성하는 방식입니다. 이런 방식은 코드의 중복을 줄여주지만 데이터 자체를 구조화 할 수는 없습니다. 그래서 프로젝트의 규모가 커지면 하나의 함수가 이곳저곳에서 사용되고 이는 해당 함수를 수정할 때 변경사항의 전파로 인한 유지 및 보수의 리소스를 늘립니다.
https://study-note10.tistory.com/9
좋은 코드란 무엇일까 (feat. 객체지향)
이 글은 공부를 하던 중 생긴 궁금증을 해결한 내용 또는 제 생각을 적은 글입니다.만약 잘못된 내용이 있으면 댓글로 남겨주세요! 개발에 대해 공부하고 프로젝트를 진행하면서 좋은 코드에
study-note10.tistory.com
특히 GUI 프로그래밍에서 발생하는 이벤트 처리 과정에서 절차적 프로그래밍은 이런 이벤트 처리에 대한 코드가 흩어져 있지만 객체 지향 프로그래밍은 이벤트 처리 로직을 하나의 객체로 응집시켜 유지 및 보수를 더 쉽게 해주는 장점이 있습니다.
객체지향 프로그래밍 특징
1. 캡슐화
캡슐화란 변수나 메소드와 같이 연관된 속성이나 기능들을 한 곳에서 관리하는 것을 의미합니다.
변수나 메소드에 대한 구현은 캡슐처럼 내부에 두고 외부는 인터페이스만 공개하여 객체의 무결성을 유지하고 코드의 유지 및 보수를 쉽게 만들어 줍니다.

2. 추상화
추상화란 객체의 공통적인 속성을 추출하여 추상 클래스 or 인터페이스로 만들고 구체적인 로직인 구현체에서 정의하여 각각의 객체가 핵심 기능에만 집중할 수 있도록 하는 것을 의미합니다.
예를 들어 동그라미, 세모, 네모, 등... 여러 모양들에 대한 객체가 존재할 때 이를 Shape으로 추상화를 할 수 있습니다.

3. 상속
상속은 부모 클래스의 변수나 메소드를 재사용하여 자식 클래스가 물려받아 사용하는 것을 의미합니다.
이를 통해 여러 클래스에 있는 중복 코드를 부모 클래스로 이전하여 중복 제거, 코드 재사용성을 높이는 효과를 얻을 수 있습니다.

4. 다형성
다형성은 같은 인터페이스나 메서드 이름을 가지고 있어도 맥락에 따라 다른 동작을 수행하도록 하는 것을 의미합니다.
보통 메소드 오버로딩이나 오버라이딩을 통해 다형성을 구현합니다.

'CS' 카테고리의 다른 글
| 동기/비동기, 블로킹/논블로킹은 무엇이고 각각의 차이점은 무엇인가요? (0) | 2025.10.08 |
|---|---|
| @Async는 어떻게 동작하나요? (0) | 2025.10.06 |
| 컴퓨터의 병렬 처리 기술 (5) | 2025.07.27 |
| [매일메일] PRG 패턴에 대해서 설명해 주세요. (0) | 2025.03.24 |