디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

코딩 다했으니,정보 은닉 관련해서 말나온김에 예전에 읽었던 논문 요약해봄

ㅆㅇㅆ(124.216) 2024.12.29 05:27:41
조회 354 추천 6 댓글 6
														


3db2c83eabc236a14e81d2b628f17768694f6c


정보 은닉이라는 개념은


1971년 데이비드 파나스가 발표했었는데, 이후에


1972년 [On the Criteria To be Used in Decomposing Systems into Modules] 라는 논문이 나옴.


소프트웨어 엔지니어링의 기념비적인 논문이니까 읽어볼만 함.


이는 시스템을 모듈로 분해할때 나누는 기준을 제시한 논문임.


이게 프로그래밍 역사에 매우 중요한 것은 기본적으로


이전에는 처리 단계 즉, 플로우 차트를 그리는 제어 흐름을 기반으로 분해했음.


하지만 이같은 전통적 접근 방법이 높은 결합도(Coupling), 낮은 응집도(Cohesion)을 초래하여 소프트웨어를 유지보수하기 어렵게 만듬.


그래서 이 논문에서 'Information Hiding'이 나옴. 즉 정보 은닉임.


여기서 '모듈'이라는 것을 어떻게 정의 되어야 하는가에 대해서 설명함.


1. 바뀔 가능성이 높은 디자인적 결정에 대해서는 모듈 내부에서 은닉되어야한다.


2. 명확히 정의된 인터페이스만을 통하여 다른 모듈과 통신하여야한다.


즉 각 모듈의 내부 동작 자료 구조, 알고리즘은 외부에서 볼 수 없고, 오로지 공용 인터페이스를 통해서만 상호작용해야한단 것임.



3db2c83eb79c28a8699fe8b115ef046983947d52bc


여기서 Parnas는


KWIC 인덱스 시스템을 예시로 잡아서 2가지 분해 방식을 보여줌


1. Input->Ciruclar Shift->Alphabtizing->Output

(입력->변환->정렬->출력 정도로 이해하면됨)


각 모듈이 절차적으로 나누어질 경우 데이터 표현이나 디자인 결정을 바꾸면 여러 모듈에서 수정이 필요해지는 문제가 발생함.



3db2c83eb69c28a8699fe8b115ef04693e54c64be8


정보은닉 분해

(Information-Hiding)

데이터 저장방법,줄을 어떻게 변형(shift)할지, 정렬을 어떻게 구현할지 디자인 결정 단위로 모듈을 분리함.


내부 구현 및 데이터 형식은 외부에 노출되지 않고, 필요한 기능/데이터만 인터페이스로 제공되는데


어떤 모듈의 자료 구조나 정렬 방법을 바꾸더라도, 인터페이스만 그대로 유지한다면 다른 모듈에는 영향이 거의없음.


결국 모듈이란 무엇인가? 정보 은닉을 중심으로 정의한다면, 다른 프로젝트나 상황에서도 쉽게 재사용할 수 있음.


즉 변경이 모듈 내부에 국한되므로, 프로그램 수정시 오류가 줄고 유지보수가 수월해짐.



3db2c873abc236a14e81d2b628f1756fe49fce00


안정적인 인터페이스를 유지한 채로, 기능 단위로 정의하면 다른 프로젝트나 상황에서도 쉽게 재사용하거나 수정할 수 있음.


이 논문이 현재 소프트 웨어 엔지니어링의 토대를 만들어낸 논문중 하나로 하고


여기서 절차적 접근에서 구조적 접근으로 바뀐거임.


가끔 이 논문이 OOP를 까는 반박 사례라고 하는데, 이 논문이랑 OOP랑 무슨 연관이 있냐 하는데


OOP는


Public으로 불필요하게 메서드나 필드가 노출되고, 실질적으로 상속으로 인해서 내부 구현이 외부로 들어나서


클래스자체가 정보 은닉이라고 생각하는, 형식적인 캡슐화를 구현했다고해서 OOP가 이 논문을 잘못 해석했다는 비판이 있었음.


