프로그램을 만드는 과정에 대한 고찰
분류: 독후감
키워드: 프로그래밍의 7가지 절차, 프로그래밍의 지향점
출처 : [다 함께 프로그래밍 - 기초 튼튼 코드 튼튼] - 타니지리 카오리 (지은이),정인식 (옮긴이),타니지리 토요히사 (감수) / 제이펍, 2016
- 목표
- 개발 중간에 길을 잃거나 완성 전에 흐지부지 하지 않고 개발을 진행하는 방법을 찾아보자.
- 프로그래밍의 7가지 절차 정리
- 책에서 소개하는 개발방법론 이해
- 기본기 점검
프로그래밍에 필요한 기본기 및 지식 확인
소개되는 개념을 주언어인 JAVA로 설명할 수 있는지 확인→ 프로그램 언어에 익숙해지는 건 다른 페이지에서 정리.
- 개발 중간에 길을 잃거나 완성 전에 흐지부지 하지 않고 개발을 진행하는 방법을 찾아보자.
프로그래머에 필요한 것
프로그래밍의 기본
- 프로그램 작성에 필요한 사고 방법
- 프로그램 세계에서 사용하는 언어
- 프로그래밍 언어 사용법
지속 가능의 원동력
- 목표는 작게 잡는 것이 좋다
- 프로그래밍은 반드시 완성 시킨다.
- 완성된 결과물에서 성취를 얻을 수 있음
- 작은 노력을 계속해서 쌓아 가는 것
프로그래밍의 7가지 절차
1. 테마를 정한다
2. 줄거리를 만든다
3. 시나리오를 작성한다
4. 프로그래밍 언어로 번역한다
5. 움직여본다
6. 확인한다
7. 버전 업 (리팩토링)
절차를 구분하면
- 4 ~ 7 은 개발 도구로 접근할 수 있는 영역.
- 1 ~ 3은 프로그램 제작에서 중요한 개념.
작업 진척이 안될 때 어디서 문제가 있는지 판단하고 접근하자.
- 컴퓨터나 프로그램(4~7) 의 문제로 막힌건지
- 생각하는 내용(1~3) 자체에 이상한 부분이 있어 막힌건지
테마, 줄거리, 시나리오 설정
테마
무엇을 할까?
에 대한 생각을 명확히 하는 것ex) 용돈 기입장을 만들자
→ 입출금 기록이 되는 기입장
→ 소비 항목별로 비용을 입력할 수 있는 기입장
→ 한 달간 얻은 내용과 쓴 내용을 기록하는 기입장
막연한 생각을 구체화하는 작업이므로
처음부터 욕심을 부리면 패망
이것이 없으면 xxx 라 할 수 없다.
하는 수준까지 기능을 좁히는 것ex) 용돈 기입장이라면 입금액 또는 출금액을 입력하면 현재 잔액이 표시되어야 한다.
줄거리
설정한 테마를 완성하기 위해서 필요한 작업을 고르고 거르는 작업
- 전체 흐름에 모순은 없는지?
- 부족한 점은 없는지?
명령은
순차적
으로 수행되므로 순서를 틀리지 말아야 한다.세세한 것까진 신경쓰지 않는다.
시나리오
컴퓨터의 성격
- 지시한 것만 한다
- 자세하게 지시하는 것이 필요
- 동일 내용이라도 반복해서 명령해야 한다
- 애매한 표현은 이해하지 못한다.
- 추상적인 단어는 사용하지 않고 확실하게 전달하는 것이 중요
- 장문 독해를 잘 못한다
- 즉,
무엇을 어떻게 한다
수준까지만
- 즉,
- 지시한 것만 한다
시나리오 또한 순서를 틀리지 말아야 한다.
줄거리와 시나리오 작성을 위한 힌트
데이터의 변화를 고려
- 프로그램은
입력 → 연산 → 출력
순으로 처리된다 - 처리 흐름을 잘 모를 경우에는 데이터의 변화를 주목해본다
- 데이터 흐름을 그림으로 나타내기 : Data Flow Diagram
- 프로그램은
처리 흐름을 고려
- 일의 순서와 내용을 제대로 알 수 있어야 한다. (이를 위해 어떤 방법을 써도 무관)
- 처리의 흐름을 나타내는 그림 : Flowchart
테마, 줄거리, 시나리오가 작성되면 남은 일은 프로그래밍 언어로 교체하는 작업 뿐!
웹 프로그램이 동작하는 구조
웹 프로그래밍 기초
- 클라이언트 → ← 서버 간 통신
- HTTP Protocol
- 정적 웹페이지와 동적 웹페이지
웹 프로그램도 프로그램
- 절차적 프로그래밍. (프로그래밍의 7가지 절차는 어떤 프로그램에도 대입할 수 있음)
- 최종적으로 브라우저에 표시할 내용은 무엇인가? 를 고려할 것.
객체 지향 프로그래밍
- 객체 (작업을 수행하는 주체)의 특성과 하는 일을 결정해가는 방식.
- 객체 간 메시지 전달, 객체의 행위와 이벤트, 처리 책임 확인 등
- 클래스를 객체를 표현하는
금형
으로 사용 (객체 ≠ 클래스)
프로그래밍의 지향점
프로그램의 오류, 버그의 발생에 의연해지기
객체가 움직이는 구조를 고려하는 사고. (왜 그렇게 되는가?)
코딩은 머릿 속에 흐름이 그려진 뒤에 시작하자. (사색의 중요성)
좋은 프로그램은
≠ 이것도 가능하고 저것도 가능한 프로그램
= 정말 필요한 것이 문제없이, 확실하게 실행 가능한 프로그램
사용자가 원하는 결과를 제대로 반환하는 것이 구현되면 사용자의 편의도 고려해보자
혼자서 완성하고 끝내지 말고 다른 의견을 구하자.
- 다른 사람의 의견은 침착하게, 천천히 듣고 잘 생각해볼 것!