일반- Hierarchy(계층구조)의 대하여
- 프로그래밍/프로그래밍일반
- 2011. 1. 8. 09:57
Hierarchy
//Hierarchy가 무엇일까?
//Hierarchy가 없다면?
//Hierarchy의 예
1.Hierarchy가 뭐야?
계층제, 상급제, 계층이라고 사전에 나와있다. 생뚱맞네여;
말그대로 계층 구조 라는겁니다.
아.. 한문이라 말 그대로가 안되는군요... 한문이 이래서 싫습니다. 한문을 알아야만하거든요
1 단계,2단계 이런식으로 단계가 있는겁니다. 게임에서 레벨같은거죠, 레벨 1에서 한번에 7,80으로 점프할순 없죠 1,2,3,4 ... 이런식으로 점차 단계가 올라가다가 레벨이 다운되면 바로 밑 레벨로 가는 안좋은 경우도 생기죠^^
계단도 계층 구조랍니다. 1층에서 5층을 가려면 한층 한층 올라가야 하죠
또 3층에서는 2층과 4층 자신의 바로 위와 아래만 갈수있답니다.
5층에 올라가려면 4층에 가야지만 5층에 올라갈수있죠?
1층에 가려면 2층에 가야지만 1층으로 갈수있고요
어떤 것들을 계층구조로 만들어 놓으면 이렇게 자신의 바로 위와 아래만 접근할수있답니다.
그렇데 좋은점은 자신은 자신의 바로 위와 아래만 신경쓰면 된다는거예요 그 이하나 그이상에 있는것은 신경쓰지 않아도 되죠^^
아파트 4층에사는 저는 5층에서 시끄럽게 굴지 않으면 되고 3층에 폐가 되도록 뛰어다니지만 않으면 되죠, 6층이나 2층에 사는 사람은 신경쓰지 않아도 돼요^^
회사도 계층구조로 되어있어요 사장,부장,과장,대리 대충 이렇게 되어있다고 쳐볼까요?
사 장님이 "매출을 100% 늘려" 라고 부장님에게 지시하면 부장님은 어떻게 해서라도 해 내야겠죠? 여러가지 준비를 해서 과장님한테 지시하고 과장님도 대리에게 지시를 할거예요 그럼 대리는 시키는 대로 수단과 방법을 가리지 않고 지시한것을 해내야죠 하지만 부장님은 대리가 어떻게 일을 처리했는지 세세하게 알필요없죠 과장이 알아서 보고를 할테니까요 사장님도 과장이 어떻게 일을 처리했는지 몰라도 돼고요 역시나 부장이 보고를 할꺼예요^^ 만약에 대리가 일을 잘못했다면 대리는 과장님한테 혼나고 과장은 부장님에게 부장은 사장님에게 혼나겠지만요^^
컴퓨터의 구조도(눈에 보이는 구조 말고요^^) 계층 구조로 되어있답니다. low level에서 하는일을 high level에서는 신경쓰지 않아도돼요. 컴퓨터의 low level은 일반인이 이해하기에는 불가능 할정도로 상당히 복잡하답니다. 하지만 우리는 아무렇지 않게 컴퓨터를 쓰고있죠?^^ 다 계층구조 때문이랍니다.
2.Hierarchy가 없다면?
큰일나죠.. 렙 1짜리 검사가 렙업 다한 법사한테 단검 들고 댐비는 꼴입니다.
108계단 맨위에서 맨 아래로 점프하면 다리 부러지는걸로 안끝나죠 ㅎㅎ
컴퓨터는 이미 개인이 혼자 개발하기에는 불가능에 가까울 정도로 복잡해져 있습니다.
아무리 유능한 사람이라고해도 모든 부분에 능할수는 없죠 , 그나마 계층적으로 설계되어 있기 때문에 자기가 개발하는 부분과 인접하지 않는 부분은 신경쓰지 않아도 되기 때문에 컴퓨터 개발이 진행될수 있는 것 입니다. ^^ 프로그래밍도 마찬가지고요ㅎ
//1차로 여기까지 씀;
구조에는 Hierarchy 이외에도 많은 구조들이 있고 Hierarchy 만으로는 부족한 부분이 있어서 Hierarchy만이 쓰이는 경우도있고 다른것들과 같이 쓰이는 경우도있어요. 그리고 어떤경우에서는 Hierarchy가 안좋을 때도 많답니다. 절대적이란건 없으니까요^^
3.Hierarchy의 예
'Hierarchy는 보통 순차적으로 단계를 밟아야 하는 곳에 들어가는 경우가 많다'라고 하면 저 스스로 한 70점 정도 줄수있겠네요.(아쉽게도 아직 실력이 부족해서ㅎㅎ)
프로그래밍에서는 컴파일 과정이 비슷하게 맞네요. (컴파일이란 우리가 만든 고급언어 소스를 기계가 이해할수있는 0,1로 이해 할수있는 이진파일로 바꿔주는 과정이예요)
컴파일과정은 각 단계별로 나뉘어져 있어서 일반적으로는 한번에 하지만 순차적으로 각 단계별 작업을 할 수도있어요. 나중에 가면 그렇게 하는 것이 왜 좋은지도 배우실수있어요
가장 유명한 Hierarchy는 Internet OSI 7 Layer라는게 있는데요 인터넷을 구성하는 장비,처리등을 7개의 Layer(층)으로 나눠 놓은거예요. 각각의 Layer가 담당하는 기능은 다르고 인접한 Layer끼리만 신경을 쓰기 때문에 좀더 간단하게 인터넷을 개발할 수있게 되었어요. OSI 7 Layer는 개념적인 규정에 맞춰서 하드웨어나 소프트웨어들을 개발하기 때문에 2계층 하드웨어를 만드는곳에서는 1,2,3계층만 주로 신경쓰면되고 5계층의 프로그램을 만드는 프로그래머는 5,4계층만을 주로 신경쓰면 되는거랍니다.(인터넷 중에 Web은 5,6,7계층을 5계층으로 통합해서 처리)
OSI 7 Layer는 나중에 많이 접하실태니 여기서 다룰필요는 없을꺼 같네요 ㅎㅎ
4. 맺으며...
처음에 프로그래밍을 공부하시는 분들은 Hierarchy가 어딧냐고 하실꺼예요 눈에 보이는 구조로도 있지만 주로 눈에 안보이는 구조로 되어있답니다. 그리고 Hierarchy를 실제로 피부로 느끼는것은 글쎄요 언제가 될까요 ㅎㅎ 컴퓨터의 구조라는게 사용자가 그것을 느끼지 못하면 못할수록더 잘 만들어진거니까ㅎㅎ
정리하자면 Hierarchy는 일반 사용자는 몰라도 되지만 이미 사용하고 있어야 하고 프로그래머는 알고있어야 합니다. 이것을 통해서 더 쉽게 프로그래밍을 할수있고 필요할 때에는 Hierarchy적으로 프로그램을 만들어야 하니까요^^
오랜만에 예~~~~전에 써놓은거 마저 썼는데 ㅎㅎ
역시 전 매일매일 쓰는건 안되나 봐요 한번에 쫙! 써야 하는데 ㅎㅎ
출저:대용이의 Semantic Widgets 삽질 상자 ㅋ :: [09호]Hierarchy, 계층구조에대해서 [3]
이 글을 공유하기