[독후감]프로그램을 만드는 과정에 대한 고찰

in book-reports •  4 years ago  (edited)

프로그램을 만드는 과정에 대한 고찰

프로그램을 만드는 과정에 대한 고찰

분류: 독후감
키워드: 프로그래밍의 7가지 절차, 프로그래밍의 지향점

출처 : [다 함께 프로그래밍 - 기초 튼튼 코드 튼튼] - 타니지리 카오리 (지은이),정인식 (옮긴이),타니지리 토요히사 (감수) / 제이펍, 2016

  • 목표
    • 개발 중간에 길을 잃거나 완성 전에 흐지부지 하지 않고 개발을 진행하는 방법을 찾아보자.
      • 프로그래밍의 7가지 절차 정리
      • 책에서 소개하는 개발방법론 이해
    • 기본기 점검
      • 프로그래밍에 필요한 기본기 및 지식 확인

      • 소개되는 개념을 주언어인 JAVA로 설명할 수 있는지 확인

        → 프로그램 언어에 익숙해지는 건 다른 페이지에서 정리.



프로그래머에 필요한 것

프로그래밍의 기본

  • 프로그램 작성에 필요한 사고 방법
  • 프로그램 세계에서 사용하는 언어
  • 프로그래밍 언어 사용법

지속 가능의 원동력

  • 목표는 작게 잡는 것이 좋다
  • 프로그래밍은 반드시 완성 시킨다.
  • 완성된 결과물에서 성취를 얻을 수 있음
  • 작은 노력을 계속해서 쌓아 가는 것

프로그래밍의 7가지 절차

1. 테마를 정한다
2. 줄거리를 만든다
3. 시나리오를 작성한다
4. 프로그래밍 언어로 번역한다
5. 움직여본다
6. 확인한다
7. 버전 업 (리팩토링)
  • 절차를 구분하면

    • 4 ~ 7 은 개발 도구로 접근할 수 있는 영역.
    • 1 ~ 3은 프로그램 제작에서 중요한 개념.
  • 작업 진척이 안될 때 어디서 문제가 있는지 판단하고 접근하자.

    • 컴퓨터나 프로그램(4~7) 의 문제로 막힌건지
    • 생각하는 내용(1~3) 자체에 이상한 부분이 있어 막힌건지

테마, 줄거리, 시나리오 설정

테마

  • 무엇을 할까? 에 대한 생각을 명확히 하는 것

    ex) 용돈 기입장을 만들자

    → 입출금 기록이 되는 기입장

    → 소비 항목별로 비용을 입력할 수 있는 기입장

    → 한 달간 얻은 내용과 쓴 내용을 기록하는 기입장

  • 막연한 생각을 구체화하는 작업이므로 처음부터 욕심을 부리면 패망

  • 이것이 없으면 xxx 라 할 수 없다. 하는 수준까지 기능을 좁히는 것

    ex) 용돈 기입장이라면 입금액 또는 출금액을 입력하면 현재 잔액이 표시되어야 한다.

줄거리

  • 설정한 테마를 완성하기 위해서 필요한 작업을 고르고 거르는 작업

    • 전체 흐름에 모순은 없는지?
    • 부족한 점은 없는지?
  • 명령은 순차적으로 수행되므로 순서를 틀리지 말아야 한다.

  • 세세한 것까진 신경쓰지 않는다.

시나리오

  • 컴퓨터의 성격

    1. 지시한 것만 한다
      • 자세하게 지시하는 것이 필요
      • 동일 내용이라도 반복해서 명령해야 한다
    2. 애매한 표현은 이해하지 못한다.
      • 추상적인 단어는 사용하지 않고 확실하게 전달하는 것이 중요
    3. 장문 독해를 잘 못한다
      • 즉, 무엇을 어떻게 한다 수준까지만
  • 시나리오 또한 순서를 틀리지 말아야 한다.

줄거리와 시나리오 작성을 위한 힌트

  • 데이터의 변화를 고려

    • 프로그램은 입력 → 연산 → 출력 순으로 처리된다
    • 처리 흐름을 잘 모를 경우에는 데이터의 변화를 주목해본다
    • 데이터 흐름을 그림으로 나타내기 : Data Flow Diagram
  • 처리 흐름을 고려

    • 일의 순서와 내용을 제대로 알 수 있어야 한다. (이를 위해 어떤 방법을 써도 무관)
    • 처리의 흐름을 나타내는 그림 : Flowchart
  • 테마, 줄거리, 시나리오가 작성되면 남은 일은 프로그래밍 언어로 교체하는 작업 뿐!

웹 프로그램이 동작하는 구조

웹 프로그래밍 기초

  • 클라이언트 → ← 서버 간 통신
  • HTTP Protocol
  • 정적 웹페이지와 동적 웹페이지

웹 프로그램도 프로그램

  • 절차적 프로그래밍. (프로그래밍의 7가지 절차는 어떤 프로그램에도 대입할 수 있음)
  • 최종적으로 브라우저에 표시할 내용은 무엇인가? 를 고려할 것.

객체 지향 프로그래밍

  • 객체 (작업을 수행하는 주체)의 특성과 하는 일을 결정해가는 방식.
  • 객체 간 메시지 전달, 객체의 행위와 이벤트, 처리 책임 확인 등
  • 클래스를 객체를 표현하는 금형 으로 사용 (객체 ≠ 클래스)

프로그래밍의 지향점

  • 프로그램의 오류, 버그의 발생에 의연해지기

  • 객체가 움직이는 구조를 고려하는 사고. (왜 그렇게 되는가?)

  • 코딩은 머릿 속에 흐름이 그려진 뒤에 시작하자. (사색의 중요성)

  • 좋은 프로그램은

    ≠ 이것도 가능하고 저것도 가능한 프로그램

    = 정말 필요한 것이 문제없이, 확실하게 실행 가능한 프로그램

  • 사용자가 원하는 결과를 제대로 반환하는 것이 구현되면 사용자의 편의도 고려해보자

  • 혼자서 완성하고 끝내지 말고 다른 의견을 구하자.

    • 다른 사람의 의견은 침착하게, 천천히 듣고 잘 생각해볼 것!
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!