프로시져가 무엇일까?

August 18, 2024 (1mo ago)

프로시져를 공부해야겠다고 마음 먹게 된 계기

1. Define your procedures
The first step to creating a tRPC API is to define your procedures.

Procedures are the functions we will use to build your backend.
They're composable and can be queries, mutations, or subscriptions.
Routers contain multiple procedures.

위의 문구는 trpc를 공부하기 위하여 처음 들어간 홈페이지의 가장 첫 번째 구문에서 발견한 문구입니다. 여기서 강조하는 것은 Define your procedures 저 만의 프로시져를 정의하라는 것이죠. 그렇다면 프로시져가 무엇이길래 저만의 프로시져를 만들라고 강조하는 것일까요? 이에 대해서 이전에 읽었던 책에서 힌트가 있었던 것 같아서 책을 다시 읽어 보면서 프로시져에 대해서 공부하였습니다.

컴퓨터 프로그램의 구조와 해석

computer-program-structure

컴퓨터 프로그램의 구조와 해석개발자에게 있어서 마법과 같은 책이라고 소개되는 이 책을 읽어야 하겠다고 마음을 먹고 절반도 읽지 못하고 다른 내용을 공부했었습니다. 하지만 읽었던 책 내용에서 분명히 프로시져에 대해서 심도 있게 다루었던 내용이 있었기 때문에 이 책에서 읽었던 내용을 기반으로 프로시져에 대해서 다루어보겠습니다.

계산 프로세스 Computational Process 아는 것이 프로시져를 이해하는 것에 있어서 필요합니다. 계산 프로세스에서 계산이란 데이터를 족하면서 어떤 일을 하고 프로세스는 사람이 만든 규칙에 따라 움직이게 되는데 이 때 이 규칙을 프로그램이라고 합니다. 어려워보이지만 풀어서 예시와 함께 생각해보면 그리 복잡하지 않을 것입니다.

프로세스는 우리가 일을 편하게 하기 위해서 만든 우리 대신 일을 하게 수행하게끔 하는 것을 이야기 합니다. 예를 들어 계산기를 이용하여 숫자를 입력하였을 경우 계산을 수행하게끔 하거나 ATM 기계에 돈을 넣었을 때 인간 대신 기계가 돈을 세게끔 하는 것과 같은 작업을 의미합니다. 프로그램은 이러한 프로세스의 집합체 입니다. 프로그램은 여러개의 프로세스로 구성이 되며 이러한 프로세스와 프로세스를 위하여 필요한 구성 요소들을 우리는 프로그래밍 언어로 작성하여 구성하게끔 만듭니다.

소프트웨어 기술자의 요구사항

소프트웨어 기술자라면 스스로 만든 프로세스가 맡은 일을 틀림없이 해낸다고 믿을 수 있도록 제대로 프로그램을 짤 줄 알아야 한다!

컴퓨터에 대한 이야기를 한 이유

우리의 주제는 프로시저임에도 프로세스와 프로그램에 대한 이야기를 한 이유는 무엇일까요? 프로시저는 프로세스를 작성하기 위하여 필요한 구성 요소이기 때문입니다. 그렇기 떄문에 우리는 조금 더 프로그램을 만들기 위해 작성하는 코드에 대해서 분석할 필요가 있습니다.

먼저 프로그램을 짤 때 바탕이 되는 것에 대해서 다루어 보겠습니다. 우리가 프로그램을 짤 때 바탕이 되는 것이 무엇이 있을까요? 우선 가장 먼저 생각이 나는 것은 데이터 일 것입니다. 왜냐하면 프로그램을 구성하는 것은 결국 데이터들을 어떻게 조작하여 동작하게 할 것인지를 결정하고 이러한 동작들이 모여 프로세스를 만들고 결국 프로그램을 만드는 것이기 때문입니다.

앞서 했던 설명에서 어떻게 조작하여 라는 부분이 중요합니다! 왜냐하면 우리는 프로그램을 논리적으로 작성해야 하며 나만 알아보는 것이 아닌 컴퓨터도 이해하고 프로그램을 사용하는 사람도 읽을 수 있어야 하기 때문입니다. 그래서 프로그램을 짤 때 우리는 프로그래밍 언어를 사용합니다.

프로그래밍 언어를 이용하여 사람의 생각을 짜임새 있게끔 담아내고 단순한 생각을 모아 복잡한 생각으로 만들 수 있기 때문입니다. 자고로 좋은 프로그래밍 언어라면 아래와 같은 3 가지 표현 방식을 가지고 있어야 합니다.

  1. 기본식 - 언어에서 가장 단순한 것을 나타내는 것
  2. 엮어내는 수단 - 간단한 것을 모아 복잡한 것을 만든다.
  3. 요약하는 수단 - 복잡한 것에 이름을 붙여 하나로 다룰 수 있게끔 간추린다.