Hacker News 의견

코딩보다 더 중요한 것은 문제 이해와 설계

  • 전통적으로 코딩은 세 가지 시간 버킷으로 나뉘어 있음
    • 왜 이 작업을 하는가? 비즈니스 문제와 가치를 이해하는 것
    • 무엇을 해야 하는가? 솔루션을 개념적으로 설계하는 것
    • 어떻게 할 것인가? 실제로 코드를 작성하는 것
  • 마지막 단계는 과거에는 많은 시간을 소비했지만, 이제 Claude 덕분에 거의 시간이 들지 않음
    • 마지막 단계에 많은 시간을 소비한다면 첫 두 단계가 잘못되었거나 도구에 익숙하지 않다는 의미일 수 있음
    • 수작업 코드 편집에는 번거로움이 있지만, 많은 언어에서 IDE와 인덱서를 통해 자동화됨
    • 프로그래밍 프로젝트에서 문제를 이해하는 데 더 많은 시간을 소비했음
  • 즉, 문제 이해와 설계에 더 많은 시간이 소요됨
    • 코딩은 가장 쉬운 단계에 속함
    • 시간이 오래 걸리는 경우는 도구 미숙이나 설계 부족 때문일 수 있음
  • 데이터 구조 설계가 핵심
    • 구조가 잘 잡히면 코딩은 단순한 구현일 뿐임
    • 이 부분은 LLM보다 사람이 우수

LLM의 한계와 주의점

  • LLM은 종종 잘못된 의사결정을 함
    • 예: 불필요한 의존성 추가, 취약한 코드 생성
    • 사람이 반드시 검토와 수정을 해줘야 함
  • 보안 문제를 스스로 인식하지 못함
    • 예: injection, 잘못된 권한 설정
  • 대규모 코드베이스에서 성능 저하
    • 컨텍스트 윈도우 제한으로 인해 전체 구조 이해에 실패

LLM이 제공하는 생산성 향상

  • 반복적이고 단순한 작업에 매우 효과적
    • boilerplate, 테스트 코드 등에서 시간 절약
  • 계획 단계에서의 활용이 더 효율적
    • system design 초안, 기능 분해 등에서 유용함
  • 낯선 언어나 프레임워크 학습에 탁월
    • 기존 문서보다 빠르게 기본 흐름 파악 가능

경험과 기술적 판단력의 중요성

  • LLM을 잘 쓰기 위해선 경험이 더욱 중요
    • 문제를 구조적으로 판단하고 필터링할 능력이 필요
  • LLM이 코드를 생성해도 검수와 리팩터링은 사람의 몫
    • "작동"하는 것과 "옳은" 것은 다름

LLM은 개발자를 대체하는 게 아니라 보조하는 도구

  • LLM은 주니어 개발자 역할에 가까움
    • 명확한 방향 제시 없이는 엉뚱한 결과를 냄
  • 사람 + LLM 조합이 단독 LLM보다 뛰어남
    • 전략은 사람, 반복 작업은 AI

LLM의 사용 방식에 따라 결과가 달라짐

  • 코드 자동 생성만 의존하면 오히려 속도 저하
    • 특히 익숙한 언어에선 사람이 더 빠름
  • **자동완성 기반의 인터페이스(Copilot 등)**가 가장 자연스러움
    • 흐름을 끊지 않고 도움받기 용이

LLM으로 인한 직무 변화와 우려

  • 코드 작성보다는 설계와 검토가 개발자의 핵심 역할로 이동 중
  • LLM에만 의존하면 학습과 성장 기회 상실
    • 기술적 내공을 쌓지 못하고 수동적인 사용자가 될 위험

LLM의 미래와 사회적 영향

  • 모두가 AI를 사용할 수 있는 환경에선 사람이 차이를 만든다
    • 판단력, 커뮤니케이션 능력이 경쟁력을 좌우
  • LLM은 "자동차 같은 도구"
    • 강력하지만 의존성이 커지고, 문제 발생 시 대응이 어려움