𝗣𝘆𝘁𝗵𝗼𝗻 𝗘𝘀𝘀𝗲𝗻𝘁𝗶𝗮𝗹𝘀 𝗳𝗼𝗿 𝗚𝗲𝗻𝗔𝗜

JavaScript와 TypeScript를 알고 계신가요? LangChain, LangGraph, 그리고 GenAI 도구들을 활용해 개발하고 싶다면 Python이 필요합니다.

새로운 사고방식을 배울 필요는 없습니다. 이미 알고 있는 개념을 Python 개념에 매핑하기만 하면 됩니다.

다음은 빠른 전환을 위한 가이드입니다.

Core Syntax

  • Variables: let이나 const는 없습니다. name = "Ajmal"과 같이 사용하세요. 상수는 대문자(UPPERCASE)를 사용합니다.
  • Booleans: true/falseTrue/False가 됩니다.
  • Null/Undefined: None을 사용하세요.
  • Strings: 템플릿 리터럴 ${name}은 f-string f"{name}"이 됩니다.
  • Print: console.log()print()가 됩니다.
  • Indentation: Python은 중괄호 {} 대신 공백(들여쓰기)을 사용합니다. 이것이 가장 중요한 변화입니다.

Data Structures

  • Lists: JS의 Array와 같습니다. fruits.push("date") 대신 fruits.append("date")를 사용하세요.
  • Dicts: JS의 Object와 같습니다. 값에 접근할 때는 person["name"]을 사용하세요.
  • Slicing: Python의 강력한 기능입니다. 특정 범위를 가져오려면 fruits[1:3]을 사용하세요.
  • Sets: JS의 Set과 같습니다. 중복을 제거할 때 유용합니다.
  • Tuples: 변경 불가능한(frozen) array와 같습니다. 생성 후에는 내용을 변경할 수 없습니다.

Functional Patterns

  • Map: .map() 대신 리스트 컴프리헨션(list comprehensions)을 사용하세요: [n * 2 for n in numbers].
  • Filter: .filter() 대신 [n for n in numbers if n > 5]를 사용하세요.
  • Spread: 위치 인자(positional arguments)에는 *args를, 키워드 인자(named arguments)에는 **kwargs를 사용하세요.

Classes and Validation

  • Classes: this 대신 self를 사용하세요.
  • Pydantic: GenAI에서 매우 중요합니다. 데이터 검증을 처리합니다. LangChain은 도구 스키마부터 LLM 출력에 이르기까지 모든 곳에 Pydantic을 사용합니다.
  • Decorators: React의 Higher Order Components와 비슷합니다. 함수를 감싸서 새로운 동작을 추가합니다.

Async and File I/O

  • Async: Python도 JS와 마찬가지로 async/await를 사용합니다. Promise.all() 대신 asyncio.gather()를 사용하세요.
  • Context Managers: with 문을 사용하여 파일을 엽니다. 파일 닫기를 잊지 않도록 자동으로 정리(cleanup)를 처리합니다.
  • Exceptions: try/catchtry/except가 되고, throwraise가 됩니다.

Environment Management

  • Package Manager: npmpip가 됩니다.
  • Dependency File: package.jsonrequirements.txt가 됩니다.
  • Local Modules: node_modules/.venv/가 됩니다. 패키지를 설치하기 전에 항상 가상 환경(virtual environment)을 활성화하세요.

이 매핑들을 익히면 즉시 AI 에이전트를 구축하기 시작할 수 있습니다.

Source: https://dev.to/ajmal_hasan/python-essentials-for-genai-lji