본문 바로가기
카테고리 없음

현장에서 얻은 교훈

by Kim_Jaehwan 2025. 5. 20.

피처 엔지니어링

  • 인하우스 패키지를 만들어 코드 재사용성을 높힌다
  • 프로덕션에서 코드를 리팩토링하기는 매우 어렵다.
  • 연구단계에서 알고리즘 개발 시 단위테스트를 도입하는 편이 낫다.

 

문제해결

  • 이것이 왜 문제인지?
  • 이 문제를 해결하면 어떤 효과가 있는지?
  • 해당 문제를 "해결"하는건 어떤 것 인지?
  • 최소한의 해법은 무엇인지?
  • 해법을 빠르게 검증할 방법은 무엇인지?

해법을 찾은 후 이에 대해 계획을 세우고 작업일정을 만든다.

 

산출물

  • 산출물을 충분히 검토하고 테스트 가능한지?
  • 작업이 다른 팀의 작업에 의존하는지, 의존한다면 지연이 생기지 않도록 작업 일정은 어떤 식으로 잡을 수 있는지?
  • 팀이 중간 마일스톤 단계에서 가치를 제공할 수 있는지?
  • 불확실성이 큰 부분에서 리스크를 줄일 방법이 있는지?

소요시간

  • 조금씩 늘어나는 범위
  • 토론, 문서화, 사용자 리서치와 같은 비기술적 작업에 대한 과소평가
  • 팀 멤버의 개인적 사정으로 인한 가용성 이슈
  • 데이터 품질 문제
  • 예상치 못한 문제로 인한 대안 제시
  • 테스트 부족
  • 테스트나 검증의 어려움

효과적vs효율성

아주 간단한 문제를 너무 복잡하게 풀지 말라.

도메인에 대해 좀 더 이해한다면 아주 복잡해 보이는 문제를 쉽게 풀 수도 있다.

 

최종지점

어떤 해법의 최종 지점은 평가 방법과 해법의 우선 순위이다

 

Keep It Simple, Stupid!

  • 아주 간단한 코드로 시작하고, 필요할 때마다 개선하라
  • 단, 그것이 가능하게 설계하라
  • 모듈화되고 모듈간 API 소통이 가능한 작고 복잡하지 않은 도구를 사용해라

 

파이프라인의 온전성

파이프라인에 흐르는 데이터를 직접 눈으로 볼 수 있도록 해라

 

데이터를 스트림으로 만들어라

  • 메모리 사용량을 일정하고 작게 만들어라
  • 제너레이터는 아주 좋은 선택 
  • 사용할 데이터에 특성을 정확하게 알고 있는 것이 아니라면, 모든 것을 RAM에 넣는 알고리즘이나 도구는 피해라.

핫스팟만 최적화하라

로직과 북키핑은 파이썬만으로 아주 괜찮다

자주, 많이 쓰이는 핫스팟을 프로파일하고 그 부분만 컴파일하고 최적화해라

 

가장 중요한것

핵심 문제에 집중해라.

무엇이 핵심 문제인지 모른다면 그것을 찾는것에 집중해라

 

 

댓글