즉 클래스를 기능 블록이라고 생각하게 된다면(일반적으로 프갤러들이 주로 말하는)


결국 Panrnas가 지적한 '단계 중심 분해'와 차이가 없게되는거.


즉 일반적으로 한국 책들이나 강사가 소개하는


클래스=데이터+메서드의 단순묶음은 잘못된 접근이고, 형식적인 접근임.


클래스라는 것은 도메인+개념이 책임지는 동작/규칙+필요 인터페이스만 노출된 내부 구현이 이 논문에서 원했던 진정한 정보은닉 이라고 봐야함.

(임의로 요약한거지만 얼추 추상화된 개념들을 요약하면 이럼)


따라서, 잘못쓰여진 OOP는 제대로된 정보은닉을 구현하지 못한거고


이를 극복하고자 상속보다는 컴포지션하라. 라는 말이 나온거.





추천 비추천

6

고정닉 1

1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 계엄 때문에 가장 큰 타격 입은 것 같은 스타는? 운영자 24/12/30 - -
공지 프로그래밍 갤러리 이용 안내 [84] 운영자 20.09.28 40389 63
2793487 와이프한테 또 질싸했다 hrin(220.120) 02:03 6 0
2793486 윈 터 닮은녀 떡방중ㄷ.g i f ㅇㅇ(222.109) 02:03 2 0
2793484 죽기전 희생자들의 소소한 카톡을 보니 가슴이 아프구나 헬마스터갤로그로 이동합니다. 01:58 5 0
2793477 자바로 계산기 하나 쳐만드는것도 텬됴대한의아들갤로그로 이동합니다. 01:35 14 0
2793475 잠깐만 공개하고 곧 삭제한다 프갤러(94.156) 01:32 10 0
2793474 C# 입문책or강의 ㅊㅊ좀 ㅇㅇ(223.38) 01:32 8 0
2793470 디시광고 역할대행 서비그 개웃기네 [2] 헬마스터갤로그로 이동합니다. 01:23 17 0
2793448 홍어새끼들은 ㄹㅇ 존나 이기적이네 [4] ㅇㅇ갤로그로 이동합니다. 00:46 31 0
2793431 ㅆㅇㅆ는 특이한 사람인듯 ㅇㅇ(118.235) 00:19 19 0
2793422 200줄만 더 채우고 자야겠다. ㅆㅇㅆ(124.216) 00:01 13 0
2793408 깃을 써야한다고 생각은하는데 왤케 안써질까 [4] ㅆㅇㅆ(124.216) 12.29 34 0
2793401 담배 끊고 그 빈자리 보통 뭘로 채우냐?? 맛있는거 한가득 먹을까?? [2] ㅇㅇ(123.213) 12.29 19 0
2793400 싱글턴 패턴 이거 맞나요? [8] 프갤러(14.44) 12.29 74 0
2793395 난 담배도 못피는 몸이네... 바로 반응오네 ㅋㅋ... ㅇㅇ(223.38) 12.29 15 0
2793394 전공자인데 국비 들어가도 될까? [4] 프갤러(175.127) 12.29 42 0
2793393 프로그래밍을 잘하는 방법을 누가 좀 알려줬으면 ㅆㅇㅆ(124.216) 12.29 18 0
2793391 삼가 고인의 명복을 빕니다... [4] 나트륨찡갤로그로 이동합니다. 12.29 51 0
2793387 오늘은 일찍자야지 jonny갤로그로 이동합니다. 12.29 10 0
2793385 나 죽을병 걸린거야?? 가래가 무슨 도가니처럼 단단하고 피 그 자체야 [3] ㅇㅇ(223.38) 12.29 33 0
2793379 난 슬슬 퇴근해야겠군. 프갤러(121.172) 12.29 30 1
2793376 자주써서 만들어둔 OOP 패턴 템플릿 일부 [3] ㅆㅇㅆ(124.216) 12.29 54 0
2793375 자기 목숨 살겠다고 남의 목숨은 함부로인 간첩새키들이지- [4] 프갤러(121.172) 12.29 52 3
2793370 이거 볼링놀이 하는거지? 류123료(118.235) 12.29 33 1
2793368 중도 그자체인 한덕수가 어딜 지지하는지만 봐도 답이 나오지않나? hrin(118.235) 12.29 16 1
2793367 나라를 팔고 국민들 목숨은 안중에도 없는 간첩 개새키들 프갤러(121.172) 12.29 22 0
2793364 내 생애 올해처럼 다사다난한 한해가 없었다 [15] 아스카영원히사랑해갤로그로 이동합니다. 12.29 69 0
2793361 간첩들 입장이었다- 정정한다- 프갤러(121.172) 12.29 42 1
2793358 금일 라이브, 영상은 진행하지 않습니다. [7] 멍청한유라ㅋ갤로그로 이동합니다. 12.29 38 0
2793352 결국 쌓이고 쌓이고 발생하는 문제들 [1] jonny갤로그로 이동합니다. 12.29 29 0
2793350 작업이나 해야겠다. ㅆㅇㅆ(124.216) 12.29 19 0
2793348 요새 느끼는것은 결핍이 인간을 정의한다. ㅆㅇㅆ(124.216) 12.29 16 0
2793344 팬티 매일 안 갈아입으니까 쥬지에서 냄새난대.. [1] hrin(118.235) 12.29 33 0
2793340 "북한·블랙요원·무속 원인"…무안 공항 참사에 또고개든 '음모론' 발명도둑잡기갤로그로 이동합니다. 12.29 24 0
2793339 나는 지능이 낮은 치명적인 결함을 안고 있다. 이는 국가에서 복지로 [2] ㅆㅇㅆ(124.216) 12.29 42 0
2793336 결과론 적이지만 차라리 물에 착륙하는게 낳을뻔했군 [8] 헬마스터갤로그로 이동합니다. 12.29 57 0
2793334 우리는 항상 이념과 기술적 낙관론으로 현실도피를 함. ㅆㅇㅆ(124.216) 12.29 23 0
2793333 에어버스였으면 살았다 발명도둑잡기갤로그로 이동합니다. 12.29 38 0
2793329 요새보면 특이점주의도 사실상 기복신앙적 특성을 띄고 있음 [1] ㅆㅇㅆ(124.216) 12.29 26 0
2793326 저가항공 패키지는 이용안해야겠다 [1] 헬마스터갤로그로 이동합니다. 12.29 40 0
2793324 며칠전 본 <나홀로 집에>에서 발명도둑잡기갤로그로 이동합니다. 12.29 21 0
2793320 요새 느끼는것이 자본주의는 세련된 착취방식인듯 [1] ㅆㅇㅆ(124.216) 12.29 29 0
2793319 상경안하고 부산에서 취직했음 고진감래(58.235) 12.29 33 0
2793317 뭐 이러나 저러나 내 계획은 두 가지군- 프갤러(121.172) 12.29 31 2
2793316 작금의 사태를 보며 민주주의가 거저 주어지는 것이 아닌 [2] 헬마스터갤로그로 이동합니다. 12.29 31 0
2793314 음기 충전 발명도둑잡기갤로그로 이동합니다. 12.29 14 0
2793313 대한민국을 최고의 국가로 만들려면 얼마 정도가 필요하나- 프갤러(121.172) 12.29 27 1
2793311 물이지나치게 맑으면 고기가 없고 [1] 헬마스터갤로그로 이동합니다. 12.29 22 0
2793308 외신 "또 보잉"…사고기종 국내 101대 중 99대가 LCC 소유 발명도둑잡기갤로그로 이동합니다. 12.29 34 0
2793307 Go언어보다 C++이 더 매력적임 [3] 재현갤로그로 이동합니다. 12.29 42 0
뉴스 스테이씨 윤, ‘스타라이트 보이즈’ 최종화까지 든든하게 채웠다 디시트렌드 12.29
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2