지난 포스팅까지 엔트리를 통해 프로그래밍 언어에서 배우는 기본적인 요소들을 하나하나 챙겨봤습니다.
하지만 아직 한 가지를 말씀 못 드렸죠.
바로 비동기(asynchronous)에 관한 것을 아직 말씀드리지 못하고 있습니다.
오늘은 일단, 비동기 프로그래밍의 맛보기 이야기와,
지난 포스팅에서 소개한 프로그래밍의 요소에 대해 간단히 정리해 보도록 하겠습니다.
비동기 프로그래밍은, 어렵습니다
비동기 프로그래밍은, 사실 제가 프로그래밍 언어를 배우기 시작할 때만 해도 기본적인 요소는 아니었습니다.
프로그래밍 언어는 초기만 해도 개발자가 직접 다루는 컴퓨터 1대를 대상으로 하는 것이었고,
1990년대 초반만 해도 인터넷과 같은 네트워크 환경은 굉장히 초보적인 형태였습니다.
CPU의 코어는 아직 1개의 코어만을 사용하던 시기였고,
CPU를 보조하던 co-processor라는 녀석이 막 나오기 시작하던 시기였습니다.
이런 와중에 처음 프로그래밍 개발을 배우는 입장에서 비동기 프로그래밍이라고 하는 것은 먼 나라 이야기였죠.
비동기 프로그래밍은, 이 얘기를 말씀드릴 때 다시 말씀드리겠습니다만, 어렵습니다.
사용자는 말할 것도 없고, 개발자가 프로그램이 작동하는 상태를 장담할 수 없는 상황이 적지 않습니다.
따라서, 언제나 예외적인 상태나 작동 상황을 생각해야 하고, 예상하는 작동 순서 이외의 상황도 예상해야 합니다.
개발을 처음 배우는 입장도 그렇고, 실제 어느 정도 개발을 배웠다는 사람도 심심찮게 벽에 부딪칩니다.
이런 부분들에 대해서 주중에 자세히 말씀드리도록 하겠습니다.
프로그래밍 언어 공부는 이런 요소들을 챙기세요
엔트리를 말씀드리면서, 제가 몇 가지를 강조한 용어들이 있습니다.
이 용어들은, 엔트리에서 직접 사용하는 용어들도 있지만,
제가 실제로 여러 가지 프로그래밍 언어에서, 혹은 프로그래밍 개발에 있어서 공통으로 사용하는 용어들을 가져왔었습니다.
- 오브젝트(object) / 클래스 (class) / 컴포넌트 (component) 등등
- 이벤트 (event)
- 액션 (action)
- 반복 (loop)
- 상태 (state) / 상태 관리 (state management)
- 변수 (variable) / (데이터) 타입 (data type)
- 연산 (operation)
- 할당 (assignment)
- 조건 분기 (conditional branch)
- 데이터 관리 (data management) / 데이터베이스 (database)
- 함수 (function) / 모듈 (module) / 라이브러리 (library)
- 리소스 (resource) / 애셋 (asset)
저 요소들을 하나하나는 말씀드렸듯 모든 프로그래밍 언어에 모두 포함되어 있기 때문에,
다른 프로그래밍 언어를 공부하시면서 저 요소들을 어떻게 사용하시는지 하나하나 의미를 잘 챙기시면서 보셔야 합니다.
변수를 써야 하기 때문에 쓰는 것이 아니고, 상태를 관리하거나 정보를 저장하기 위해 사용하는 것이고,
저장하는 값의 형태에 따라 타입이 존재하며, 메모리에 존재하는 변수에 값을 저장하는 것을 할당이라고 하는 것입니다.
각각의 요소들이 왜 필요하고 어떤 형태로 쓰이며 어떻게 서로 연관되는지를 잘 생각한다면,
그것이 어떤 프로그래밍 언어라 할 지라도 기본적인 흐름이 모두 같다는 사실을 알 수 있을 것입니다.
내일 할 이야기는...
내일은, 여담으로 특별한 개발 툴 하나를 이야기해볼까 합니다.
앞으로 개발에 사용할 비주얼 스튜디오 코드(Visual Studio Code)에 관한 이야기인데요,
제가 이야기할 앞으로의 포스팅 뿐만 아니라, 요즘 쓰는 많은 프로그래밍 언어에서 사용하는 굉장한 툴입니다.
다음 주에 이어질 포스팅의 준비 삼아서 미리 한 번 언급해보겠습니다.