✨컴공주✨ [1052682] · MS 2021 (수정됨) · 쪽지

2022-05-02 21:36:43
조회수 560

컴공 일기2

게시글 주소: https://orbi.kr/00056473604


코딩을 잘하는 사람들의 공통적인 특징이 무엇일까요? 제 개인적인 견해로는 '시점'과 '효율성'을 코드에 삽입할 줄 아는 거예요..!


A라는 코드가 있고, B라는 코드가 있다고 가정해봅시다. 둘다 컴파일러를 통해 실행시키면 똑같은 결과가 나와요. 그럼 과연, 거기서 A,B는 '비스무리한 코드'라고 결론지어도 될까요?


저는 아니라고 생각해요. 왜냐하면 코드는 반드시 '유지/보수' 관점 즉 '미래'를 신경써야 하거든요. 뿐만이 아니라 이제껏 짜온 코드의 방향성 즉 '과거' 또한 신경써야죠.


경력이 많은 개발자들의 코드엔, 시점이 존재해요. 과거와 미래를 아주 정확히 고려할 줄 안다는 것이죠. 그래서, 다른 코드에 비해 유지/보수에도 적절하고, 기존 코드와 합체했을 때도 '효율'이 나오는 것이지요. 근데, 똑같은 결괏값을 가지는 코드지만 이번에는 유지 보수에도 부적합하고, 이제껏 짜온 코드들의 흐름을 반영할 수 없다면요? 처음부터 다시 짜야되겠죠. 그런 것은 생산성이 0에 가까우니까요. 이렇게, 같은 결과를 낸다고 하더라도 코드 안에 시점과 효율이 있느냐 없느냐는 하늘과 땅의 차이랍니다.


물론, 내 코드 안에 시점을 집어넣는다는 건 정말 어려운 일이지만요..



그런 관점에서 다음 코드는 '오류'가 검출되진 않더라도, '효율적'이지 못해요. 왜냐하면, a라는 객체를 이상하게 두 개의 함수가 관리하고 있거든요. TestFunc() 함수와, a 객체의 생성자 함수가요. 한 객체를 하나의 함수로 관리하는 게 훨씬 이득이고 효율적인데, 이 코드는 그러지 못했어요. 


게다가 더 웃긴 건, param이라는 CTest객체가 TestFunc() 함수의 호출 과정에서 a를 원본으로 복사 생성이 되어버리죠. 하나의 함수로 관리하지 못한 것도 슬픈데, 애처롭게 a의 객체가 원본과 복사본 이렇게 두 개가 되어버렸어요.


따라서, 이 코드는 문제가 상당히 많은 코드랍니다.

0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.