추상클래스 키워드의 잡담 (=0, __interface)
최근 동료 주니어 개발자와 이야기하면서 많은 생각을 하게된 이야기가 있네요. c++에서 =0 키워드를 붙이는 이유에 대해서 물어보더라구요. 제가 알고 있는 것은 [ 구현부가 없다는 명시적인 표현 ]으로 이야기를 했습니다. 돌아오는 답변은, # 동료 =0 키워드를 써도, 구현부가 있어도 컴파일은 정상적으로 된다. 구현부가 없는 것을 나타내고 싶은 것이라면 __interface 키워드를 쓰면 더 확실해진다. 그러면 왜 =0을 쓰는 것인가요? 생각이 많이 되더라구요. # 본인 그 키워드가 나오기 전의 프로그래머들간의 규약으로 취급되는 것이지 않을까요? # 동료 =0이 구현부가 없다라는 의미라면, __interface 키워드가 나왔으니 해당 키워드는 쓰지 않아도 되지 않나요? # 본인 모두가 해당 키워드를 아는게 아니라 실제로는 어려울 수 있으니, =0 키워드를 쓸 때에는 구현부가 없는게 좋지 않을까요? 이런저런 이야기를 하다가 관습이 그대로 남아있는 것일테니, 협업을 하려면 규약을 지키는 편이 좋을거라고 생각한다는 이야기로 마무리를 지었네요. 좋은 이야기를 해줘서 고맙다는 이야기도 필수로. 꽤나 많은 생각이 들더군요. 새로운 기술(위의 경우는 키워드겠지만)이 나오면 기존에 사용하던 방식을 고쳐야 할까? 새로운 방식으로 작업을 하면 더 편하고 효율적인 코드인걸까? 아직 제대로 답은 내리지는 못했지만, 일단은 새로운 방식도 써보려고 합니다.