티스토리 뷰
소프트웨어 모듈
─────────────
소프트웨어는 모듈(module)이라는 덩어리를 조합해서 만들어집니다. 소프트웨어에서의 모듈은 특정 기능을 제공하는 단위, 소프
트웨어를 구성하는 독립적인 부분이 되는 것을 모듈이라고 합니다. 이 모듈은 함수나 데이터들이 모여서 만들어지고, 하나의 모듈
은 여러 모듈이 모여서 만들어지기도 합니다. 즉, 모듈에는 계층구조가 있다는 것입니다.
독립성이 높은 모듈
───────────────
독립성이 높은 모듈에서 독립성이란 그 모듈 내부 구현이 변경되더라도 그것을 사용하는 외부 모듈에는 영향을 주지 않는 것을
말 합니다.
한 모듈에서 구현한 내용이 다른 모듈을 참조하지 않으면 이해하기 어렵다거나, 한 모듈의 구현 방법을 변경할 때 그것을 사용하
는 다른 모듈도 수정해야 한다면 그 모듈의 독립성이 낮다고 말합니다. 모듈은 그것이 '어떤 기능(what)을 제공하는가'라는
관점과 그것이 '어떻게(how) 구현되는가'라는 관점으로 살펴볼 수 있습니다.
What과 How가 명확하게 구별되는 모듈이 독립성이 높은 모듈인 셈인데, 거꾸로 독립성이 낮은 모듈은 어떤 기능을 제공하고 있
는 지 불명확하고 구현 방법과 기능이 애메합니다.
모듈의 정보 은닉
──────────────
독립성 높은 모듈을 만드는 원칙을 정리해 보면 '그 모듈을 사용하는데 필요한 정보를 모듈 밖으로 최소한으로 노출하여 실제 기
능 구현방법은 외부에 보여주지 않아야 한다'입니다. 즉 모듈을 블랙박스로 취급하는것인데 이 원칙을 정보 은닉(information
hiding) 혹은 캡슐화(encapsulation)라고 부릅니다.
모듈을 블랙박스로 만들면 그 모듈을 사용하는 쪽에서는 제공된 기능만 활용해서 프로그램을 개발하면 됩니다. 모듈 쪽에서는
제공하기로 한 기능만 구현하면 되기 때문에 더 빠른 알고리즘이 있다면 교체하고, 메모리 효율을 높이고 싶으면 그에 맞는 다른
구현 방법을 적용하는 식으로 모듈의 개선 작업이 용이해집니다. 결국 블랙박스 방식은 독립성이 높은 모듈을 구현할 수 있도록
합니다. 블랙박스로 정보 은닉이 된 모듈은 사용자 측에서 모듈을 재사용하고, 소프트웨어를 부품화할 때도 매우 효과적입니다.
─────────────
소프트웨어는 모듈(module)이라는 덩어리를 조합해서 만들어집니다. 소프트웨어에서의 모듈은 특정 기능을 제공하는 단위, 소프
트웨어를 구성하는 독립적인 부분이 되는 것을 모듈이라고 합니다. 이 모듈은 함수나 데이터들이 모여서 만들어지고, 하나의 모듈
은 여러 모듈이 모여서 만들어지기도 합니다. 즉, 모듈에는 계층구조가 있다는 것입니다.
독립성이 높은 모듈
───────────────
독립성이 높은 모듈에서 독립성이란 그 모듈 내부 구현이 변경되더라도 그것을 사용하는 외부 모듈에는 영향을 주지 않는 것을
말 합니다.
한 모듈에서 구현한 내용이 다른 모듈을 참조하지 않으면 이해하기 어렵다거나, 한 모듈의 구현 방법을 변경할 때 그것을 사용하
는 다른 모듈도 수정해야 한다면 그 모듈의 독립성이 낮다고 말합니다. 모듈은 그것이 '어떤 기능(what)을 제공하는가'라는
관점과 그것이 '어떻게(how) 구현되는가'라는 관점으로 살펴볼 수 있습니다.
What과 How가 명확하게 구별되는 모듈이 독립성이 높은 모듈인 셈인데, 거꾸로 독립성이 낮은 모듈은 어떤 기능을 제공하고 있
는 지 불명확하고 구현 방법과 기능이 애메합니다.
모듈의 정보 은닉
──────────────
독립성 높은 모듈을 만드는 원칙을 정리해 보면 '그 모듈을 사용하는데 필요한 정보를 모듈 밖으로 최소한으로 노출하여 실제 기
능 구현방법은 외부에 보여주지 않아야 한다'입니다. 즉 모듈을 블랙박스로 취급하는것인데 이 원칙을 정보 은닉(information
hiding) 혹은 캡슐화(encapsulation)라고 부릅니다.
모듈을 블랙박스로 만들면 그 모듈을 사용하는 쪽에서는 제공된 기능만 활용해서 프로그램을 개발하면 됩니다. 모듈 쪽에서는
제공하기로 한 기능만 구현하면 되기 때문에 더 빠른 알고리즘이 있다면 교체하고, 메모리 효율을 높이고 싶으면 그에 맞는 다른
구현 방법을 적용하는 식으로 모듈의 개선 작업이 용이해집니다. 결국 블랙박스 방식은 독립성이 높은 모듈을 구현할 수 있도록
합니다. 블랙박스로 정보 은닉이 된 모듈은 사용자 측에서 모듈을 재사용하고, 소프트웨어를 부품화할 때도 매우 효과적입니다.
728x90
'헉!! > Objective C' 카테고리의 다른 글
[Objective-C] 유니버셜 바이너리? (0) | 2011.12.31 |
---|---|
[Objective-C] 콘솔창에 변수출력 (0) | 2011.07.17 |
[Objective-C] 객체의 개념 (0) | 2011.07.01 |
[Objective-C] 객체지향에 대한 여러 가지 견해 (0) | 2011.06.30 |
Objective C 카테고리에 글을 쓰기 시작 (3) | 2011.06.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- iBATIS
- IT
- zero
- iOS 개발
- 아이폰
- Objective-C
- 아이폰 개발
- jQuery
- iPhone
- MAC OSX 10.7
- oracle
- 제이쿼리
- Java
- 자바스크립트
- Programming
- 오브젝트 C
- Objective C
- 자바
- JSP
- JavaScript
- tomcat
- MySQL
- SQL
- 아이폰 어플리케이션
- Spring Framework
- Object C
- Spring
- 오블완
- 티스토리챌린지
- 오브젝티브 C
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함