"언어를 잘하려면 그 언어로 생각하고 생활해야 한다"고 말하죠.
프로그래밍 언어도 마찬가지 입니다.
단어 (keyword) 와 문법 (syntax) 이 있고 흐름 (flow) 도 있습니다.
여러가지 언어마다 어느정도 차이는 있지만 크게 보면 비슷한 점이 많습니다.
그러면 프로그래밍 언어로 생각하는 법을 한번 배워볼까요?
컴퓨터처럼 생각하기
자바, 파이썬, 씨언어등 여러가지가 있지만 구체적으로 생각하지 말고 추상적이게 생각해봅시다. 슈도코드 (의사코드, Pseudo-code) 라고 실제로 존재하는 프로그래밍 언어는 아니지만 알고리즘, 논리를 프로그래밍의 틀에 맞게 짜는데 사용되는 언어가 있습니다. 이 언어에선 단어, 문법도 내가 (독자들이 이해할 수 있는 선에서) 원하는 대로 정할 수 있지만, 흐름이 중요합니다.
실생활의 예를 들어볼게요. 오늘 제가 만약 전기밥솥으로 밥을 지으려고 합니다. 밥짓기를 프로그래밍 하려면 어떻게 해야 할까요?
일단 밥짓기의 과정을 생각해봅니다. 간단하게 정리해보면 다음정도로 되겠죠?
1. 쌀을 계량합니다.
2. 쌀을 씻습니다.
3. 쌀을 전기밥솥에 옮겨 담습니다.
4. 전기밥솥을 시작합니다.
5. 시간이 다 됐으면 쌀이 완성됩니다.
재료는 쌀, 물, 계량기, 전기밥솥이 되겠습니다.
여기서 행동들은 계량하기, 씻기, 옮기기, 밥솥 시작하기, 기다리기 가 있네요.
이것을 슈도코드로 옮기면 어떻게 될까요?
프로그래밍 기초 개념 세가지
일단 슈도코드의 기본을 보자면 프로그래밍에 기본적인 개념 3가지가 있습니다.
1. 함수 (function) ~ 동사
2. 변수 (variable) ~ 명사
3. 조건문 (if-conditional) 과 루프문 (loop-conditional) ~ 접속부사
우리가 다시 밥짓기 예로 돌아가서 보면,
함수는 행동으로 생각할 수 있습니다. 계량하기, 씻기, 옮기기, 밥솥 시작하기, 기다리기 모두 함수로 표현할 수 있겠네요.
변수는 재료에 해당합니다. 함수를 사용 할 수 있는 재료들이라고 생각하면 쉽겠습니다.
조건문과 루프문은 약간 더 복잡한데요. 위의 과정에 5번째에 있는 '시간이 다 됐으면' 을 조건문이나 루프문으로 볼 수 있습니다.
이걸 토대로 간단하게 슈도코드를 써보겠습니다.
슈도코드 예시 - 밥짓기
DEF 밥짓기(전기밥솥, 쌀, 물, 계량기): 계량하기(쌀, 계량기) 씻기(쌀, 물) 옮기기(쌀, 전기밥솥) 밥솥 시작하기(전기밥솥) FOR(밥솥 작동중): 1분기다리기
첫째줄에 있는 DEF 는 define 의 줄임말로 함수를 정의할때 사용됩니다. 밥짓기라는 함수를 정의하는 데, 그 함수는 총 4가지 변수 (전기밥솥, 쌀, 물, 계량기) 를 받아 사용한다고 되어있습니다.
보통적으로 함수에 쓰이는 필요한 변수는 함수 뒤 괄호 안에 차례로 표기됩니다.
계량할 때는 쌀과 계량기가 필요하겠죠? 쌀을 계량하는 행동은 "계량하기(쌀, 계량기)" 로 표시할 수 있겠네요. 씻기, 옮기기 등 비슷하게 적어보았습니다.
여섯번째 줄에 있는 FOR(밥솥 작동중) 은 루프문 입니다. FOR 뒤 괄호에 있는 조건이 충족될 동안은 계속 루프문 안에 있는 함수를 실행시키는 용도로 쓰입니다. 그렇게 해서 6-7번째 줄은 밥솥이 작동중일 동안 1분을 기다리게 되어있네요. 실생활에서 보게 되면, 이는 1분마다 밥솥이 작동중인지 확인하는 정도로 해석되겠습니다.
재밌으셨나요?
이렇게 프로그래밍, 코딩 한번도 접해보시지 못하신 분들을 위해 간단히 슈도코드의 개념을 소개해 봤습니다.
도움되셨거나 궁금하신점 있으시면 댓글 남겨주세요!
'테크' 카테고리의 다른 글
프로그래밍 독학할때 가장 중요한 점 (0) | 2020.05.23 |
---|---|
(모바일 게임추천) 귀여운 식물을 키워보자! 포켓화초 Pocket Plants (1) | 2020.04.29 |
아이폰 SE2, 애플에서 이정도 가성비 저가폰이 나온다고? 사야되나 고민되면 꼭 이글을 보세요! (0) | 2020.04.29 |
코딩/프로그래밍 독학 이렇게만 해라! - 개요 (3) | 2020.04.23 |