독서

좋은 프로그램이란 무엇인가?

사막여유 2024. 11. 28. 20:57
728x90

참고해보면 좋은 블로그 글

조엘 온 소프트웨어 (1)

https://opencv-master.tistory.com/180

 

조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전(1)

2장 기본으로 돌아가기기본으로 돌아가기에서는 문자열을 덧붙이는 strcat 이라는 함수를 예시로들며 나오게 됩니다.위 2장에 대한 저의 생각을 작성하기 전에 잠깐 이 함수에 대해서 알아보겠습

opencv-master.tistory.com

 

조엘 온 소프트웨어 (2)

https://opencv-master.tistory.com/182

 

조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전 (2)

5장 ~ 8장 손쉬운 기능명세 작성법 기능 명세의 중요성 프로젝트를 시작하기 전 기능명세 작성에 대한 중요성은 5장에 나오는 아래 3문장으로 요약할 수 있습니다." 모든 사람이 명세서 작업을

opencv-master.tistory.com

 

조엘 온 소프트웨어 (3)

https://opencv-master.tistory.com/183

 

조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전 (3)

11장 고리타분한 버그 수정 고리타분한 버그수정에 관련해서는 중요한 핵심내용만 짚고 넘어가고싶습니다. 버그를 모두 수정하는 작업이 어떤 값어치가 있는지 계산기를 두드려 보십시오.저

opencv-master.tistory.com

 

좋은 프로그램, 코드란 무엇일까요?

 

버그가 전혀 없는, 그리고 Warning도 하나도 없는 그런 깨끗한 코드가 좋은 코드일까요?

아니면 모든 메서드들이 최고의, 최적의 알고리즘으로 짜여진 코드가 좋은 코드일까요?

 

아직 조엘 온 소프트웨어를 15장까지밖에 못읽어봤지만 한가지 확실한건 좋은 프로그램이란

'돈' 되는게 좋은 코드, 프로그램이다.

 

이걸 조금 뒤집어서 해석해보면, '돈'이 되기 위해서는 어떤 코드, 프로그램을 작성해야하나요?

 

뭐든 돈이 되기 위해서는 고객이 원하는 기능들을 제시간안에 만들어서 전달해주면 됩니다.

 

버그를 잡느라, Warning을 모두 없애느라 제 시간안에 짜지 못하면 좋은 코드가 아닙니다.

최적의 알고리즘으로 짜느라 제시간안에 짜지 못한다면 그것도 좋은 코드가 아닙니다.

 

그러면 제 시간안에만 원하는 기능들을 두서없이 때려넣어서 만들면 그건 좋은코드인가요?

저는 단순하게 보면 '사용자가 원하는 기능이 모두 구현되어있다면' 좋은 코드라고 생각합니다.

 

하지만 그 이외의 기능이 추가될 수 있는 여지가 있는 상황에서 그렇게 만들었다면 그건 나쁜코드라고 생각합니다.

당연하지만 확장성이 없기 때문에 책에서 나온 것처럼 기술 부채가 쌓이기 때문입니다.

 

저는 이처럼 좋은 코드의 기준은 '고객이 원하는 기능들을 제시간안에 만드는 것' 이라고 생각하지만,

유동적으로 바뀔 수 있는 상황에 대한 판단력을 가진 개발자가 작성한 코드가 작성한 코드들이 좋은 코드이지 않을까 생각도 듭니다.

 

이런 개발자가 되기 위해서는 조엘 온 소프트웨어 책에서 나온 것처럼 

"기술 명세 작성", "버그에 대한 유동적인 판단", "프로젝트에 대한 구체적인 기간 예측" 등을 

15장에서 나왔듯이 매일매일 꾸준히 해야한다고 생각됩니다.

 

그럼으로써 좋은 코드들을 뽑아낼 수 있다고 생각되구요.

728x90