개발자란/이민석교수님

[이민석교수님] SW개발자의 10개명

pythaac 2022. 12. 13. 00:27

https://hl1itj.tistory.com/19?category=327240 

 

SW 개발자의 10계명

1. 소프트웨어 품질은 너희의 하나님이다. 품질 앞에 다른 요소들을 있게 말라. 2. 너만의 코딩 스타일을 만들지 말라. 3. printf()나 그와 유사한 것을 디버깅 목적으로 쓰지 말라. 4. Coding Convention을

hl1itj.tistory.com

 

1. 소프트웨어 품질은 너희의 하나님이다. 품질 앞에 다른 요소들을 있게 말라.

- 소프트웨어 품질을 결정하는 요소는 다양하게 있습니다. 개발자가 되기 위해 여러 기술력을 키우는 이유도 이 품질 때문이라고 생각합니다. 그런데 아직 "품질 앞에 다른 요소들을 있게 말라"라는 말은 어떤 의미인지 이해를 못했습니다.


2. 너만의 코딩 스타일을 만들지 말라.

- 코드의 품질 중 하나가 일관성/가독성을 가진 코드라고 생각합니다. 여러 개발자가 함께 개발하는 코드에서 code convention을 지키는 것은 생산성과 크게 연관있다고 생각합니다.


3. printf()나 그와 유사한 것을 디버깅 목적으로 쓰지 말라.

- 댓글에 부연설명을 보니 printf()는 디버깅 용이 아니기 때문에 디버거를 사용해야한다라고 하십니다. 저는 printf로 버그를 발견하기 전에, 디버깅을 통해 버그를 미리 잡아야한다는 의미로 해석했습니다. printf로 나타나는 문제는 버그가 아니라 다른 문제여야한다(예를 들면 Not found, Bad request 등)로 이해했습니다.


4. Coding Convention을 기억하여 거룩하게 지켜라.

- 2번과 같은 맥락으로 이해했습니다. 코드만 봐도 개발자의 실력을 알 수 있다는 건 이런 부분을 포함하지 않을까 생각됩니다.


5. 개발 도구와 개발 환경를 공경하라.

- 공경...을 사용하신 의중을 이해하진 못했지만, 개발 도구와 환경(IDE 등)이 주는 개발의 편리함에 감사함을 가지라는 말씀으로 생각됩니다.


6. 모델과 설계 내용을 죽이지 말라.

- 제 생각엔 초기에 기획하고 설계한 내용이 개발하면서 변질되지 않도록 새겨야한다는 의미같습니다. 개발이 진행되다보면 의도하지 않게 설계와 다르게 구현하거나 다른 방향으로 나아갈 때가 있습니다. 설계에 공을 들였다면, 설계된 데에는 이유가 있고, 이를 잊는 것을 경계하라는 의미로 해석됩니다. 


7. 플랫폼 종속적인 것과 독립적인 것을 섞지 말라

- 중복을 줄이는 재사용성을 언급하신 것이라 생각됩니다. 예를 들면, account 관련된 서버는 특정 서비스에 종속되지 않게 분리시켰을 때 다른 서비스에서도 사용이 가능합니다.


8. 오픈소스 SW를 네가 짠 것 처럼 하지말라.

- 이건... 법적으로도 문제가 있기 때문에 당연하다고 생각합니다. 오픈소스 라이센스를 이해하고, 사용시 라이센스 준수사항을 지키며 라이센스 표기를 필수적으로 해야합니다.


9. 어쩌다 한번 튄 것을 버그가 아니라고 하지 말라.

- 재현되지 않는 버그를 가벼히 넘기지 말고 꼼꼼하게 체크하라는 말씀 같습니다. 코드 품질은 이런 디테일에서 최고로 올라간다고 생각합니다.


10. 너의 전 직장 코드를 탐내지 말라.

- 저는 전 직장에서 사용했던 "부분"을 활용하여 내가 담당한 코드 품질을 높일 수 있다고는 생각합니다. 그러나 코드를 카피하는 식으로 현 직장의 코드를 갈아버린다면 법적으로도 문제가 있으며, 좋은 코드를 위한 충분한 고민 없이 무작정 카피하는 것은 오히려 역효과가 날 수 있습니다.