Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 응용정보기술자
- 일본IT
- 암합적 강도
- 오사카프로그래머
- 모듈 강도
- 테스트코드
- 바텀업 테스트
- 성능최적화
- java
- 탑다운 테스트
- 모듈 결합도
- CI/CD
- 생성자주입
- 프로그래머블로그
- DBUnit
- STS분할
- 기능적 강도
- 필드주입
- 결합 테스트
- 모듈 설계
- 스텁
- Integration Test
- 모듈 분할
- 데이터 결합
- 단체테스트
- 블랙박스 테스트
- spring
- 개발자회고
- 성장기록
- Transactional
Archives
- Today
- Total
오사카 프로그래머의 생존기
응용정보기술자 시험으로 다시 짚어보는 객체지향(OOP)의 본질 본문
[소프트웨어 개발] 객체지향(OOP) 4대 원칙 핵심 개념 요약
1. 시험 출제 핵심 이론 (Core)
응용정보기술자(AP) 오전/오후 문제에서 자주 출제되는 객체지향(Object-Oriented Programming)의 4가지 핵심 원칙과 설계 개념을 정리합니다.
1) 캡슐화 (Encapsulation)와 정보 은닉 (Information Hiding)
- 개념: 연관된 데이터(속성)와 이를 조작하는 함수(메소드)를 하나의 객체로 묶는 기법.
- 목적: 객체 내부의 복잡한 구현을 숨기고 외부에는 최소한의 인터페이스만 노출(정보 은닉)하여, 외부의 잘못된 접근으로부터 데이터를 보호.
- 효과: 객체 간의 결합도(Coupling)를 낮추고 응집도(Cohesion)를 높여 시스템의 유지보수성을 크게 향상시킴.
2) 상속 (Inheritance)
- 개념: 기존 클래스(부모, Super)의 속성과 기능을 새로운 클래스(자식, Sub)가 물려받아 사용하는 기능.
- 특징: 코드의 재사용성을 극대화함. 주로
extends키워드로 구현. - 주의점 (시험 출제 포인트): 무분별한 상속은 부모-자식 간의 강한 결합을 유발하므로, 반드시 'Is-A 관계(A는 B이다)'가 성립할 때만 제한적으로 사용해야 함.
3) 다형성 (Polymorphism)과 오버라이드 (Override)
- 개념: 동일한 이름의 메시지(메소드 호출)를 받았을 때, 객체의 타입에 따라 서로 다른 방식으로 동작하는 성질.
- 구현 방식:
- 오버라이드(Override): 상속 관계에서 부모의 메소드를 자식 클래스가 자신의 목적에 맞게 재정의(동적 바인딩).
- (참고) 오버로딩(Overload): 같은 이름의 메소드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의(정적 바인딩).
- 효과: 조건문(
if,switch)을 줄이고 코드의 유연성과 확장성을 확보.
4) 추상화 (Abstraction)와 인터페이스 (Interface)
- 개념: 불필요한 세부 사항은 제거하고, 객체들의 공통적이고 핵심적인 특징(기능)만을 추출하여 모델링하는 과정.
- 구현: 주로 추상 클래스(Abstract Class)나 인터페이스(Interface)를 통해 외부로 노출할 핵심 메시지만 정의.
- 효과: 복잡도를 제어하고, 구현체가 아닌 추상화에 의존하게 만듦으로써 시스템의 느슨한 결합(Loose Coupling)을 유도.
2. 6년 차 실무자의 코멘트 (Reality)
6년 동안 현업에서 Java를 만지며 기계적으로 만들던 Getter/Setter나 DI(의존성 주입)를 위해 습관적으로 빼던 Interface가, 사실은 결합도를 낮추고 유연성을 확보하기 위한 치밀한 '설계의 산물'이었음을 새삼 확인하게 된다. 손가락이 기억하던 문법에 '왜 그렇게 해야만 하는가'에 대한 이론적 뼈대가 세워진 기분이다.
'응용정보기술자' 카테고리의 다른 글
| 응용정보기술자 합격 치트키: 단위 테스트와 결합 테스트 완벽 요약 (0) | 2026.05.06 |
|---|---|
| 일본 IT 자격증 필수 개념: STS 분할 및 암합적 강도 출제 함정 피하기 (1) | 2026.05.06 |