Perl 상속 개념 및 구현 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
Perl 객체지향 프로그래밍을 배우는 개발자, OOP 개념을 실무에 적용하고자 하는 프로그래머
핵심 요약
- Perl에서 상속은
@ISA
배열 또는parent
pragma를 사용하여 구현 가능하며,parent
가 현대적인 추천 방식 Ingredient
클래스는Note
클래스를 상속받아quantity
,unit
속성을 추가하고new
,info
메서드를 확장- 테스트 파일
t/02-ingredient.t
는Test::More
라이브러리를 사용하여 상속된 기능과 새로운 속성의 정확성을 검증
섹션별 세부 요약
1. 상속의 개념 및 목적
- 객체지향 프로그래밍에서 상속은 기존 코드를 재사용하고 확장하는 핵심 기능
@ISA
배열은 부모 클래스 목록을 저장하며,require
와BEGIN
블록을 사용해 초기화 가능- 함수형 프로그래밍에서는 함수 공유/구성으로 코드 재사용 가능
2. Perl에서의 상속 구현 방법
@ISA
배열 직접 설정:push @ISA, qw(Foo Bar);
형태로 부모 클래스 추가parent
pragma 사용:use parent qw(Foo Bar);
로 간결하게 상속 설정 가능base
pragma는 오래된 방식이며,parent
가 권장 (예:use parent qw/Note/;
사용)
3. `Ingredient` 클래스 확장 예시
Note
클래스를 기반으로quantity
및unit
속성 추가new
메서드를 확장해 새로운 속성 검증 로직 추가 (예:quantity
와unit
의 유효성 체크)info
메서드를 수정해 새로운 속성을 출력 문자열에 포함
4. 테스트 및 검증
t/02-ingredient.t
파일에서Test::More
라이브러리 사용하여Ingredient
객체 테스트use_ok('Ingredient')
로 모듈 로딩 검증,is()
및like()
로 속성 값과 형식 검증done_testing()
로 테스트 종료
5. 코드 구조 및 모듈 구성
lib/Ingredient.pm
파일에서use parent qw/Note/;
로 부모 클래스 지정new
,title
,description
,quantity
,unit
,last_changed
,info
메서드의 접근자 구현=head1
섹션으로 모듈 설명 및 사용 예제 작성
결론
- Perl 상속은
parent
pragma 사용이 권장되며, 부모 기능 확장 시new
및info
메서드를 적절히 오버라이드 - 테스트 파일 작성 시
Test::More
라이브러리 활용해 기능 검증 - 모듈 구조는
@ISA
설정, 메서드 확장, 문서화(=head1
)로 체계적으로 구성해야 함