본문 바로가기

Stack

Make에서 값 매핑하고 실행 결과 확인하기

Make에서 모듈을 연결해 두었는데도 다음 단계에 값이 전달되지 않거나, 실행은 된 것 같은데 결과가 예상과 다를 때가 있습니다. 지난 글에서는 시나리오의 흐름에 맞춰 모듈을 고르고 연결하는 기준을 정리했습니다. 이번에는 앞 모듈의 출력값을 다음 모듈의 입력에 연결하는 방법을 이어서 다룹니다. 그리고 실행 결과를 어떤 순서로 확인하면 문제가 생긴 지점을 좁힐 수 있는지도 살펴봅니다. 처음부터 복잡한 시나리오를 완성하려 하기보다, 한 단계씩 값이 오가는지 확인하는 흐름으로 접근해 보겠습니다.

값 매핑은 모듈 사이의 약속부터

서로 다른 색의 구슬이 담긴 두 개의 투명한 상자가 관으로 연결되어 값이 다음 단계로 옮겨지는 모습

  • 앞 모듈의 출력에서 다음 모듈이 사용할 값을 고릅니다.
  • 입력 칸에는 고정 문구와 전달받은 값을 구분해 넣습니다.
  • 값의 이름뿐 아니라 실제 데이터 형태와 비어 있을 가능성도 확인합니다.

쉽게 설명하면, 매핑은 앞 단계에서 나온 값을 다음 단계가 받아 쓰도록 연결하는 일입니다. 학교에서 친구에게 준비물을 건넬 때 누구에게 무엇을 주는지 확인하는 것처럼, 다음 모듈의 각 입력 칸에 알맞은 값을 골라 넣어야 합니다. 예를 들어 앞 단계에서 제목과 본문을 만들었다면, 다음 단계의 제목 칸에는 제목을, 본문 칸에는 본문을 연결합니다.

이때 입력 칸에 직접 쓴 문구는 실행할 때마다 그대로 쓰이고, 앞 모듈에서 연결한 값은 그때 만들어진 결과로 바뀝니다. 그래서 문장 앞뒤에 고정 문구를 쓰고 가운데에 전달받은 값을 넣을 수도 있습니다. 다만 처음부터 많은 값을 연결하면 어떤 값이 어디에서 왔는지 헷갈릴 수 있으니, 필요한 항목부터 연결해 보는 편이 좋습니다.

그리고 값의 이름만 보지 말고 실제 내용과 모양도 확인해야 합니다. 한 줄의 글을 기대했는데 여러 항목이 묶여 있거나, 어떤 상황에서는 값이 비어 있을 수도 있습니다. 이런 차이가 있으면 뒤쪽 모듈에서 입력 오류나 빈 결과가 생길 가능성이 있으므로, 앞 모듈의 출력부터 살펴보면 다음 단계의 매핑도 더 정확해집니다.

실행 전에 입력 데이터부터 만들기

여러 색의 재료가 작업대에 놓이고 준비된 재료가 투명한 용기에 담겨 테스트 입력을 만드는 모습

  • 테스트할 수 있는 입력을 앞 모듈에 준비합니다.
  • 시나리오를 실행해 각 단계에 데이터가 들어오는지 확인합니다.
  • 출력에 값이 없으면 뒤쪽 매핑보다 앞 단계의 입력과 설정을 먼저 살핍니다.

풀어서 설명하면, 매핑할 값을 확인하려면 먼저 앞 모듈이 실제로 어떤 결과를 내는지 봐야 합니다. 재료를 준비하지 않고 요리를 시작할 수 없는 것처럼, 테스트할 입력이 있어야 다음 단계에 연결할 값을 확인할 수 있습니다. Make의 'Run once'처럼 한 번 실행해 결과를 확인하는 기능을 이용하면 모듈이 받은 값과 내보낸 값을 살필 수 있습니다.

