본문으로 건너뛰기

교육 ·

비전공자 파이썬 로직 설계 배우는 법, 에러는 없는데 안 될 때

비전공자 파이썬 로직 설계 배우는 법이 필요한 순간

파이썬을 몇 달 배운 실무자들이 가장 많이 겪는 벽은 사실 에러 메시지가 아닙니다. 코드는 빨간 줄 없이 잘 돌아가는데, 결과물이 원하는 것과 다르게 나오는 경우입니다. 이럴 때는 문법을 더 공부하는 게 아니라, 코드를 짜기 전에 문제를 어떻게 쪼갤지 정하는 로직 설계 연습이 필요합니다.

에러 메시지 읽는 법을 익힌 분들도 이 단계에서 많이 막힙니다. 에러는 “무엇이 잘못됐는지” 알려주지만, 로직 문제는 애초에 “무엇을 어떤 순서로 해야 하는지”를 스스로 정해야 하기 때문입니다. 이 글에서는 로직이 안 잡힐 때 실무에서 바로 쓸 수 있는 순서와 예시를 정리했습니다.

왜 문법은 아는데 로직은 못 짜는 걸까요

문법 학습은 정답이 정해져 있어서 외우고 따라 치면 됩니다. 하지만 로직 설계는 “이 업무를 어떤 단계로 쪼갤 것인가”를 스스로 판단하는 작업이라 정답이 하나가 아닙니다. 강의에서는 이미 문제가 잘게 쪼개진 상태로 제공되지만, 실무에서는 그 쪼개는 과정 자체를 직접 해야 하기 때문에 막히는 것입니다.

예를 들어 “엑셀 파일 여러 개를 합쳐서 부서별로 합계를 내라”는 요청을 받았다고 가정해 보겠습니다. 강의에서 배운 pandas 함수는 다 아는데, 막상 코드를 어디서부터 써야 할지 막막하다면 문법이 아니라 로직 설계 연습이 부족한 것입니다.

코드를 짜기 전에 말로 먼저 풀어보세요

로직 설계의 첫 단계는 코드가 아니라 우리말 문장입니다. 화면에 코드를 띄우기 전에, 노트나 메모장에 해야 할 일을 순서대로 문장으로 적어봅니다. 앞서 예로 든 문제라면 이렇게 풀어볼 수 있습니다.

  1. 폴더 안에 있는 엑셀 파일 목록을 모두 가져온다
  2. 파일을 하나씩 열어서 데이터를 읽는다
  3. 읽은 데이터를 하나의 표로 합친다
  4. 부서 컬럼을 기준으로 그룹을 나눈다
  5. 그룹별로 합계를 계산한다
  6. 결과를 새 엑셀 파일로 저장한다

이 단계에서 중요한 것은 “완벽하게” 적는 게 아니라 “빠짐없이” 적는 것입니다. 문장이 어색해도 괜찮습니다. 이 6줄이 곧 파이썬 코드의 뼈대가 됩니다.

순서도 대신 번호 목록으로 충분합니다

정식 교육에서는 순서도(flowchart)를 도형으로 그리라고 가르치지만, 실무에서는 그럴 시간이 없습니다. 대신 번호가 매겨진 목록만으로도 로직 설계 효과는 충분합니다. 핵심은 “한 줄에 하나의 동작만 적는 것”입니다. “파일을 읽고 정리해서 저장한다”처럼 한 줄에 여러 동작을 뭉쳐 적으면 나중에 코드로 옮길 때 또 막힙니다.

각 줄을 쪼갤 때는 다음 질문을 스스로 던져보면 도움이 됩니다.

  • 이 동작은 한 번만 하는가, 반복하는가
  • 반복한다면 무엇을 기준으로 반복하는가
  • 조건에 따라 다르게 처리해야 하는 경우가 있는가

세 번째 질문에서 “그렇다”는 답이 나오면 그 줄은 다시 두 줄 이상으로 쪼개야 합니다.

번호 목록을 코드 뼈대로 옮기는 법

