brunch

You can make anything
by writing

C.S.Lewis

by HJH Jan 04. 2025

종속성파악과 중복해결

역시나 정교한 나누기의 연장선 글이다. 주말이라 하루종일 열심히 쓰고 영상도 만들어 보았다.




데이터 베이스라는 것이 있다. 흔히 아는 엑셀 시트 정도로 생각하면 쉽다. 어렵게 말하면, 요샌 NoSQL을 많이 쓰긴 하지만 전통적 RDBMS에서는 릴레이션과 종속성 관리를 잘해서 중복해결이 매우 중요하다. 오늘은 전통적 방식의 데이터 관리를 기반으로 나누기에서 사람 관리를 하는 방식을 이야기해 본다. 관계의 일관성과 유연성이 데이터베이스에서 다루어진다. 종속성을 잘 관리하면 데이터의 일관성과 유연성을 유지할 수 있다. 인간관계도 마찬가지다. 각 관계의 릴레이션과 종속성을 명확히 정의하고, 중복 해결을 통해 불필요한 갈등이나 오해를 줄인다면 더 건강하고 효율적인 관계를 유지할 수 있을 것이다.


쉽게 예를 들면,

고객 등급에 브론즈, 실버, 골드 등급이 있고 고객관리를 위해 해당 등급별 1%, 3%, 5% 할인율을 상시 관리한다고 했을 때.

엑셀에 인적사항과 고객 등급만 적으면 종속성 파악이 잘 된 것이고,

그 등급 뒤에 1%, 3%, 5%를 적으면 종속성 파악이 잘 안 된 것이다.


고객 등급에 할인율은 종속되기 때문에 엑셀에 따로 한 테이블(공간)을 만들고 HLOOKUP이나 VLOOKUP을 통하여 자동으로 테이블이 채워지도록 해야 나중에 해당 테이블의 값만 바꾸면 바뀌는 할인율을 일괄 적용할 수 있게 된다. 종속성의 궁극적 목적은 중복해결을 통해 1%를 2%라고 잘못 적을 경우를 줄이기 위해 한 곳에서 수정할 수 있도록 해서 데이터의 일관성을 유지하는 것이다. 때로는 중복을 너무 없애기 때문에 대소사가 있을 때 참석하지 않으면 친한 친구 아님이라는 테이블을 만들어 엉뚱하게 종속시키기도 한다. 그러나 어떤 종속성 테이블은 수십 년의 신뢰가 한 번에 무너지는 경우도 있긴 하다. 자신의 아내와 바람이 나거나 어려운 일이 있을 때 나쁜 쪽만 본다거나 본인이 살기 위해 쉽게 손을 놓아버리는 상황이 반복되는 경우가 일례고 그 외에도 수많은 일이 세상에 있다.


 우리의 인간관계는 종종 복잡한 네트워크처럼 얽혀 있어서 종속성 그 반대의 경우도 있다. 독립적인 경우이다. 독립적일 때 데이터베이스에서는 무조건 테이블을 나눈다. 테이블은 엑셀 시트라고 생각하면 쉽다. 인적 사항 정보만 적은 엑셀 시트가 있고, 친구관계 시트, 고객 관리 시트가 따로 있는 것이다. 사람 사이의 관계도 특정 역할, 필요, 혹은 목적에 따라 다양하게 맺어지고 나의 엑셀 리스트에 다양한 정보가 저장된다. 누군가의 친한 친구기도 하고 내 가게의 제품을 많이 사줘서 VIP이기도 하다. 친구 관계는 친밀감에 기반한 릴레이션, 직장 동료는 목표 달성이라는 릴레이션, 가족 관계는 혈연 또는 정서적 의존에 기반한다. 릴레이션은 각 관계의 본질적인 틀을 결정하며, 이를 통해 관계를 구조적으로 이해할 수 있다.


데이터베이스에서 A가 B에 종속될 때, 이를 올바르게 관리하지 않으면 중복 데이터와 혼란이 발생한다. 사람 관계에서도 종속성을 명확히 하지 않으면 감정적 혼란이나 오해가 발생할 수 있다. 친구 관계와 업무 관계를 명확히 나누지 못하면, 친구에게 과도한 업무적 기대를 할 수 있다. 친구는 친구고 사업적 관계는 또 사업적 관계다. 공과 사는 확실히 나누어야 한다는 말과 상통한다. 가족과 친구의 역할이 겹치면 특정 상황에서 갈등이 발생할 가능성이 커진다. 특정 역할이 중복해서 발생할 때는 동일 인물이 아닌 독립 인물로 보고 개별적으로 생각해줘야 한다. 특정 친구는 나와 친밀하기도 하지만 고객 리스트에도 있어서 업무상 VIP로 대우를 해줘야 하기도 하다.


