Skip to content
Jacob's second brain 탐색
어느 개발자의 인문학 · 3 / 7화

developer - 세상에 개발자는 많지만

4 min read

‘개발’이라는 말은 도처에 쓰입니다. 허허벌판에 아파트 단지를 올리는 일을 부동산 개발이라 하고, 새로운 약을 만들어내는 일을 신약 개발이라 합니다. 땅속의 광물을 캐내면 자원 개발, 사람의 역량을 키우면 인재 개발, 스스로를 갈고닦으면 자기 계발입니다. 무언가를 새로 만들거나 키워내는 일이라면, 분야를 가리지 않고 두루 ‘개발’이라는 말이 붙습니다.

그런데 묘한 일이 있습니다. 아무 수식 없이 그냥 “저는 개발자입니다”라고 하면, 대부분의 사람은 곧바로 한 가지를 떠올립니다. 컴퓨터 앞에서 소프트웨어를 만드는 사람입니다. 부동산 개발자도, 신약 개발자도 분명 개발자인데, 어쩐 일인지 ‘개발자’라는 말은 유독 소프트웨어를 만드는 사람의 것이 되어버렸습니다. 세상에 개발자는 그토록 많은데 말입니다.

저는 한 명의 소프트웨어 개발자로서, 때때로 이 작은 독점에 큰 책임감을 느낍니다. 인재를 길러내는 사람도, 새로운 약을 만들어내는 사람도 모두 훌륭한 개발자인데, 제 의지와는 무관하게 그 넓은 이름을 차지해버린 셈이니까요. 발달, 성장, 진보, 발전, 확장. ‘개발’이라는 말이 본래 품고 있던 그 너른 뜻들이 한쪽으로만 쏠려 좁아지지는 않을까, 가끔 마음이 쓰입니다.

그리고 이 독점은 꽤 흥미로운 질문을 품고 있습니다. 대체 소프트웨어를 만드는 일이 무엇이기에, 그 많은 ‘개발’ 중에서 이 말을 대표로 가져가게 되었을까요.

감싼 것을 풀어내다

답을 찾기 전에, 먼저 ‘개발’, 곧 영어 ‘develop’이라는 말이 본래 무슨 뜻이었는지를 따라가 보면 흥미롭습니다.

develop은 프랑스어에서 건너온 말인데, 그 뿌리를 거슬러 올라가면 옛 프랑스어 ‘데스벨로페(desveloper)‘에 닿습니다. 이 말은 ‘풀다’를 뜻하는 부분과 ‘감싸다’를 뜻하는 부분이 합쳐진 것으로, 글자 그대로 옮기면 **“감싼 것을 풀어 펼치다”**입니다. 흥미롭게도 이 말은 ‘봉투’를 뜻하는 영어 ‘envelope(엔벨로프)‘와 한 뿌리에서 나왔습니다. 엔벨로프가 무언가를 감싸 담는 것이라면, 디벨로프는 정확히 그 반대, 감싸인 것을 풀어 헤치는 것입니다. 그래서 이 단어의 가장 오래된 뜻은 “두루마리를 펼치다”, “싸인 것을 펼쳐 드러내다”였습니다.

지금 우리가 쓰는 뜻—자라난다, 발전한다, 만들어낸다—은 한참 뒤에 생겼습니다. 그리고 그 뜻이 생겨난 발상이 아름답습니다. 씨앗이 풀려나 한 그루 나무가 되고, 어렴풋한 생각이 풀려나 온전한 계획이 되듯, 안에 이미 잠재되어 있던 것이 풀려나 제 모습을 드러내는 일. 그것을 사람들은 develop이라 부르기 시작한 것입니다. 없던 것을 무에서 만들어내는 것이 아니라, 이미 안에 접혀 있던 가능성을 펼쳐 드러내는 일이라는 뜻이지요.

이 어원을 알고 나면, develop의 여러 쓰임이 하나로 꿰어집니다. 사진을 ‘현상(develop)‘한다는 것은, 필름 속에 이미 잠재된 상을 약품으로 드러내는 일입니다. 생각을 ‘전개(develop)‘한다는 것은 머릿속에 뭉쳐 있던 것을 풀어 펼쳐 보이는 일이고, 잠재력을 ‘계발(develop)‘한다는 것은 사람 안에 이미 있는 것을 끌어내는 일입니다. 모두, 안에 감싸여 있던 무언가를 풀어 드러낸다는 한 가지 뜻을 품고 있습니다.

