피처 엔지니어링
- 인하우스 패키지를 만들어 코드 재사용성을 높힌다
- 프로덕션에서 코드를 리팩토링하기는 매우 어렵다.
- 연구단계에서 알고리즘 개발 시 단위테스트를 도입하는 편이 낫다.
문제해결
- 이것이 왜 문제인지?
- 이 문제를 해결하면 어떤 효과가 있는지?
- 해당 문제를 "해결"하는건 어떤 것 인지?
- 최소한의 해법은 무엇인지?
- 해법을 빠르게 검증할 방법은 무엇인지?
해법을 찾은 후 이에 대해 계획을 세우고 작업일정을 만든다.
산출물
- 산출물을 충분히 검토하고 테스트 가능한지?
- 작업이 다른 팀의 작업에 의존하는지, 의존한다면 지연이 생기지 않도록 작업 일정은 어떤 식으로 잡을 수 있는지?
- 팀이 중간 마일스톤 단계에서 가치를 제공할 수 있는지?
- 불확실성이 큰 부분에서 리스크를 줄일 방법이 있는지?
소요시간
- 조금씩 늘어나는 범위
- 토론, 문서화, 사용자 리서치와 같은 비기술적 작업에 대한 과소평가
- 팀 멤버의 개인적 사정으로 인한 가용성 이슈
- 데이터 품질 문제
- 예상치 못한 문제로 인한 대안 제시
- 테스트 부족
- 테스트나 검증의 어려움
효과적vs효율성
아주 간단한 문제를 너무 복잡하게 풀지 말라.
도메인에 대해 좀 더 이해한다면 아주 복잡해 보이는 문제를 쉽게 풀 수도 있다.
최종지점
어떤 해법의 최종 지점은 평가 방법과 해법의 우선 순위이다
Keep It Simple, Stupid!
- 아주 간단한 코드로 시작하고, 필요할 때마다 개선하라
- 단, 그것이 가능하게 설계하라
- 모듈화되고 모듈간 API 소통이 가능한 작고 복잡하지 않은 도구를 사용해라
파이프라인의 온전성
파이프라인에 흐르는 데이터를 직접 눈으로 볼 수 있도록 해라
데이터를 스트림으로 만들어라
- 메모리 사용량을 일정하고 작게 만들어라
- 제너레이터는 아주 좋은 선택
- 사용할 데이터에 특성을 정확하게 알고 있는 것이 아니라면, 모든 것을 RAM에 넣는 알고리즘이나 도구는 피해라.
핫스팟만 최적화하라
로직과 북키핑은 파이썬만으로 아주 괜찮다
자주, 많이 쓰이는 핫스팟을 프로파일하고 그 부분만 컴파일하고 최적화해라
가장 중요한것
핵심 문제에 집중해라.
무엇이 핵심 문제인지 모른다면 그것을 찾는것에 집중해라
댓글