※ 본 포스팅은 생활코딩 이고잉님의 강의를 공부한 후 개인적인 학습목적으로 작성하였습니다. 생활코딩에서 더 자세하고 정확한 정보를 얻으시려는 분들은 아래 참고자료를 확인해주세요. ※
프로그래밍이란 무엇인가?
지금까지 컴퓨터로 할 수 있는 일 하나하나를 살펴봤습니다. 지금부터 프로그래밍, 프로그램, 프로그래머라고 하는 말이 어떤 의미인지 살펴보겠습니다. 사전에서 ‘프로그램’을 찾아보면 프로그램이라는 말의 어원이 나옵니다. 음악회를 가면 공연될 음악들의 목록이 있는데, 목록에 있는 곡들이 한 번에 연주되는 게 아니라 순차적으로 연주됩니다. 이처럼 시간 순서에 따라 공연이 진행되는 것을 프로그램이라고 합니다. 그후로 시간 순서에 따라 어떤 비슷한 성격을 가진 일들이 일어나는 것을 프로그램이라고 부릅니다. 컴퓨터가 수행하는 각각의 작업, 예를 들어 ‘파일을 읽는다’, ‘파일에 쓴다’, ‘화면에 무언가를 표시한다’ 같은 각 작업은 그 자체로는 큰 의미가 없습니다. 하지만 내가 하고자 하는 일이 무엇이냐에 따라 그 일을 하기 위해서 필요한 각각의 작업이 시간 순서에 따라 실행되게 할 수 있다면 이를 가리켜 자동화(Automation)라고 할 수 있습니다. 따라서 프로그래밍이라는 것을 하는 이유, 또 프로그래밍 언어를 이용하는 이유는 자동화된 처리를 위해서라고 할 수 있고, 지금부터 하려는 것이 바로 이러한 무언가를 자동화하는 방법을 배우는 것입니다. 먼저 프로그래밍이라는 것이 무엇이고, 또 프로그램은 무엇인가 라는 것을 따져보는 코드를 한번 작성해 보겠습니다.
우선 이런 그다지 실용성은 없는 프로그램을 작성했습니다. 그런데 상상력을 발휘해서 여기에 작성된 코드가 3줄이 아니라 1억 줄이라고 생각해 보세요. 그리고 이 코드가 사소한 코드가 아니라 정말로 중요해서 잘못되면 큰일 나는 코드라고 생각해 보세요. 그리고 이 코드가 하루에도 수십 번씩 실행되고, 나 혼자 쓰는 것이 아니라 엄청나게 많은 사람들이 사용하는 코드라고 상상해 보세요. 그러면 컴퓨터가 갖고 있는 기능들, 예를 들면 ‘파일을 읽는다’, ‘파일에 쓴다’, ‘화면에 무언가를 표시한다’ 드과 같은 각 기능을 우리가 하고자 하는 일의 취지에 맞게 배치하면 컴퓨터가 이 작업을 순차적으로 실행하는 것을 통해 자동화할 수 있습니다. 그런데 각각의 작업이 언제 끝날지 예측할 수 없다면 어떻게 되까요? 작업이 1초 만에 끝날 수도 있고 1년 뒤에 끝날 수도 있다면요? 만약 1년 뒤에 끝나는 작업이라면 우리는 1년 동안 프로그램을 쳐다보고 있어야 합니다. 그 작업이 끝나는 걸 기다렸다가 그다음 작업을 실행해야 하니까요. 또 반대로 1초 만에 끝나는 작업이라면 우리가 이틀이나 삼일 뒤에 확인했을 때 이미 작업이 끝나 있으면 시간을 낭비한 셈이 됩니다. 결과적으로 우리가 프로그래밍을 통해 얻을 수 있는 효과는 코드가 순차적으로 실행되는 것을 통해 사람이 잘 못하는 일을 기계에게 위임해서 자동화할 수 있다는 것입니다. 그리고 그것을 해주는 컴퓨터 언어 중 하나가 자바이고, 여러 언어 중에서 가장 유명한 언어 중 하나가 자바라는 것을 기억해 두면 됩니다.
참고자료 및 원본 : 오픈튜토리얼스 생활코딩 (이고잉 님)
- 생활코딩 JAVA 입문 수업 : https://opentutorials.org/course/3930
'[생활코딩] Server > JAVA1(기초)' 카테고리의 다른 글
생활코딩 JAVA 1_디버거 (1) | 2023.04.28 |
---|---|
생활코딩 JAVA 1_IoT 프로그램 만들기 (0) | 2023.04.28 |
생활코딩 JAVA 1_변수의 {정의, 효용} (0) | 2023.04.28 |
생활코딩 JAVA 1_안드로이드 애플리케이션 만들기 (0) | 2023.04.28 |
생활코딩 JAVA 1_데이터 {타입, 연산, 표현, 다루기, 변환} (0) | 2023.04.28 |