소프트웨어 붐이 일어나면서 코딩학원이 우후죽순 생긴다고 한다.
코딩을 이른 나이에 접해보는 것도 물론 중요하겠지만 이보다 더 중요한 것은 논리력이라고 생각한다.
필자의 경우 프로그래머로서의 직상생활을 처음 시작할때 참 고생을 많이 했었다.
그 당시만해도 월화수목금금금이 일상이었고 그렇지 않다고 하더라고 내가 맡은 부분이 개발완료가 되지 않아서 금금금이 되지 않을 수가 없었다.
그 당시에는 왜 그렇게 화면에서 넘긴(혹은 넘겼을 거라고 생각한? ^^;) 데이터가 서버 로직으로 넘어오지를 않았는지..
그리고 다른 로직으로 넘어갈때 왜 그 데이터들이 없어졌었는지... 지금 생각하면 웃음이 나기도 하지만 그때는 그런 것들이 참 어려웠었다.
개발도구가 잘 되어 있어서 디버그 모드로 데이터들을 보는 것은 알았지만, 그 데이터들이 중간에 어떻게 없어지는지를 잘 분석해서 알아가지는 못하고, 봐도 봐도 똑같은 현상들을 그저 반복해서 보기만 하는 것이다. (자꾸 에러 화면만 보면서 이 에러가 왜 나는지를 모르겠어요.. 라면서 ^^;)
그러면서 당연히 정시 퇴근은 물건너가고 주말에는 어떻게든 해결해야 겠다며 다짐하곤 했던 것이다.
그렇게 고생을 하던중에 함께 고생하던 당시의 회사 대표께서 뭐가 그렇게 안되냐면서 묻는 것이었다.
그리고 같이 확인해보자며 데이터를 어디서 넘겼는지를 먼저 확인해 보자고 하는 것이었다.
그리고 그다음 로직으로 넘어가는 것을 확인하고 그리고 그다음.. 그 다음 하나씩 살펴보다 보면 어디서 빠지는지를 곧 알게 되는 것이었다.
나는 몇일을 고민했던 것인데 그렇게 대표와 함께 살펴보다 보면 오류의 원인을 곧 알게 되는 것이었다. 이게 그 당시에는 그렇게 신기했었다.
그러면서 대표님은 예전부터 Java를 그렇게 잘하셨나고 물어보았었지만, 그때의 대표의 답변은 "나는 Java 한번도 안해봤는데?" 이것이었다.
그때 당시 나는 적잖이 충격을 받았었다.
어떻게 이 언어를 한번도 다루어보지 않았는데도 디버깅이 가능한거지? 하는 의문이 들었던 것이다.
이것이 가능한것이 나는 논리력이라고 생각한다.
그래서 코딩이나 프로그래밍 언어와 상관이 없이 먼저 선행되어 갖추어져야 할것이 논리력이라고 생각하는 것이다.
프로그래밍의 전체 절차가 어떻게 되어야 하는 것인지 그리고 A 절차가 완료되고 나면 B 절차가 수행이 되는데
그 조건이 어떻게 되는 것인지...
즉, A 가 완료되면 어떤 조건을 통해서 B 절차가 수행이 되는 논리적인 절차를 알고 있으면, 괜히 쌩뚱맞은 C 절차를 의심하는 논리의 오류를 범하지 않아도 되고, 더 빠른시간내에 원하는 바를 얻을 수 있을 것이라 생각한다.
A가 되면 B가 되고 B가 되면 C가 되어야 하는 어떤 명확한 기준의 흐름을 갖고 로직에 접근해야 소프트웨어의 결과 또한 명확하게 된다고 생각한다.
결코 이 소프트웨어가 어떤 조건에서 어떻게 작동해서 어떤 결과가 나오는지를 개발한 사람 본인이 명확하게 설명하지 못하면 안된다.
이것이 소프트웨어 개발에 논리력이 중요한 이유라고 생각한다.
이 논리력을 갖추는데 필요한 것은 필자의 의견으로는 오히려 이과 쪽이 아니라 인문학적인 측면으로서의
독서가 필요하지 않나 생각이 된다.
독서하고 독서를 통해서 생성할 수 있는 상상력, 이러한 것이 오히려 논리력을 갖출 수 있게 되는 기반이 될것이라 생각한다.
'단상 모음' 카테고리의 다른 글
공공SW '변동형 계약제' 도입에 대한 단상 (0) | 2024.01.07 |
---|