개발자의 덕 연구: 아리스토텔레스 윤리학을 기반으로

김현수·2023년 1월 3일
1

출판기행

목록 보기
7/8
post-thumbnail

최근 글 쓸 일이 없어 펜을 꺾어두고 했지만, 메일까지 정성스레 보내는 친구에게 그에 맞는 나름의 답을 보내고 싶어 글을 쓰게 되었습니다.

Q: 개발자로서 무엇에 가치를 두고 있는가?
A: 나는 개발자다움(basic of Developer)에 가치를 두고 있다.

명확히 말해서는 개발자의 arete와 techne이다. 쉽게 말해서 개발자로서의 덕(훌륭함)과 개발자로서 갖추어야할 기술의 함양에 가치를 둔다. 후술한 많은 덕에 관한 내용은 아리스토텔레스의 니코마코스 윤리학에 근거한다. 철학에 손을 뗀지 오래라 오개념이 있을 것이다.

덕이란 무엇인가?

철학 수업이 아니기에 간단히 쓰고자한다. 고대 그리스 철학 전반적으로는, 덕이란 훌륭함이다. 동시에 앎이며 행복이다. 더 나아가 아리스토텔레스는 덕의 종류를 학습을 통해 얻는 지적인 덕과 반복을 통해 얻는 습관인 품성적 덕으로 구분하였다. Arete는 두가지 덕의 총칭으로, 개념적으로 품성적 덕의 상위어로 쓰이지만 이 글에서는 Arete (덕, 휼륭함)을 품성적 덕과 일치시키도록 하겠다.

arete

따라서 arete는 태도, 습관, 품성과 관련한 것이다.

techne

techne는 흔히 아는 기술이라고 생각하면 된다. 기술의 경지가 훌륭함을 의미한다.

개발자다움이란 무엇인가?

개발자의 본질이 무엇인가? 수많은 사람들과 개발자를 구분하는 기준이 무엇인가? 아리스토텔레스 형이상학에 따르면 개발자의 형상은 무엇인가에 대해서 질문하는 것이다. 개발자는 왜 개발자인가?

간단한 사전적 정의에 따르면 개발업무에 종사하는 사람을 개발자라고 부른다. 정답이다. 그러나 내가 찾고 싶은 것은 개발자의 덕이다. 훌륭한 개발자는 무엇을 갖추고 있는가? 나는 이 부분에 대하여 두가지 분석을 제시하고자 한다.

  1. 개발자의 Arete
  2. 개발자의 Techne

개발자의 Arete는 무엇인가?

쉽게 말해서 "훌륭한 개발자가 가지고 있는 성품은 무엇인가?"를 묻는 것이다.

아리스토텔레스는 다섯가지 지적의 덕성을 들었다.

  1. 프로네시스(실천적 지혜)
  2. 테크네(techne, 기술적 지식)
  3. 에피스테메(epistêmê, 인식력)
  4. 누스(nous, 직관적 이해력)
  5. 소피아(sophia, 현명함)

프로네시스는 신중, 윤리, 실용적 지혜 또는 실용적 이성 등을 뜻하며 특정한 상황에서 공익을 위해 최선의 행동을 선택하는 능력을 말한다. 테크네가 지식 그 자체라면 프로네시스는 가치 판단과 가치 판단 실현에 대한 자각이다.

개발 분야가 비록 명확한 정답이 있는 분야인 것처럼만 보이지만, 사실 그렇지 않다. 결국은 인간 간의 협동이 정말 중요한 분야이기에 정답인 판단이 아닌 개중에서 그나마 옳은 판단, 윤리적 가치의 판단을 내려야한다.

팀 프로젝트에서 리더로서 어떻게 하는 것이 옳은 것인지, 참여하지 않는 이에게 어떻게 행해야하는지, 나는 어떻게 행해야하는지에 대한 여부는 항상 고정적이지는 않다. 여러 상황에 따라 나는 그에 맞는 적절한 선택을 내려야하는것이다. 이 모든 판단은 스스로에게 진실된 사유로부터 기반한다. 적어도 스스로는 속이면 안된다. 군중 뒤에 숨어, 화려한 명패 뒤에 숨어, 학벌 뒤에 숨어, 나의 인맥 뒤에 숨어, 주변의 응원에 숨어, 거짓된 사유를 하게되고, 거짓된 사유는 옳은 판단을 내릴 수 없게 만든다. 항상 스스로를 진실되게 평가해야만 한다.

아리스토텔레스는 프로네시스를 “진실을 포착하는 결정적인 마음의 습관(hexis)”이라고 묘사한다. 항상 스스로에게 진실된 판단을 내리는 것 그것이 윤리적이며, 이성적이며, 최종적으로는 모두에게 이익을 제공하는 것이다. 이를 항상 염두하는 것이 개발자의 arete 중 하나라고 생각한다.