실행한 다음에는 앞 모듈의 결과를 열어 필요한 값이 있는지 확인합니다. 값이 비어 있거나 예상과 다르면, 뒤쪽 모듈에서 다른 항목을 골라도 원하는 결과를 얻기 어렵습니다. 그래서 입력이 제대로 들어왔는지, 앞 모듈의 설정이 필요한 데이터를 만들도록 되어 있는지 먼저 확인합니다. 출력값을 찾았다면 그 값을 다음 모듈에 연결하고 다시 실행해 전달이 됐는지 봅니다.

처음에는 정상 입력으로 흐름을 확인한 뒤, 값이 빠지거나 예상과 다른 형태로 들어오는 경우도 따로 살펴볼 수 있습니다. 모든 상황을 한 번에 재현하기는 어려울 수 있지만, 입력에 따라 결과가 달라질 가능성을 염두에 두면 점검할 범위를 정하기 쉽습니다. 입력과 출력이 확인되면, 이제 실행 결과를 모듈별로 읽으며 문제가 생긴 곳을 찾아갈 수 있습니다.

실행 결과는 앞에서 뒤로 읽기

투명한 여러 칸의 용기를 잇는 관을 따라 작은 구슬이 이동하며 각 단계에 나뉘어 담긴 모습

  • 각 모듈이 실행됐는지와 처리 결과를 확인합니다.
  • 모듈별 출력에서 다음 단계에 전달된 값을 비교합니다.
  • 문제가 보이면 처음 달라진 지점부터 원인을 좁힙니다.

일상에 빗대어 보면, 실행 결과를 확인하는 일은 물건이 어디서부터 잘못 전달됐는지 차례로 살펴보는 것과 비슷합니다. 마지막 모듈의 성공 여부만 보지 말고 첫 모듈부터 확인하면, 값이 처음 달라진 지점을 찾기 쉽습니다. 앞 모듈이 내보낸 값이 다음 모듈에 들어갔는지, 그리고 다음 모듈이 그 값을 어떻게 처리했는지 이어서 살펴봅니다.

Make의 실행 내역에서는 모듈별 처리 결과와 데이터 묶음(bundle), 즉 한 번에 함께 전달되는 값들을 확인할 수 있습니다. 화면에 보이는 항목의 이름이나 위치는 모듈과 화면 상태에 따라 다를 수 있지만, 받은 데이터와 처리한 내용, 내보낸 결과를 비교하는 기준은 같습니다. 앞 모듈에는 값이 있는데 다음 모듈에는 없다면 매핑을 확인하고, 값이 전달됐는데 결과가 다르다면 다음 모듈의 설정이나 필요한 데이터 형태를 살펴봅니다.

문제가 생겼을 때 여러 설정을 한꺼번에 바꾸면 어떤 변경이 영향을 줬는지 찾기 어려울 수 있습니다. 그래서 한 번에 한 가지씩 고치고 다시 실행하면 원인을 좁히는 데 도움이 됩니다. 다만 한 번 정상적으로 실행됐다고 해서 모든 입력에서 같은 결과가 나온다고 볼 수는 없으니, 값이 비거나 형태가 달라지는 경우도 함께 생각해 두면 좋습니다. 이런 점검을 바탕으로 실행 완료 표시와 실제 데이터 전달을 따로 확인할 수 있습니다.

성공 표시보다 전달된 값을 본다

  • 시나리오가 실행됐는지와 원하는 값이 전달됐는지를 따로 봅니다.
  • 입력, 매핑, 출력 순서로 확인하면 수정할 위치를 좁힐 수 있습니다.

실행이 끝났다는 표시와 함께 각 모듈이 필요한 값을 받았는지, 그 값을 다음 단계로 넘겼는지 확인하면 시나리오의 흐름을 더 잘 점검할 수 있습니다. 입력부터 매핑, 출력 순서로 따라가면 막연히 원인을 찾기보다 값이 달라진 지점에 맞춰 수정할 수 있습니다. 다음 글에서는 이 확인 흐름을 바탕으로 실행 중 생기는 오류와 예외 상황에 대응하는 방법을 이어서 다룹니다.

이 글의 방법을 단계별로 따라 해 보려면 따라하기 가이드와 체크리스트를 함께 열어 두세요.