이 어원은 소프트웨어의 한 가지 성질과도 이어집니다. 소프트웨어는 좀처럼 완성되지 않는다는 것입니다. 감싸인 것을 펼치는 일에는 본래 끝이 없기 때문입니다. 두루마리는 펼쳐도 펼쳐도 다음 자락이 나오고, 사람 안의 잠재력은 아무리 끌어내도 바닥을 보이지 않습니다. 펼친다는 것이 그렇게 끝나지 않는 일이라면, 그 펼침으로 빚어지는 소프트웨어가 완성되지 않는 것도 당연한 일입니다. 개발은 어딘가에 도달해 끝나는 일이 아니라, 계속 펼쳐 나가는 일인 것입니다.

생각을 또렷한 형태로 펼치는 일

그렇다면 다시 처음의 질문으로 돌아가 봅니다. 소프트웨어를 만드는 일은 왜 이 ‘펼쳐 드러내는’ 말을 대표로 가져가게 되었을까요.

소프트웨어를 만드는 과정을 살펴보면, 그것이 놀랍도록 이 어원에 가깝다는 것을 알게 됩니다. 개발자가 하는 일은, 무에서 무언가를 뚝딱 창조하는 것이 아닙니다. 그보다는, 누군가의 머릿속에 어렴풋이 들어 있는 생각—“이런 게 있으면 좋겠다”는 모호한 바람—을 가져다가, 컴퓨터가 한 치의 어긋남도 없이 알아들을 만큼 또렷하고 구체적인 형태로 풀어 펼쳐내는 일에 가깝습니다. 흐릿하게 감싸여 있던 생각을, 명료하고 구조화 된 형태로 펼쳐 드러내는 것입니다.

이 일은 생각보다 어렵습니다. 우리 머릿속의 생각은 대개 안개처럼 모호하기 때문입니다. “사용자가 편하게 쓰면 좋겠다”는 바람은 따뜻하지만 흐릿합니다. 개발자는 그 흐릿함을 견디지 못하는 자리에 섭니다. “편하게”가 정확히 무엇인지, 어떤 경우에 무엇이 어떻게 동작해야 하는지를, 빠짐없이 또렷하게 펼쳐내야 하기 때문입니다. 그러니 개발이란 결국, 모호한 것을 명료하게 만드는 일입니다. 접혀 있는 생각을 한 자락도 빠짐없이 펼쳐 드러내는 일이지요. 그 많은 ‘개발’ 가운데 소프트웨어가 이 말의 대표가 된 것은, 어쩌면 그것이 생각을 형태로 펼쳐내는 일의 가장 순수한 꼴이기 때문일 것입니다.

요즘은 그 펼치는 일을 기계가 거들기도 합니다. 인공지능에게 부탁하면, 흐릿한 생각을 코드라는 또렷한 형태로 제법 그럴듯하게 펼쳐내 줍니다. 그러나 기계가 대신해주는 것은 펼치는 ‘손’이지 펼칠 ‘무엇’이 아닙니다. 애초에 무엇을 펼쳐낼지, 그 흐릿한 씨앗을 품는 일은 여전히 사람의 몫으로 남아 있습니다. 펼쳐낼 생각이 없는 자리에서는, 아무리 빠른 손도 펼칠 것이 없습니다.

우리 안에 접혀 있는 것

이 어원은, 우리가 무언가를 ‘개발한다’고 말할 때 흔히 떠올리는 그림을 슬며시 바꾸어 놓습니다.

우리는 보통 개발을 없던 것을 새로 만들어 보태는 일이라 여깁니다. 새 건물을 짓고, 새 능력을 더하고, 새로운 나를 만드는 일이라고요. 그런데 이 말의 본래 뜻은 정반대를 가리킵니다. 만들어 보태는 것이 아니라, 이미 있는 것을 풀어 펼치는 것. 그러니 ‘자기 계발’이라는 말도 다시 보게 됩니다. 그것은 내게 없는 무언가를 억지로 만들어 붙이는 일이 아니라, 이미 내 안에 접혀 있는 것을 풀어 드러내는 일에 더 가깝습니다. 씨앗 속에 나무가 이미 들어 있듯이 말입니다.

무언가를 키운다는 것은, 어쩌면 강제로 만들어내는 일이 아니라 안에 잠재된 것이 제 모습을 펼치도록 돕는 일입니다. 좋은 개발자가 모호한 바람을 또렷한 형태로 펼쳐내듯, 우리도 저마다 안에 흐릿하게 감싸여 있는 무언가를 품고 있습니다. 그것을 무에서 새로 만들어내려 애쓰기 전에, 이미 거기 접혀 있는 것이 무엇인지 들여다보는 일. 그리고 그것이 다 펼쳐지기를 조급하게 기다리지 않는 일. 펼치는 데에는 본래 끝이 없으니, 우리 역시 평생 다 펼쳐지지 못한 채로 살아갈 것입니다. 그러나 그 미처 다 펼쳐지지 않음이야말로, 아직 펼쳐낼 것이 남아 있다는 뜻이기도 합니다.

See Also

Graph View

댓글 (0)

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요.