트레이드오프(trade-off, tradeoff), 하나가 증가하면 다른 하나는 무조건 감소한다는 것을 뜻함
위키백과
우리가 살아가는 세상에 만능키가 있다면 얼마나 좋을까요? 만능키 하나로 모든 것을 해결한다면 많은 일들이 굉장히 쉬워질 것입니다. 하지만 그것이 마냥 반가운 이야기는 아닙니다. 왜냐하면 만능키로 쉽게 해결이 가능하다는 것은 누구나 그 일을 할 수 있는 것이고 더 나아가 AI가 금방 당신의 일자리를 뺏을 수도 있습니다. 그리고 만능키로 해결이 가능하다면 당신의 연봉은 일반적으로 높지 않을 것입니다. 트레이드 오프를 이해하고 적용하는 것은 당신의 가치를 굉장히 늘려줄 것이며, 당신의 주장에 근거가 되어줄 것입니다.
개발자는 참 많은 트레이드오프 상황을 만나게 됩니다. 프로그래밍을 할 때도 예외는 없습니다. 한단계 성장하고 남들과 다른 경쟁력을 갖추기 위해서는 반드시 트레이드 오프를 이해하고 매 상황에 적용할 수 있어야 합니다.
- 트레이드 오프 예시
- 시간복잡도 vs 공간복잡도
- Django vs Fastapi vs Flask
- 브루트 포스(개발이 쉬움, 속도 느림) vs DP(개발이 어려움, 속도 빠름)
- 개발 속도 vs 개발 완성도(TDD, 클린코드, 유지보수, 디자인패턴)
- 비용 vs 가용성(Availiablitiy)
- RDB(정형화, 느림, join 유리) vs NoSQL(비정형화, 빠름)
- 트레이드 오프 상황
- 속도가 중요한가 시간이 중요한가
- 러닝커브가 높은가, 낮은가
- 각 프레임워크의 특징은 무엇이고 우리가 하려고 하는것에 어떤것이 적합한가?
- 트래픽 발생이 어떠한가
- 개발해야하는 서버의 하드웨어 스펙은 어떠한가
프로그래밍에 만능키와 정답은 없지만, 더 나은 선택은 있을 수 있습니다. 더 나은 선택을 하기 위해서는 우리는 끊임없이 질문해야합니다. 끊임없이 공부해야합니다.
'회고록 및 개발일기' 카테고리의 다른 글
[개발일기] 개발도서 도전(Last Update: 2023.12.12) (0) | 2023.12.12 |
---|---|
[회고록] 2021년 기술 회고록 (0) | 2022.04.28 |
저를 소개합니다.(Last Update: 2023.12.09) (0) | 2020.05.12 |