종속성을 명확히 한 경우 직장 동료에게는 업무적 조언을 구하고, 정서적 위로는 친구에게 받는다. 가족과의 관계에서는 개인적인 문제를 공유하되, 업무적 문제는 나누지 않는다.


관계의 효율적 분리, 데이터베이스의 중복 해결(Normalization)은 관계를 효율적으로 분리하는 것이다. 인간관계에서도 동일한 개념을 적용해 볼 수 있다. 특정 관계에서 필요한 역할과 책임을 명확히 나누고, 각 관계의 본질에 맞는 소통과 기대를 설정하는 것이 중요하다.


일반적으로 고객 등급과 할인율, 고객 등급에 따라 할인율이 결정되듯, 관계에서 각자의 역할에 따라 기대와 책임이 달라야 한다. 예를 들어, 직장 동료에게는 업무적 지원만 기대하고, 친구에게는 감정적 지원을 기대하는 것이 더 건강한 관계를 만든다. 내 경우엔 좀 특수하다. 이제 나이도 많이 들고 가족과 보내는 시간이 많아서 친구에게 감정적 지원을 더 이상 바라지 않는다. 그리고 가족들보다 내가 더 멘탈이 강하기 때문에 가족에게도 바라지는 않는다. 내 감정적 지원은 오히려 좋은 음악과 일로써 만나는 사람들에게서 대부분 얻는다. 같이 가시밭길을 걷는 사람들. 아마도 추운 겨울 함께 시위하는 사람들 사이에서 느끼는 그것과 같을 것이다. 그렇지 않더라도 소소하게 세상을 아름답게 만드는 사람들. 작은 기부를 하는 사람들 사이에도 느낄 수 있다.


사람 관계의 본질은 객관적이 아니라 주관적이라고 생각하고 싶다. 그러나 객관적 논리에서 출발하는 것이 나쁘지는 않다. 프로그래머 세상에서는 대부분이 객관적 사실에 기반한 이론으로 구현되고 실생활에 적용되는 것이 대부분이라 출발은 객관적으로 할 수 있는 것 같다. 그래서 오히려 더 독창적이고 geek 해도 특정 바운더리 내에서 살아가게 되는 것 같다. 상대방을 이해하고 적절히 나누는 것은 단순히 효율적일 뿐만 아니라, 모든 관계가 서로의 부담을 덜어주고 더 조화롭게 유지될 수 있게 한다. 매일 보는 사이가 아닌데 진심으로 매일 본다면 사실 그 관계는 나누기를 다시 해도 된다는 뜻이다. 매일 보는 사이가 아니여야 하는데 그렇다면 또 반대로 생각하고 나누기를 다시 해야 한다.


1월이 시작되고 주말이라 못했던 새해 인사를 마저 했다. 요즘엔 세상이 변해서 카톡 인사로도 충분하다. 생일인 친구에게 케이크 보내고, 이미 술을 진탕 마시며 친해졌던 사람과는 텍스트로 가볍게 다음 만남을 기약한다. 인사 만으로도 여전히 연결된 느낌의 답장을 받는다. 작년에도 똑같았고 해외에 있어 작년에 아예 본 못 사이인데도 말이다. 날마다 새로운 관계가 생기면서 나누기도 점점 세분화되고 정교해져 간다.


나는 그래서 학교 교사들이 너무도 대단하게 느껴진다. 자신에 대한 관계뿐 아니라 학생들 간의 관계도 끊임없이 고민하고 좋은 방향으로 이끄는 영향을 미치기 때문이다. 


나야 데이터베이스 설계를 좀 잘못해도 나중에 성능이 나오지 않으면 하드웨어를 바꾸던 중간 레이어에 새로운 솔루션을 도입하던 데이터베이스 튜닝을 하면 된다. 사람 관계는 쉽게 고칠 수 있는 것이 아니다. 하드웨어 엔지니어처럼 한 번 잘못 설계하면 수천만 원에서 수백억을 날리기도 한다. 사람 관계는 더 심하다. 아예 돌이킬 수가 없다. 사실, 보통 욕심을 버리면 그런 상황은 잘 오지 않는다.


그런 고민들을 토대로 사람에게 너무 큰 기대를 하지 말고 역할을 잘 분리하고 고민해서 스트레스를 줄이는 나누기를 했으면 하고 나에게 또 독자께도 바란다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari