자녀들의 git conflict

by 박정욱

충돌은 병합보다 빠르게 찾아온다


git은 소스코드의 버전을 관리해주는 도구다. 여러 사람이 동시에 같은 코드를 고칠 수 있게 해주고, 그 변화를 기록해주며, 나중에 문제가 생겼을 때 어느 시점으로든 되돌아갈 수 있게 해준다. 개발자에게 git은 일종의 타임머신이자 분신 같은 존재다. 하지만 git이 다 좋은 건 아니다. 가장 골치 아픈 순간이 있다. 바로 conflict, 충돌이 날 때다.


conflict는 두 사람이 같은 파일의 같은 부분을 서로 다르게 수정했을 때 생긴다. git은 똑똑하지만, 누가 옳고 그른지를 대신 판단해주지는 않는다. 대신 이렇게 말한다. “너희 둘이 해결해. 난 중립이야.” 그리고는 양쪽의 코드를 모두 보여주고는 선택을 강요한다. 하나만 남겨야 하니까. 마치 한 장의 종이에 서로 다른 두 사람의 글이 겹쳐 쓰여졌을 때, 둘 다 살릴 수 없기에 어느 한쪽을 지우고 정리해야 하는 것처럼 말이다.


처음엔 이런 충돌이 생기면 당황하고 짜증이 났다. ‘왜 내 코드를 덮었지?’ 하며 짜증도 냈고, ‘이걸 어떻게 합쳐야 하지?’ 고민도 많았다. 하지만 시간이 흐르며 조금은 익숙해졌다. 누군가와 함께 일한다는 건 언제든 conflict가 날 수 있다는 사실을, 그리고 그것은 실수도 악의도 아닌 단지 서로 다르게 생각했을 뿐이라는 걸 알게 되었기 때문이다. 하지만 나는 몰랐다. 개발자 아빠로서 git conflict보다 더 복잡한 conflict가 현실에서 기다리고 있었다는 것을. 그것도 매일매일, 반복적으로.



자매는 언제나 같은 파일을 편집 중이다


“이건 내 꺼야!”
“아니야, 내 꺼야!”


거실에서 튀어나온 소리에 노트북을 덮었다. 또다. 이 장난감 인형은 도대체 왜 이토록 인기가 많은 걸까. 첫째는 마치 코드의 주인을 주장하듯, 자기가 먼저 가지고 놀았다고 외친다. 둘째는 자기가 갖고 싶어서 그랬다고 똑같이 말한다. 그 순간, 나는 git이 되고 싶어진다. 누가 먼저 했는지 로그를 보고, 어느 시점부터 분기되었는지 브랜치를 추적해서 자동으로 병합할 수 있으면 얼마나 좋을까.


하지만 현실은 그런 도구가 없다. 나는 이 둘의 갈등을 직접 들여다보고 판단해야 한다. 누가 먼저였는지 기억하지 못하는 두 아이, 사실 먼저는 중요하지 않을 것이지만 그 사이에서, 나는 판단을 유예한다. 대신 중립적인 git처럼 말한다. “둘 다 이 장난감 인형을 가지고 놀고 싶은 것은 알겠어. 그러면 누가 먼저 가지고 노는 것이 좋을까?”


하지만 이 중재는 쉽지 않다. 첫째는 짜증내고, 둘째는 울먹인다. 서로의 눈치를 보며 감정을 밀어붙이기도 하고, 때로는 내 눈치를 보며 억울함을 토로하기도 한다. 나는 외동으로 자랐다. 형제가 싸운다는 건, 내가 경험해본 적 없는 세계다. 어릴 적 내 장난감은 내 것이었고, 나눌 필요도 없었다. 누군가에게 양보해야 할 상황도, 그로 인해 속상해할 사람도 없었다. 그런 나에게 둘 사이의 갈등은 예상 불가능한 충돌처럼 느껴진다. 마치 내가 짠 코드가 아닌데, conflict 해결을 내가 해야 하는 그런 기분.


