아무리 하드웨어의 처리속도가 빨라지고 용량이 커지고, 네트워크의 속도가 빨라져서 optimal 한 개발의 필요성이 상대적으로 낮아졌다고 해도 비효율적인 코드는 전체 시스템에 부하를 주고 원하는 결과를 적기에 주지 못할 수도 있다 논리적 사고만 하면 코딩은 누구나 다 할 수 있다 그런 이상적인 말을 하고 싶지만 사실 while(0){fork();}만 해도 시스템은 뻗을 수 있다 권한 부여 정책을 강화해서 이런 코드를 막는다? 그것도 한계가 있다 그럼 sql 튜닝이 왜 있겠는가 기업교육에서 한동안 소프트웨어적 사고, SW마인드 등이 유행한 적이 있다 사실 이 유행은 4차 산업혁명의 흐름에 대응하여 발생한 것이 아니다 소프트웨어적 사고. 문제 해결을 위해 접근하는 사고방식 자체를 교육하는 것이 목적이었을 것이다
내가 기업교육으로 SW마인드 강의를 들었을 땐, 알고리즘적 사고를 해야 한다 어렵지 않다, 당신들도 할 수 있다 고 했다 (교육대상의 80% 이상이 사무직이었다) 우스갯소리로 말하자면 고등학교 때 수학선생님이 떠오르는 말이다 수 1에서 알고리즘을 가르치지 않고 넘어가면서 선생님은 알고자 하는 이즘(-ism)만 있으면 알고리즘은 배우지 않아도 된다고 했다 이런 맥락에서 코딩은 논리적 사고만 하면 누구나 다 할 수 있을 것처럼 보인다 노코드 앱으로 쉽게 응용프로그램을 개발할 수 있을 것 같이 생각한다
하지만 사람은 딜레마에도 빠지고, 무한루프에도 빠지고 이런 걸 방지(avoid) 하기 위해 예외(exception) 조건도 많이 걸지만 SW적 사고에도 불구하고 수많은 버그와 에러가 생기는 것이 개발 아니던가 전문가도 무결점의 코딩을 하지 못한다 가끔 한방에 컴파일되는 코드 보면 실행하기 두려울 때도 있다(이게 된다고?????)