brunch

내 코드에서 일정한 질서와 규칙에 따라 흐르는 원리

인공지능 시대의 소프트웨어 공학

by 안영회 습작

<인공지능 시대의 개발자로 자신을 개발하기>를 쓴 직후에 전혀 관련이 없는 중국 관련 영상을 보다가 떠오른 생각을 글로 남깁니다.


의법치국(依法治國)이라는 중국식 법치주의

영상에서 조영남 교수님은 '시진핑 실각설'을 우리 사회의 중국에 대한 무지를 보여주는 대표적인 현상이라고 설명합니다. 그 말에 귀가 솔깃해서[1] 인내심을 갖고 긴 영상을 보다가 다음 장면을 만나게 됩니다.

그가 앞으로 강의할 내용을 강조하는 설명이었는데, 중국의 급속한 성장을 이해하라면 '중국 정부'를 알아야 한다는 주장이었습니다. 그리고, 그 정부는 '의법치국'이라고 하는 우리식으로 말하면 '법치국가'에 대응하지만, 삼권분립이 아닌 사회주의 기반의 독특한 법치주의라고 할 수 있습니다.


증강된 개발자는 “내가 일하는 법”을 관리하는 개발자

호기심이 생겼지만, 그 내용에 대해서라면 강의를 들어야지 제가 글을 쓸 필요는 없습니다. '법치주의'라는 키워드가 <인공지능 시대의 개발자로 자신을 개발하기>를 쓸 때 글에 담지 못한 생각을 다시 끄집어낸 것이죠. 글을 쓰게 된 가장 큰 동인은 토비 님의 글 첫 문장이라 할 수 있습니다.

증강된 개발자는 “내가 일하는 법”을 코드처럼 설계하고 버전 관리하는 사람이다.


영상에서 교수님이 주장하는 중국 정부가 100 배 이상의 경제 성장을 이뤄낸 기반에 그들 고유의 법치가 있었다는 내용과 바로 저 문장이 연결되는 것이죠. 보통 일하는 방식이라고 하면 '프로세스'를 떠올리지만 법()을 연상해 본 적은 없다는 것이 저에게 글을 쓰며 탐색을 하게 끔 유도했습니다.


먼저 <낱말의 뜻을 깊고 넓게 묻고 따지는 일의 소중함>을 실천하기로 합니다. 법()은 뜻이 굉장히 많은 단어입니다. 그중에서 한자 구성원리를 보니 다양한 뜻을 응축할 수 있는 의미가 보이는 듯합니다.

이 정도 인용이 적당할 듯합니다. 제가 다양한 국가를 다스리는 법을 다루는 것이 아니고, 서로 다른 의미로 쓰였지만 법이라는 말로 함께 불릴 수 있는 특징에서 무언가 포착하려는 것이니까요.


일정한 질서와 규칙에 따라 흐르는 원리

이렇게 묻고 따지는 중에 법과 방법의 차이에 대한 궁금증이 생겨서 퍼플렉시티에 물었다가 흥미로운 공통점을 발견했습니다.

법과 방법 모두 언어를 통해 표현되고 전달됩니다. 법은 본질적으로 언어에 구속되며 언어적 성질을 띠는 것으로, 언어는 법의 매개체이자 주제이며 대상으로서의 역할을 담당합니다. 마찬가지로 방법론도 언어를 통해 체계화되고 전수됩니다.

둘 다 언어적 매개체로서의 공통점을 지니고 있었습니다. 반면에 LawMethod는 너무나도 다른 말처럼 느껴졌습니다. 이를 발견하고 나니 다시 궁금증이 생겼습니다.

서양의 law와 불교의 법은 매우 다른 개념 같은데,
한자로 모두 法으로 통용되는 이유는 뭔가요?


그래서 또다시 퍼플렉시티에 물었습니다. 여기서 새로운 사실을 알게 되었습니다. 2년 전 강성용 교수님의 인도 강연에서 처음 들었던 다르마Dharma란 표현의 번역이 법()이란 사실입니다.[2] 그리고, 퍼플렉시티 답변의 결론도 제가 기대한 것과 비슷하다 할 수 있습니다.

서양의 law와 불교의 법이 모두 한자 法으로 번역되어 사용되는 것은 우연의 일치가 아니라 한자 法이 가진 근본적 의미가 두 개념의 핵심을 모두 담을 수 있었기 때문입니다. "일정한 질서와 규칙에 따라 흐르는 원리"라는 法의 본래 의미가 불교의 우주 법칙(dharma)과 서양의 사회 규범(law) 모두를 포괄할 수 있는 개념적 토대를 제공했던 것입니다.


마치며

출처가 다른 몇 가지 지적 자극을 꺼내어 글을 써 보니 법()이라는 그간 경험 속에서는 다루지 않았던 말을 살피게 됩니다. 방법론이라는 말은 수도 없이 썼지만, '일정한 질서와 규칙에 따라 흐르는 원리'라는 문구를 찾게 해주는 말로는 작동하지 않았던 듯합니다.


현실의 법이 국가의 정의를 목표로 한다면, 소프트웨어 개발에 법을 들이댈 수는 없습니다. 개발자가 코드를 대상으로 정의를 추구할 것 같지는 않으니까요. 하지만, 코드를 지킬 목적을 넘어서 코드 속에 담길 '일정한 질서와 규칙에 따라 흐르는 원리'를 명시화하고 활용해야 한다면 이야기를 달라질 듯합니다. 메타 인지가 어려운 사람의 지적 특성을 인공지능이 돕고 있는 것은 경험에서 분명하게 확인할 수 있습니다. 그렇게 추출한 내용이 마침 '언어 모델' 형태로 인간과 상호작용할 수 있다는 점도 앞서 찾아본 법의 특징과 연결됩니다. 법이 바로 언어로 표현된다는 점이죠.


주석

[1] 제가 2016년부터 2019년까지 중국에 살았다는 점이 크게 작용을 했으리라 봅니다.

[2] 위키피디아 페이지를 찾아가 보면, 다르마가 꼭 불교만의 개념이 아님을 확인할 수 있습니다.


인공지능 시대의 소프트웨어 공학 연재

(6회 이후 링크만 표시합니다.)

6. 바이브 코딩과 증강 코딩은 다르다

7. 소프트웨어 설계는 어떻게 새롭게 정의할 수 있나?

8. 컨텍스트 엔지니어링 프레임워크

9. 컨텍스트 엔지니어링 분류 체계와 구현 기술의 진화 양상

10. 목적에 따라 소프트웨어 설계 활동의 양상이 달라진다

11. 밀가루 반죽과도 같은 소프트웨어 모델

12. 생각을 나눠 요소를 만드는 일의 어려움

13. 컨텍스트 엔지니어링과 다중 에이전트 시스템

14. 객체 식별의 어려움에서 기인한 패턴들

15. 비즈니스 개념을 담은 식별 기준이 된 DDD

16. 의사결정 부담을 줄여주는 패턴과 if로 시작하는 조건문

17. 프로그래밍 개체의 식별과 레코드의 식별

18. RDBMS 종속 객체 지향 프로그래밍 아닌가?

19. 암묵적 세계 모델과 명시적 언어 모델

20. AI로 소프트웨어 개발을 돕는 도구의 쓰임새

21. 인공지능 시대의 개발자로 자신을 개발하기

keyword
이전 11화AI로 소프트웨어 개발을 돕는 도구의 쓰임새