프로그램

김동현·2024년 3월 31일

회고

목록 보기
1/4
post-thumbnail

프로그램

명사
1. 진행 계획이나 순서
2. 연극이나 방송 따위의 진행 차례나 진행 목록
3. 어떤 문제를 해결하기 위해 그 처리 방법과 순서를 기술하여 컴퓨터에 주어지는 일련의 명령문 집합체

프로그램이란 어떤 목적을 이루고, 문제를 해결하기 위한 일련의 과정이다.
즉, 원하는 바를 이루기 위해 최소한의 단위 수행를 시간 순서로 실행하는 것이다.

📌 집에서 출근하기까지의 과정
1. 버스 정류장에서 5528 버스를 탄다.
2. 낙성대 입구역에서 내려 2호선을 환승한다.
3. 삼섬역에서 하차한다.
4. 회사까지 걸어간다.

위 프로그램은 내가 집에서부터 회사까지 출근하기 위한 일반적인 프로그램이다.

물론 목적을 이루기 위해 한 가지의 프로그램만 존재하는 것이 아니다.

📌 집에서 출근하기까지의 과정.2
1. 서울대벤처타운역에서 신림선을 탑승한다.
2. 신림역에서 환승한다.
3. 삼섬역에서 하차한다.
4. 회사까지 걸어간다.

위와 같은 다른 방법으로도 출근이 가능하다. 하지만 우리는 가장 효율이 좋은 방법을 선택한다. 그렇기에 나는 첫번째 방법으로 출퇴근을 한다 :)

프로그램이란 우리의 목적을 이루기 위한 일련의 과정들을 시간 순서대로 기술한 목록을 말한다

🔥 프로그램에서 중요한 것은 아래와 같다.

  1. 구성된 진행 목록 모두 100% 수행 되어야 한다.
  2. 구성된 진행 목록 모두 올바르게 수행 되어야 한다.
  3. 시간 순서로 진행되어야 한다.

위의 전제가 하나라도 이루어지지 않으면 우리가 원하는 목적을 이룰 수 없게 된다.

  1. 낙성대 입구역에 도착하기 전에 내린다면 환승을 할 수 없게 된다.
  2. 낙성대 입구역을 지나 내린다면 환승을 할 수 없게 된다.
  3. 낙성대 입구역을 도착하기 전에 삼성역으로 먼저 갈수가 없다.

비동기 프로그램

非同期(아닐 비, 한가지 동, 기약할(기다리다) 기)

비동기 프로그램은 일련의 작업들이 완료될 때까지 기다리지 않고 다른 행위를 할수 있는 것을 말한다.
즉, 기다리지 않고, 다른 것을 한다가 중요하다.

만약, 2호선 지하철 내에서 아무 것도 하지 않는다면, 5528 버스 내에서 아무 것도 하지 않는다면 매일 하는 출퇴근이 가능하지 않을 수도 있을 것 같다.

출근 길에 우리는 유튜브를 보고, 웹툰을 보고, 책을 읽고, 일을 처리하거나 졸기도 한다.
회사로 가는 일은 버스, 지하철에게 맡기고 우리는 다른 일을 수행할 수 있는 것이다.

function sleep(milliseconds) {
  const start = new Date().getTime();
  while (true) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

function watchYoutube() {
  console.log("유튜브 보는 중")
  sleep(5000)
}

function watchWebtoon() {
  console.log("웹툰 보는 중")
  sleep(5000)
}

function doze() {
  console.log("조는 중")
  sleep(5000)
}

function doSomethingElse () {
  watchYoutube()
  watchWebtoon()
  doze()
}

function getOn5528Bus() {
  console.log("🚌🚌🚌🚌 낙성대 입구역 가는 중");
  setTimeout(() => {
    console.log("낙성대 입구역 도착")
  }, 16000)
  doSomethingElse();
}

getOn5528Bus()




우리는 우리들만의 프로그램으로 삶을 채우며 살아가는 것 같다!
컴퓨터 프로그램은 그 삶을 채워주는 역할을 하는 것이고, 그러니 가치를 만들어내고 삶의 개선과 도움을 주는 소프트웨어에 비용을 지불하고 사는 것 아닐까 :)

profile
달려보자

0개의 댓글