아이들은 늘 같은 리소스를 두고 경쟁한다. 사랑이든 관심이든, 장난감이든. 그들에겐 각자의 브랜치가 없고, 모든 것이 공유다. 그래서 더 자주 부딪히고, 더 자주 충돌이 난다. 그런데 놀랍게도 아이들은 내 예상보다 훨씬 빠르게 병합하는 것처럼 보일 때도 있다. 조금 전까지만 해도 울던 둘째가 다시 첫째에게 웃으며 다가가고, 첫째는 인형을 건네며 “그럼 너 먼저 해”라고 말할 때, 순간 나는 안도하며 그 장면을 마치 conflict 해결의 정답처럼 받아들이고 싶어진다.


하지만 실제로는 그렇지 않다. 그 뒤에 이어지는 밀고 당김의 과정 속에서 나는 점점 더 조마조마해진다. 누가 먼저 물릴지, 누가 울음을 터뜨릴지, 혹은 둘 다 다쳐버릴지 몰라서 자꾸만 개입하게 된다. 사실 솔로몬이 와도 누가 옳고 그른지를 명확히 판단하긴 어려울 것이다. 첫째에게는 '언니니까 양보해'라며 매번 희생을 요구할 수 없고, 둘째에게는 '어리니까 봐줘야지'라며 계속 편을 들어줄 수도 없다. 그렇게 하면 첫째는 억울함을 쌓고, 둘째는 습관처럼 자기 것을 주장하는 데 익숙해질지도 모른다.


그래서 결국 말문이 막히고, 머릿속이 복잡해진 나는 이렇게 외쳐버린다. “그만해! 그 장난감 갖다 버릴 거야!” 그리고 그 순간, 거실엔 정적이 흐른다. 첫째와 둘째, 그리고 나. 셋 중 누구도 웃고 있지 않다. 그 조용한 침묵 속에서 나는 다시 머리를 감싼다.


conflict 해결? 아니다. 오히려 conflict 때문에 어떤 브랜치도 병합되지 않은 채로 남겨진 것 같은 결과일 뿐이다. 감정도, 입장도, 상처도 그대로 열린 채다. 확실히 이 방식은 정답이 아니다. 그렇다면 어떻게 하는 것이 현명한가? 어떤 대답도 쉽게 입 밖에 내기 어렵다. 어쩌면 해답은 문제를 없애는 데 있는 게 아니라, 갈등이 있어도 함께 살아갈 수 있는 방법을 찾아가는 데 있는 건지도 모르겠다.



중립이라는 무책임


육아를 하며 가장 자주 부딪히는 감정은 ‘모르겠음’이다. 무엇이 공정한지 모르겠고, 무엇이 정의로운지도 모르겠다. 처음엔 중립을 지키면 된다고 생각했다. 둘 다 잘못했으면 둘 다 혼내고, 둘 다 옳다면 둘 다 안심시키면 된다고 믿었다. 하지만 어느 순간 깨달았다. 진짜 문제는 아이들이 내가 누구의 편도 들어주지 않았다는 것에 상처받는다는 사실이다.


개발자라면 중립이 미덕일 수 있다. 코드는 감정이 없으니까. 하지만 아이는 다르다. 첫째는 말한다. “왜 맨날 나만 혼내?” 둘째는 말한다. “왜 언니 말만 들어?” 나는 둘의 conflict를 해결한다고 생각했지만, 사실은 회피하고 있었는지도 모른다. 내 마음은 이미 한쪽으로 기울어 있었는데, 그걸 드러내지 않으려 중립이라는 가면을 쓰고 있었던 것이다.


그날도 아이들이 인형 하나를 두고 싸웠다. 나는 또다시 중재를 하려다가, 결국 아내에게 눈길을 돌렸다. 그런데 아내는 청소기를 돌리며 담담히 말했다.

“그냥 둬. 원래 싸우면서 크는 거야.”


나는 그 말에 어쩐지 마음이 더 복잡해졌다. 아내는 삼남매 중 첫째다. 늘 여동생과 남동생 사이에서 갈등을 보고 자랐고, 그 안에서 자매와 남매가 어떻게 이해하고 풀어가는지를 몸으로 겪었다. 그래서인지 아내는 자매간의 싸움을 필요 이상으로 간섭하지 않는다. 오히려 자매가 알아서 자기들 방식으로 풀어갈 수 있게 기다려주는 편이다.


