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를 공부할 때도 이 개념을 잘 이해하면 좋을 것 같습니다.

    

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

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

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

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

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

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

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

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

                

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

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

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

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

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

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

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

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

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

 

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

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

        > 해결을 하거나

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

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

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

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

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

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

댓글

댓글 본문
버전 관리
박천명
현재 버전
선택 버전
graphittie 자세히 보기