Insight : 도움이 되는 글

Abstraction and Decomposion

본 토픽은 현재 준비중입니다.공동공부에 참여하시면 완성 되었을 때 알려드립니다.

※ 이 글은 서울대학교 홍성수 교수님께서 Operating System 강의 중 하셨던 말씀을 재구성한 내용입니다.

 

@ 시작전에 철학적인 부분들을 짚고 넘어가도록 하겠습니다.

    // 백문이불여일run

        > 다음주 목요일 첫번째 프로젝트에 대해서 얘기하게 될 것입니다.

 

@ OS는 전기 공학부에서 배운 과목들과는 차이가 많이 납니다

    // 개념적인 부분에서

        > 그렇기 때문에 이를 배울 때 구현을 염두에 두어야 합니다.

    

@ 하지만 구현을 생각하기는 쉽지 않습니다.

    // 그래서 나누어 생각해야 합니다.

        > Data Structure와

        > Algoritm은 어떻게 될 것인지를 (어떻에 Operation할 것인가)

    // 이렇게 생각하면 OS를 공부할 때 많은 도움이 됩니다.

    // 개념적 틀을 가지고 구체화 시킬 필요가 있습니다.

 

@ 스티브 잡스가 왜 존경을 받을까요?

    // 창조적인 생각을 하는 인물이기 때문입니다.

        > 하지만 이 개념은 매우 모호합니다.

    // 철학적인 미션을 부여받았을 때는

        > 그를 구체화 할 생각상의 form이 필요합니다.

 

@ OS도 비슷한 측면이 있습니다.

    // 복잡하기 때문에, 사고의 틀이 필요합니다.

        > Complexity를 가지는 OS는 아래의 것들로 해결합니다.

            .. Abstraction

            .. Decomposition

            

@ Abstraction을 시스템 디자인에 적용하면

    // Layered Architecture가 나옵니다.

        > Application

        > Middle Ware

        > OS

        > H/W

    // 각 레이어의 역할은 무엇일까요?

        > OS는 H/W layer를 Abstract해서 단순한 Interface만 제공하게 됩니다.

        > 이를 가능하게 만들기 위해 각 Layer 사이에는

            .. API가 존재하게 됩니다.

    // 바로 위의 계층은 아래 계층에 종속적입니다.

        > 이를 Layered in Principle이라 부르며, 이를 따라야 합니다.

    

@ 이를 Mental Tenplate과 어떻게 연결을 시킬까요?

    // 어떤 어려운 문제를 접근할 때,

        > 먼저 전체적인 흐름을 봅니다.

            .. 그리고 문제를 구체화 시키기 시작합니다.

            .. 사람은 기본적으로 Top-down적 사고를 합니다.

    // 어떤 job을 그룹으로 묶는 것을

        > 추상화라고 할 수 있습니다.

            .. 피라미드 프린시플

 

@ 우리가 한 Layer의 추상화를 이해하면

    // 다음 Layer로 넘어갈 수 있도록 하여야 합니다.

        > Synthesis implementation

            .. OS를 공부할 때도 이 개념을 잘 이해하면 좋을 것 같습니다.

    

@ 그리고 위에서 말한 사고의 방법은,

    // 다른 분야에서도, 사용할 수 있어야 합니다.

        > 학부생과 대학원생의 차이는

            .. 학부생은 지식을 소비하고

            .. 대학원생은 지식을 생산해야 합니다.

                .. 이를 가능하게 하기 위해서는 추상화 -> 구체화를 해야 합니다.

                .. 이를 잘할 때, 연구를 하게 되고

                .. 결과적으로 창조적인 사람이 됩니다.

                

@ 어떤 문제를 바라보더라도

    // 구체화 시켜야 합니다.

        > 그리고 해결 방법을 찾습니다.

            .. 그리고 이를 실행합니다.

    // 전체적으로는 풀리기 힘든 문제일 수 있습니다.

        > 하지만 나누면 풀릴 수 있는 문제가 생깁니다.

        > 그래도 나오지 않으면 논문을 읽습니다.

            .. 다른 이의 사례를 살피는 것이지요.

    // 이것이 연구의 플로우입니다.

 

@ 결론적으로 문제를 잘 보아야 합니다.(스토리라인)

    // 이를 나누고 구체화해야합니다.

        > 해결을 하거나

        > 해결이 힘들면 다른 이의 사례를 찾아보아야 합니다.(논문)

            .. 그렇게 하나하나 해결합니다.

    // 그렇게 모든 것이 해결되면,

        > 새로운 지식을 생산하게 되는 것입니다.

            .. 그리고 그것은 다수의 기존 연구와

            .. 아주 작은 나의 독창적 해결방법이 섞이는 경우가 대부분입니다.

  • 봤어요 0명

댓글

댓글 본문