나는 그게 쉽지 않다. 둘이 다투고 있으면, 당장 울음소리를 줄이고 싶은 마음이 앞서고, 누군가가 상처받을까 두려워 먼저 중재하고 싶어진다. 하지만 그런 내가 아이들의 감정을 온전히 들어주지 못한 채, 조급하게 결론을 내렸다는 생각이 들었다. conflict는 결국 코드처럼 깔끔하게 병합되지 않는다. 때로는 한쪽의 감정을 충분히 들어주고, 다른 한쪽에게는 기다려줘서 고맙다고 말해야 한다. 코드에선 한 줄을 지우고 한 줄을 남기면 되지만, 육아에선 모든 감정을 버리지 않고 안아줘야 한다. 그건 시간이 걸리고, 에너지가 들고, 무엇보다 용기가 필요하다.



conflict는 나를 갈라놓고, 다시 묶는다


내가 아이들 사이의 conflict에서 당황하는 진짜 이유는, 그 갈등이 나의 내부를 드러내기 때문이다. 외동이었던 나는 경쟁에 익숙하지 않았고, 갈등을 피하는 것이 일종의 생존 방식이었다. 하지만 이제는 달라져야 한다. 두 아이가 서로 다투고 부딪히는 그 순간이, 나에게도 갈등을 직면할 수 있는 용기를 주는 기회다.


나는 때때로 한쪽 아이의 감정을 더 잘 이해한다. 더 자주 울고, 더 자주 안기는 둘째에게 더 마음이 가기도 하고, 더 자립적이지만 속이 여린 첫째의 눈빛이 더 오래 기억에 남기도 한다. 그런 마음의 기울임을 부정하지 않기로 했다. 대신 그 기울임을 아이들에게 설명하고, 이해시키기로 했다. 아빠는 로봇이 아니니까, 때로는 실수도 하고, 때로는 너의 감정을 뒤늦게 알아차릴 수도 있다고.


결국 conflict는 코드가 아닌 마음 사이에서 일어나는 일이다. 도구가 알려주는 건 충돌이 있다는 사실일 뿐, 그 충돌의 맥락과 감정은 사람이 들여다봐야만 이해할 수 있다. 아이들도 마찬가지다. 장난감 하나로 싸운 일이지만, 그 이면엔 “내가 먼저였는데”, “언니는 맨날 그래”, “아빠는 왜 내 편 안 들어줘” 같은 복잡한 감정이 얽혀 있다. 나는 그 감정들을 한 줄씩 읽어나가야 한다. 마치 git conflict에서 표시된 코드를 하나하나 비교하듯, 감정의 히스토리를 들여다보며.



마무리 커밋은 사랑으로


요즘은 conflict가 날 때마다 그걸 기회로 삼아보려 한다. 감정을 덮지 않고, 서로의 입장을 번갈아 들어보고, 굳이 판결하려고 하지 않는다. 그것이 완전한 해결이 되진 않더라도, 최소한 서로를 바라볼 수 있는 시간은 만들어준다.


나는 더 이상 자매간의 conflict를 두려워하지 않으려 한다. 그것이 우리 사이를 갈라놓기도 하지만, 결국엔 다시 묶어주는 실마리가 되기도 하니까. 해결이 아니라 이해를, 종결이 아니라 연결을 바라보기 시작한 것이다.


두 아이를 키운다는 것은 끝없는 멀티 브랜치 작업이고, conflict는 그 속에서 피할 수 없는 반복이다. 하지만 매번 병합에 실패하더라도, 매 순간 서로의 히스토리를 조금씩 이해해간다면, 언젠가는 하나의 커밋 메시지로 그날을 남길 수 있지 않을까. 그 메시지가 완벽하지 않아도 괜찮다. 지금의 이 conflict들이 사회에서 갈등의 상황에서도 현명하게 헤쳐나갈 수 있는 우리 딸들의 자양분이 될 것이라 믿는다.