ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 디자인 패턴은 왜 배우는 걸까요?
    카테고리 없음 2022. 8. 27. 08:31

    디자인 패턴을 공부해야 하는 이유는 다음 질문과 관련이 있습니다.

    컴퓨터 프로그램을 짜는 것은 왜 어려울까?

    코딩을 배우고 나서, 작은 프로그램이라도 만들어 보려고 노력해 본 사람은 모두 공감할 것입니다.

     

    컴퓨터 프로그램을 만드는데 느끼는 가장 큰 어려움은 다음 두 가지로 나누어 설명할 수 있습니다.

    첫째로 우선 프로그램을 만드는 목적이 정의가 잘 안 된 경우입니다. 무엇을 만들고자 하는지, 무엇이 정확한 문제인지 클라이언트가 정확히 모르는 경우도 있고, 문제 정의가 불충분하거나 일관성이 없는 경우 입니다.

    앞으로 우리가 배울 디자인 방법론은 정확하게 우리가 프로그램을 통해 무엇을 하고자 하는지 명확하게 하는 데 있어서 큰 도움을 줄 것입니다.

     

    두 번째는 우리가 풀고자 하는 문제를 어떻게 세분화할 것인가에 대한 것입니다. 대부분의 중요한 문제는 한 번에 풀기에는 너무 큽니다. 우리의 뇌는 한 번에 한 가지 작은 부분에만 집중할 수 있습니다. 복잡한 큰 문제를 풀기 위해서 문제를 작은 단위로 나누어야 합니다.

     

    디자인 패턴은 큰 프로그램을 작은 단위로 잘 나누는 방법을 알려줍니다. 단지 작은 단위로 나누는 것이 아니고 각 단위는 서로 긴밀하게 연결되고 단위별 테스트가 이루어집니다. 그 결과로 큰 프로그램도 이해하기 쉽게 구성이 되고 앞으로 개선을 하는 것도 편해집니다. 체계적인 프로그램 설계(Systematic Program Design)가 필요한 이유를 알 것 같습니다.

     

    어떤 사람이 좋은 개발자 일까요? 체계적인 프로그램 설계를 할 줄 아는 개발자가 좋은 개발자이겠지요?

     

    디자인 패턴은 앞으로 우리가 배울 여러 가지 프로그래밍 언어와 상관없이 큰 영향을 줄 것입니다.

     

    앞으로 디자인 패턴을 설명하는데 파이썬이나 자바같이 유명한 언어를 사용하지 않고 일부러 BSL(Beginning Student Language)를 사용하는데요, 그 이유는 우선 심플해서 배우기 쉽고, 또 쓰기 쉬워서 이고요. 그리고 다른 모든 프로그래밍 언어의 주요한 특성을 가지고 있어서 다른 언어를 배우는데 도움이 될 것이기 때문입니다.

    그럼 우리 함께 좋은 프로그램을 만들기 위한 여정으로 떠나 볼까요? 🙂

     


    Reference

    - UBCx How to Code: Simple Data, 0: Introduction, Welcome, Gregor Kiczales

    • This course is about Systematic program design. Let’s talk about what makes it hard to write program.
    • What do we want our program to do?
      • You are typically given a poorly formed problem.
        • The task description is somewhat vague or might be incomplete or sometimes it’s just even inconsistent.
      • The design method we’re going to learn, helps us figure out exactly that, what it is we want out program to do.
    • How do we break down a problem?
      • The program is too big for us to solve in one go.
        • The way our brains work is we can go only focus on one small part of the program at once. So we have to find some way to manage that complexity.
      • The second thig the design method does is to break the program down into well-chosen smaller pieces, not just smaller pieces, but well-chosen smaller pieces. Then, write one part of the program for each piece of the problem. The pieces end up fitting together well and being well tested. The resulting program is then easy to read and easy to modify.
      • The programs that end up being formed of nice pieces that fit together well, are well tested, and easy to modify that’s really the goal.
      • That whole trip from poorly-formed problem to well-structured solution that's systematic program design.
      • That’s what separated really good programmers from people who just type and hope for the best.
      • The design pattern you’ll learn in this course can be used with any other programming language you may learn in the future.
      • In the first week, we’ll learn BSL(Beginning Student Language). And then we have more time to focus on learning the design method.
      • There are two reasons why we use BSL. One, because it’s simple to learn. And two, it has core features of nearly all other languages. It’ll make it easier for you to move it to other languages in the future.
Designed by Tistory.