Transcript
00:00:00왜 어떤 사람들은 수년간 이 분야에 종사했음에도
00:00:04개발자로서 성장하지 못하는 걸까요? 여러 가지 요인이 있습니다. 그중 하나는
00:00:09프로그래밍의 근본 원리를 이해하지 못하기 때문입니다. 이건 단순히 한 번 배우고
00:00:14잊어버리는 이론적 개념이 아닙니다. 여러분을 더 빠르게 성장시켜 줄 실제적인 내용들이죠.
00:00:19첫 번째 원칙인 보이스카우트 규칙부터 시작해 보죠. 이 원칙은 미국의 보이스카우트에서 유래했습니다.
00:00:25그들에게는 '캠프장을 발견했을 때보다 더 깨끗하게 정리하고 떠나라'는 간단한 규칙이 있습니다.
00:00:31엉클 밥(Uncle Bob)을 아시는 분이 얼마나 계실지 모르겠지만, 이 개념을
00:00:36프로그래밍 커뮤니티에 널리 알린 분입니다. 코드를 처음 발견했을 때보다 약간 더 깨끗하게 만드는 습관이죠.
00:00:41기존 코드베이스를 수정할 때 코드 품질은 종종 저하되며, 이는
00:00:47기술 부채를 증가시킬 수 있습니다. 그리고 기술 부채는 아무리 사소하더라도
00:00:52지속적인 개선을 통해 줄일 수 있습니다. 예를 들어, 이 함수에서
00:00:57값을 변경하라는 작업을 할당받았다고 가정해 봅시다. 작업을 마쳤는데 변수명이 이해하기
00:01:03어렵다는 걸 알게 됩니다. 대부분의 개발자처럼 그냥 무시하고 작업을 커밋할 수도 있겠죠.
00:01:08하지만 이 원칙을 따른다면, 변수명을 더 이해하기 쉬운 이름으로
00:01:12바꿨을 것입니다. 이건 아주 간단한 예시일 뿐입니다. 변수명뿐만 아니라 개선할 수 있는
00:01:18부분이 보인다면 그냥 고치세요. 이런 작은 행동 하나가 코드베이스에 큰 가치를 더합니다.
00:01:24두 번째 원칙, 성급한 최적화를 피하라입니다. 이 말은 코드가
00:01:30정말로 빨라져야 할 상황이 오기 전에 미리 최적화하지 말라는 뜻입니다. 일단 작동하게 만드세요. 필요할 때만 최적화하면 됩니다.
00:01:36도널드 커누스(Donald Knuth)의 유명한 명언 중에 "성급한 최적화는 모든 악의 근원이다"라는 말이 있습니다.
00:01:42정말 맞는 말입니다. 프로그래머들은 프로그램의 중요하지 않은 부분의 속도를 고민하느라
00:01:47시간을 허비하곤 하니까요. 뭐든지 최적화해야 한다는 강박 때문이죠.
00:01:51이 원칙은 코드베이스를 최적화하지 말라는 뜻이 아닙니다. 무엇을 최적화해야 할지,
00:01:57그리고 가장 중요한 것은 언제 최적화해야 할지를 이해하라는 뜻입니다. 저는 이게
00:02:03대다수 개발자의 약점이라고 생각합니다. 사용자가 100명뿐인데도 마이크로서비스를 도입하거나,
00:02:08전혀 필요 없는 기능에 캐싱을 추가하는 경우를 많이 봤거든요. 세 번째 원칙,
00:02:14유지보수 담당자를 위해 코드를 작성하라입니다. 이는 코드를 작성할 때 미래의 담당자가
00:02:19코드를 관리하고 이해하는 데 어려움을 겪지 않도록
00:02:23작성해야 한다는 의미입니다. 오늘 여러분이 쓴 코드는 다른 개발자나
00:02:29미래의 여러분 자신이 유지보수하게 될 테니까요. 당장 작동하는 것에만 급급해서 명확성을 놓치면,
00:02:35나중에 코드를 다시 봤을 때 무슨 일이 일어나고 있는지 파악하기 힘들 겁니다. 이 예시를 보세요.
00:02:39둘 다 똑같이 작동하고 같은 기능을 수행합니다. 하지만 여러분의 코드베이스에는 어떤 코드가 있길 원하시나요?
00:02:45그러니 결론은, 스스로 코드를 작성하거나 AI로 코드를 생성할 때
00:02:50커밋하기 전에 항상 이해하기 쉽고 유지보수가 가능한지 확인하라는 것입니다.
00:02:55네 번째 원칙은 YAGNI입니다. "You Aren't Gonna Need It(당신은 그것을 필요로 하지 않을 것이다)"의 약자죠.
00:03:01이 원칙은 단순히 미래에 필요할지도 모른다는 이유만으로
00:03:06지금 당장 필요 없는 것을 만들지 말라는 뜻입니다. 대부분의 개발자는 미래에
00:03:10필요할 것을 예측하는 습관이 있습니다. 하지만 대부분의 경우 실제로 사용되지 않고 프로젝트에
00:03:16복잡성만 더할 뿐입니다. 항상 기억하세요. 미래에 필요할지도 모르는 일에 시간을 쏟는 것은
00:03:21지금 당장 필요한 것에 집중하지 못하게 만듭니다. 다섯 번째 원칙, 작동하는 가장 단순한 것을 하라입니다.
00:03:27이는 문제에 직면했을 때 언제나 실제로 작동하는 가장 단순한
00:03:32해결책을 선택하라는 의미입니다. 너무 깊게 생각하거나 과도하게 설계하지 마세요. 그저 스스로에게
00:03:38지금 당장 이 문제를 해결할 수 있는 가장 단순한 방법이 무엇인지 물어보세요. 이 아이디어는 익스트림 프로그래밍에서
00:03:43나왔는데, 일단 간단하게 만들고 나서 더 나은 방식으로 리팩터링하라고 가르칩니다.
00:03:48대부분의 개발자는 처음부터 완벽한 해결책을 구축하려고 하지만,
00:03:53결국 해결책을 지나치게 복잡하게 만들 뿐입니다. 이 원칙을 따르면
00:03:59더 빨리 작동하는 코드를 얻을 수 있고, 나중에 수정하더라도 잘못된 복잡한 설계를
00:04:04수정하는 것보다 훨씬 쉽습니다. 믿으세요. 개발자로서 자신이 과도하게 설계하고 있다는 것을 깨닫는 것은
00:04:10매우 중요합니다. 자, 여기까지가 바로 실천해야 할
00:04:14다섯 가지 프로그래밍 원칙이었습니다. 이 외에도 제가 이 영상에서 다루지 않은
00:04:19다른 원칙들도 많습니다. 도움이 되셨다면 댓글로 알려주세요. 2편을 만들어 보겠습니다.
00:04:24오늘은 여기까지 하겠습니다. 많은 응원 부탁드리고, 다음 영상에서 뵙겠습니다.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video