좋은 코드란 무엇인가라는 질문은 단순한 듯 하지만 깊은 성찰을 요구하는 주제였다. 면접에서 질문을 듣는 순간까지도 '당연한 질문 아닌가'라는 생각을 했다. 그렇지만 면접관의 의도, 대답의 방향성, 면접관의 주관적인 가치를 고민하며 평소 생각을 하지 않고 살았구나를 느꼈다. 나는 생각을 하는 사람인가?
좋은 코드에 대한 고찰은 깊은 심연과 같이 느껴진다. 성능 지향적인 코드와 유지보수성이 높은 코드 사이의 균형은 단순한 기술적 선택을 넘어서는 것 같다. 돌잔치 아기 앞에 놓인 수많은 물건처럼 어떤 것을 골라도 틀리지 않은 답인 거 같다. 물건의 가치도 중요하지만 물건에 부여된 의미가 더 중요하다는 뜻이다.
나의 생각이 깊어질수록 내가 나이를 들어감에 따라 깊은 생각을 항상 유지할수 있다면, 처음에는 당연하고 원래 그런 거야라고 생각한 부분들을 새로운 시각에서 다시 볼 수 있게 될 것이다. 스스로의 여정을 통해 깨닫는 기쁨이며, 나의 성장과정이 될 거라 믿는다. 또한 이러한 즐거움과 성장 과정은 혼자 즐기는 것이 아닌 다른 사람과 공유해서 돌잔치판에 더욱더 다양한 물건을 올려둘 수 있지 않을까? 미래의 내가 과거의 나와 다른 물건을 들고 있다는 것도 바꿔 들게 된 분기점을 다시 보는 것도 많은 시간이 가져다주는 축복이지 않을까
좋은 코드란 무엇일까?
유튜브 혹은 다른 IT 커뮤니티 글을 보더라도 엄청나게 많은 글이 존재하며 그러한 주장들이 나는 다 맞다고 생각한다. 다들 다른 환경에서 살고있지 않은가 여기서 본 주장들과 내가 생각해서 정리한 주장으로는 다음과 같다.
1. 성능적으로 뛰어난 코드
2. 가독성 있는 코드
3. 유지보수가 쉬운 코드
물론 이러한 토끼를 모두 잡으면 금상천화겠지만 일을 한다는 것은 제한된 시간 내에서 대부분 진행된다. 따라서 선택과 집중을 할수 밖에 없고 이러한 선택과 집중 즉 정의는 누가 만들어 내는 것일까?
코드는 예술일까 기술일까 효율성과 아름다움을 동시에 추구할 수 있을까? 타협하지 않고 코드를 작성하기 위해선 얼만큼의 거장이 돼야 할까
완벽이라는 것은 또 존재할까?
코드라는 것은 트렌드를 따라가고 완벽이라는 것도 이상이지 않을까? 적당히 하는 것은 과연 나쁜가?
이러한 질문들은 나에게 딜레마를 준다. 그렇지만 나는 이런 질문에 아직 답을 내리지 않아도 되는 위치에 있긴 하다. 일단 해보자 시키는 것을 해보고 몸으로 직접 느껴보고 나만의 가치관을 만들어가 보자
유튜브나 다양한 IT 커뮤니티를 둘러보면, 이 주제에 대한 수많은 의견과 글이 존재한다. 그리고 나는 그 모든 주장이 각자의 환경에서 맞는 이야기라고 생각한다. 다들 다른 상황과 환경 속에서 살아가고 있지 않은가? 여기서 본 주장들과 내 스스로 생각해 정리한 '좋은 코드'의 요소는 다음과 같다.
- 성능적으로 뛰어난 코드
- 가독성 있는 코드
- 유지보수가 쉬운 코드
물론 이 모든 요소를 충족할 수 있다면 금상첨화겠지만, 현실에서는 주어진 제한된 시간 안에서 일을 진행해야 한다. 결국 선택과 집중이 필요하며, 이러한 선택과 집중—즉, 정의는 누구에 의해 결정되는 것일까?
코드는 예술일까, 기술일까? 효율성과 아름다움을 동시에 추구할 수 있을까? 만약 그렇다면, 이를 타협하지 않고 구현하기 위해선 얼마나 많은 경지에 올라야 할까?
완벽이라는 것이 과연 존재할까? 코드라는 것은 결국 트렌드를 따라가는 것이고, '완벽'이라는 것도 이상적인 개념에 불과하지 않을까? 그렇다면 '적당히' 하는 것은 과연 나쁜 것일까?
이러한 질문들은 나를 끊임없이 딜레마에 빠지게 한다. 하지만 지금의 나는 이런 질문들에 반드시 답을 내려야 하는 위치에 있지 않다. 중요한 건, 일단 해보는 것이다. 주어진 일을 직접 해보고, 몸으로 느껴보며 나만의 가치관을 천천히 만들어가면 된다.
그리고 언젠가, 내가 이런 질문들에 명확한 답을 제시할 수 있는 사람이 되기를 바란다. 지금의 작은 경험들이 쌓이고, 시행착오를 통해 배우며, 나만의 기준을 세워가는 여정이야말로 더 큰 성장을 이끌어낼 것이다. 좋은 코드란 무엇인가에 대한 나의 정의를 나만의 방식으로 구축해 나가는 것, 그것이 내가 앞으로 나아가야 할 방향임을 믿는다.
Coding, Software, Computer Science 내가 공부한 것들 잘 이해했는지, 설명할 수 있는지 적는 공간