소프트웨어 프로그래밍을 기술로서
Source: Dev.to
소프트웨어 프로그래밍을 기술로서 활용하는 방법은 무엇인가요?
사람들이 소프트웨어나 컴퓨터 프로그래밍에 대해 이야기할 때 보통 자동화, 웹사이트 구축, 앱 제작, 혹은 소프트웨어 시스템 개발을 언급합니다.
이것들은 정당한 사용 사례이지만, 이야기의 일부에 불과합니다.
이 글에서는 기본 원칙에서 프로그래밍을 바라보겠습니다.
프로그래밍은 지난 수십 년간 우리가 만든 강력한 하드웨어 장치들 때문에 필수 기술이 되었습니다. 프로그래밍이 왜 중요한지 이해하려면 이러한 장치들의 간단한 개념 모델을 만드는 것이 도움이 됩니다.
다음과 같은 특성을 가진 장치를 상상해 보세요:
- 어떤 형태의 입력(장치에 무언가를 알려주는 신호)을 받을 수 있다.
- 입력에 대해 특정 연산을 수행할 수 있다.
- 선택적으로 정보를 저장할 수 있다.
- 그 연산은 출력을 만든다.
이 구조에 가장 잘 맞는 가장 단순한 장치는 현대 계산기입니다.
현대 계산기는 다음과 같이 시각화할 수 있습니다:
- 버튼을 통해 입력을 받는다.
- 수학 연산을 수행한다.
- (선택적으로) 이전 계산 결과를 저장한다.
- 화면에 출력을 표시한다.
이 기본 구조는 대부분의 컴퓨팅 장치에 적용됩니다: 입력을 받고, 내장된 연산을 사용해 처리하고, 필요할 때 정보를 저장하며, 출력을 반환합니다.
프로그래밍은 어디에 들어맞나요?
계산기 예제로 돌아가 봅시다.
오늘날의 계산기는 단순한 덧셈, 뺄셈, 곱셈, 나눗셈보다 훨씬 더 많은 일을 할 수 있습니다. 로그, 삼각함수값, 제곱근을 계산하고 심지어 방정식도 풀 수 있습니다.
이 모든 고차 함수들 아래에는 같은 기반이 있습니다: 기본 연산(+ , – , × , ÷). 수학에서는 많은 고급 함수가 이러한 기본 연산을 사용해 일련의 단계로 분해될 수 있습니다.
예를 들어 10의 제곱근을 구해 보겠습니다. 한 방법은 뉴턴 방법을 이용하는 것입니다: 추정값을 잡고 공식을 사용해 반복적으로 값을 다듬어 값이 안정될 때까지 진행합니다. √ 버튼을 누르면 계산기가 이 단계를 자동으로 수행합니다.
계산기에 기본 연산을 어떻게 결합해 제곱근을 계산할지 알려주는 것이 있습니다.
그것이 바로 프로그램입니다.
그리고 그것을 설계한 사람은 프로그래머입니다.
그렇다면 소프트웨어 프로그래밍은 실제로 무엇인가요?
소프트웨어 프로그래밍은 본질적으로 다음과 같은 예술이 됩니다:
- 하드웨어 기계가 수행할 수 있는 연산을 이해하고,
- 그 연산들을 의미 있고 구조화된 방식으로 조직해 기계가 유용하거나 복잡한 작업을 수행하도록 만드는 것.
하드웨어가 더 빠르고 강력해짐에 따라 프로그래밍도 더욱 강력해졌습니다. 프로그래머는 단순한 연산을 조합해 게임을 만들고, 시뮬레이션을 실행하고, 챗봇을 구축하고, 웹사이트를 구동하며, 고급 수학을 수행하고, 그 외 다양한 일을 할 수 있게 되었습니다.