이 프로네시스의 과정에서 수없이 겪은 경험은 판단의 재료가 되어 나의 판단이 더욱이 옳은 가치를 향한 판단으로 나아가는 것이다.

결론은 개발자로서 갖추어야할 품성적 덕은 "진실됨"이다. 아직까지는 이보다 더 가치있는 덕을 찾지 못했다.

주변의 친구들이 객관적 평가를 내리지 못하고 거짓된 자아 속에서 아직도 머무르고 있는 모습을 보면 항상 마음이 아프다. 결국 그 허상은 깨지고, 허상이 깨지면 실로 고통스럽다. 추락하고나서야 본인이 가지고 있는 알량한 자존감의 trigger가 얼마나 보잘것없는지 인지하게 된다. 그 추락을 맛본 나에게는 스스로에게 씌우는 허상이 가장 두려울 뿐이다.

개발자의 Techne는 무엇인가?

기술적 덕. 이것은 앞의 4가지 덕과 상이하게 품성과는 엮이지 않는다. 기술적 덕은 배워 아는 것이다. 간단하다. 많이 읽고, 많이 쓰고, 많이 행하면 된다.

그러나 1년간의 프로젝트 위주의 개발 공부를 통해 느낀 점은 근본을 공부해야만 한다는 것이다.

1년간 React Native, Python , Selenium, Beautifulsoup, AWS, GCP, FastAPI와 같은 기술 스택을 건드려 보았다. 서버도 조금 해보았고, 프론트도 조금 해보았다.

많은 에러를 해결하기 위해 시간을 사용했다. 결론은 책을 읽고 개발을 진행하자는 것이다. 책을 읽는 그 잠깐의 지겨움을 못이겨 개발에 바로 착수했던 수없는 경험이 다들 있지 않은가? 개발하는 그 순간은 시간이 빨리 간다. 해결한다면 그 또한 재미있는 경험이다. 그러나 내가 오류를 해결하기 위해 쓴 8시간대신 대부분 책 20분을 읽고 해결할 수도 있었다. 이 또한 스스로에게 하는 거짓말이다. 열심히 했다는 착각에 빠져, 오늘도 뿌듯하게 집에 돌아가는 그 무지함, 그러한 역겨움의 성질의 것을 언제까지 반복할 것인가?

글쓰기를 할 때 누가 문법을 공부하는가?

수학문제를 풀 때 누가 정석을 열어보는가?

그것은 원래 이미 깨쳐야했던 것이다. 1년간 얼마나 수없이 언어의 문법을 찾아보았는가..?

이것이 내가 생각한 개발자의 techne이다. 근본은 스스로 찾아보지 않을 수준이 아니라, 남을 가르칠 수 있을 정도로 숙달해야하는 것이다.

근본의 영역이 단순히 문법 뿐만은 아니다. 자료구조, 네트워크, 알고리즘, OS , 컴퓨터 구조 등등 전공자로서 갖추어야할 근본만큼은 남을 가르칠 수 있을 정도로 숙달해야한다고 생각한다. 그렇지 않다면 비전공자와 나를 구분할 것은 거의 없다고 볼 수 있다. 개발자다움이 없는 것이다.

새로운 덕을 향해

정리하자면 개발자는 진실된 사유를 기반으로 옳은 판단을 내리는 성품을 가지고, 기술에 대한 근본적 탐구를 잊지 않아야 한다. 그것이 내가 생각하는 훌륭한 개발자의 덕이다. 물론 나는 나의 덕을 재고해내갈 것이다. 앞으로 겪을 수많은 경험을 통해 나의 덕도 수정되어질 것이다. 그러나 나는 어느정도 확신한다. 스스로에 대한 진실된 평가를 내릴 수 있다면 앞으로의 큰 문제는 없을 것이라고. 동시에 나의 주변은 그런 사람으로 가득차야만 한다. 그렇게 하기 위해서는 나부터 실천해야할 것이다.

그렇다고 부정에 빠지진 않아야 한다. 터무니 없는 이유로 당신을 긍정하라. 그러나 차가운 이성으로 스스로를 분해하라. 안토니오 그람시의 어록으로 글을 마무리한다.

이성으로 비관하되 의지로 낙관하라

profile
숭실대학교 소프트웨어학부생

3개의 댓글

comment-user-thumbnail
2023년 1월 29일

좋은 글입니다.
앞으로의 세부적인 목표가 궁금하네요.

답글 달기
comment-user-thumbnail
2023년 4월 11일

이 글을 이제서야 보네요! 여러모로 본받고 싶은 점이 많습니다!

답글 달기
comment-user-thumbnail
2024년 2월 6일

의지 없이 앉아있는 시간을 줄여야겠다는 생각이 드네요. 진득하게 책이던 강의던, 하나의 커리큘럼을 따라가는게 쉽지는 않지만 더욱 노력해보겠습니다!

답글 달기