목록이 완성되면 각 줄을 파이썬 주석(#)으로 그대로 옮깁니다. 그다음 주석 아래에 실제 코드를 채워 넣습니다.

import pandas as pd
import glob

# 1. 폴더 안에 있는 엑셀 파일 목록을 모두 가져온다
file_list = glob.glob("./data/*.xlsx")

# 2~3. 파일을 하나씩 열어서 데이터를 읽고 하나의 표로 합친다
df_list = [pd.read_excel(f) for f in file_list]
merged_df = pd.concat(df_list, ignore_index=True)

# 4~5. 부서 컬럼 기준으로 그룹을 나누고 합계를 계산한다
result = merged_df.groupby("부서")["금액"].sum().reset_index()

# 6. 결과를 새 엑셀 파일로 저장한다
result.to_excel("부서별_합계.xlsx", index=False)

이렇게 주석을 먼저 배치하고 코드를 채우면, 코드가 안 될 때도 “어느 단계에서 막혔는지”가 바로 보입니다. 문법 오류가 아니라 로직 오류일 때 특히 이 방식이 효과적입니다. 예를 들어 결과값이 이상하게 나온다면, 6줄 중 어느 단계의 가정이 틀렸는지 하나씩 출력(print)해서 확인하면 됩니다.

로직이 안 잡힐 때 확인할 4단계

결과가 이상할 때는 중간 단계를 출력해보세요

에러 없이 실행은 되는데 숫자가 이상하다면, 최종 결과만 보지 말고 중간 단계마다 print(변수명) 또는 print(변수명.head())를 찍어서 눈으로 확인하는 습관이 필요합니다. 예를 들어 위 코드에서 merged_df를 합친 직후에 print(merged_df.shape)를 찍어보면 몇 개의 파일이 실제로 합쳐졌는지 바로 알 수 있습니다. 예상한 행 개수와 다르다면 1~3번 단계 중 어딘가에서 문제가 생긴 것입니다.

이 방법은 파이썬 예외처리와는 다른 접근입니다. 예외처리는 에러가 났을 때 스크립트가 멈추지 않게 하는 것이고, 로직 검증은 애초에 에러가 안 나는 상황에서 결과의 정확성을 확인하는 것입니다. 둘 다 익혀두면 자동화 스크립트의 신뢰도가 크게 올라갑니다.

자주 하는 실수 - 처음부터 완벽한 코드를 짜려는 것

로직 설계에 익숙하지 않은 분들이 가장 많이 하는 실수는 목록의 6줄을 한 번에 코드로 옮기려는 것입니다. 그러다 3번째 줄에서 막히면 전체를 다시 봐야 해서 시간이 배로 듭니다. 대신 한 줄씩 코드로 옮기고, 그 줄까지 실행해서 중간 결과를 확인한 다음 다음 줄로 넘어가는 방식을 권합니다. 느려 보이지만 실제로는 이 방식이 디버깅 시간을 훨씬 줄여줍니다.

또 하나 흔한 실수는 반복문과 조건문을 로직 설계 단계에서 빼먹는 것입니다. “파일 여러 개를 처리한다”는 문장 안에 이미 반복문이 숨어있다는 것을, 문장만 보고는 놓치기 쉽습니다. 파이썬 반복문조건문을 배웠다면, 목록을 적을 때부터 “이 줄은 여러 번 반복되는가”를 의식적으로 체크하는 습관을 들이면 로직 누락을 줄일 수 있습니다.

로직 설계 연습, 어떻게 꾸준히 할까요

로직 설계는 문법처럼 한 번에 외워지는 게 아니라 반복해서 몸에 익히는 감각에 가깝습니다. 매번 새로운 업무를 만날 때마다 코드를 짜기 전에 번호 목록부터 적는 습관을 들이는 것이 가장 확실한 연습법입니다. 처음에는 5분이면 될 목록 작성에 30분이 걸릴 수 있지만, 이 과정을 생략하면 코드 작성과 디버깅에 그보다 훨씬 많은 시간을 쓰게 됩니다.

실무에서 반복되는 업무가 있다면 그것부터 로직 설계 연습 대상으로 삼는 것을 권합니다. 매달 똑같이 반복하는 보고서 취합, 명단 정리 같은 업무는 이미 익숙해서 단계를 쪼개기가 상대적으로 쉽고, 한 번 로직을 잡아두면 다음 달부터는 코드를 재사용할 수 있어 학습 효과와 실무 효율을 동시에 얻을 수 있습니다.

픽셀앤코드는 경기 양주 지역 중소기업과 관공서를 대상으로 비전공자 실무자를 위한 코딩·자동화 교육을 진행하고 있습니다. 문법 강의로는 채워지지 않는 로직 설계 연습이 필요하다면, 실제 업무 사례를 가지고 함께 단계를 쪼개보는 과정부터 시작해볼 수 있습니다.