logo MSJO.kr

소프트웨어 엔지니어, 디벨로퍼

2019-09-30
MsJ

소프트웨어란 문제 상황을 시스템으로 옮기는 것을 말한다. 문제를 주지 않았는데 답을 어떻게 작성할 것인가? 답만을 작성하는 데 익숙해진 사람은 문제 상황 인식이 없을뿐더러 진실에 접근하기 어렵다. 마르크스(Karl Marx), 니체(Friedrich Wilhelm Nietzsche)가 말한 데로 자본주의 사회에서 내가 속해있는 소속(계급)에 철저히 지배받는 개(Dog)일 뿐이다. 수학 문제를 주지 않으면 수학을 하지 못하거나 해결하지 못하는 것이다. 여기에 개발자와 요즘 ‘기레기’로 불리는 기자가 있다. 모두가 ‘찌라시’를 양산(量産)한다.

모든 것에는 격(格)이 있다. 인식(認識)의 수준을 높이려 하지 않고 지식(知識)의 양에만 집중하거나 정해진 답안지 작성만을 위한 훈련의 결과로 요즘 대학생의 격은 예전과 아주 다르다. 대학축제와 집회를 보면 범인(凡人)들도 충분히 느끼는 상황이라 보인다. 진리를 추구할 것이 아니라 진실에 접근하는 나의 해석(解釋學)을 키워야 한다. 진리는 신념과 이념의 결과 덩어리이며 이것이 상징화, 기호화되고 결국 언어의 미망으로 나의 판단은 없어지는 것이다.

종교는 졸업하는 것이다. 깨달으면 거기에 머물면 안 된다. 머물면 썩는다. 이념과 신념을 사랑하지 말자. 이념과 신념은 자기 합리화를 적극적으로 만들어 결국 메트릭스 안의 기계적 인간이 되고 만다. 이념과 신념, 종교 이러한 것들은 항상 변화하는 것이기 때문에 답안지를 정해놓고 거기에 종속되어 순위 경쟁이 최선이라는 인식을 버려야 한다. 자연과 더불어 진실에 접근하려는 자세만 있을 뿐이다. 인문학과 철학은 교육에서 매우 중요하며 개발자도 예외는 아니다. 문제 상황에 대한 인식이 없기 때문에 ‘찌라시’는 감동이 없다.

플라톤, 아리스토텔레스, 토마스아퀴나스를 이어온 기독교적 서양철학의 목적론과 이분법적 사고가 얼마나 인간의 자유에 반(反)해왔는지에 대한 통찰이 필요하다. 문명은 쓰레기의 양과 비례한다. 역사는 목적론적으로 발전하지 않으며 발전 또한 한 방향으로 발전해 가는 이상형은 아니다. 임금 할 수준의 사람이 군수를 해야지 군수 정도의 격으로 임금을 하려 하니 선택적 정의/분노/기사만 나오는 것이다. 주어진 대로 ‘타이핑’하면서 나의 작품이라고 말하는 것은 주체적이라 할 수 없다.

파이썬의 미신에 빠지지 말자. C/C++에서 자료구조와 알고리즘을 이해해야 파이썬도 격이 생기는 것이다. 개발자 사이에서 ‘백견이 불여일타’라는 말이 있다. 물론 ‘일타’가 생각 없이 ‘타이핑’을 해대는 개발자를 말하는 것이 아닐 것이다. 툴의 기능으로써 프로그래밍 언어의 이해보다는 생각하는 프로그래밍이 개발자가 ‘기레기’가 되지 않는 길이다.

아는 만큼 보이는 것이다. 추상화, 인터페이스, 클래스, Dependency Injection, MVC, MVVM, UI/UX, static, 디자인 패턴 등. 이것은 교과서 이야기가 아니다. 실제로 이러한 것이 실무와 설계에서 얼마나 중요한 것인지를 피부로 느껴야 한다. 특히 데이터베이스 대한 깊은 이해는 업무 프로그램 개발에 있어서 제일 중요하다고 할 수 있다. 경력 20년의 개발자에게서도 그 격을 찾아보기 힘든 게 우리나라의 실제 개발자 수준이다. 소프트웨어에는 관심이 없고 하드웨어에만 관심 있는(부동산에만 관심 있고 지식재산권에는 관심 없는) 사람은 소프트웨어 엔지니어가 아니다.

간단한 프레임워크는 내가 설계할 수 있어야 중급 정도의 개발자라 할 수 있다. 10%의 지식으로 90%를 논(論)하기 때문에 개판이 된다. 90%의 앎으로 나머지 10%를 논쟁(論爭)으로 채워야 한다. Developer로 인정받고 싶으면 끊임없는 공부가 필요하다. 이것 없이는 SKY의 ‘기레기’가 될 뿐이다.


Prεv   Nεxt
Content
Search     RSS Feed     BY-NC-ND