뇌 없는 생물의 길 찾기
대장균(E. coli)은 길이가 2마이크로미터 정도인 아주 작은 세균이에요. 뇌도, 신경도, 눈도 없어요. 그런데 설탕이나 아미노산이 조금 녹아 있는 물에 넣으면 먹이가 진한 쪽으로 착착 모여들어요. 이걸 주화성(chemotaxis)이라고 부르는데요, 쉽게 말하면 ‘화학 물질의 농도를 따라 움직이는 능력’이에요. 작가 제임스 소머스(James Somers)가 이 현상을 깊이 파고든 에세이를 썼어요. 읽다 보면 생물학 글보다는 잘 설계된 알고리즘이나 제어 시스템 해설서처럼 느껴지거든요. 개발자가 읽어도 무릎을 칠 만한 부분이 많아서 정리해 봤어요.
달리다가, 구르다가: Run and Tumble
대장균에는 편모라는 꼬리가 여러 개 달려 있고, 꼬리마다 밑동에 진짜 ‘회전 모터’가 있어요. 세포막을 통과하는 수소 이온의 흐름을 동력으로 1초에 100바퀴 안팎을 도는, 자연이 만든 나노 모터예요. 이 모터가 반시계 방향으로 돌면 편모들이 한 다발로 꼬여서 프로펠러처럼 몸을 앞으로 밀어줘요. 이 상태가 run, 즉 직진이에요. 그러다 모터가 시계 방향으로 뒤집히면 다발이 풀리면서 몸이 제자리에서 뒤척이는데, 이게 tumble, 즉 구르기예요. 한바탕 구르고 나면 거의 무작위한 방향을 보게 되고, 거기서 다시 직진을 시작해요.
재밌는 건 대장균에게는 ‘방향을 고르는’ 능력이 아예 없다는 점이에요. 할 수 있는 일은 딱 하나, 얼마나 자주 구를지 조절하는 것뿐이에요. 상황이 좋아지는 중이면 덜 구르고 오래 직진해요. 나빠지는 중이면 금방 구르고 다른 방향을 시도해요. 이 규칙 하나만으로 결국 먹이 쪽으로 가게 되는데, 이걸 편향된 랜덤 워크(biased random walk)라고 해요. 코드로 쓰면 대략 이런 모양이에요.
while True:
now = sense()
if now > memory:
tumble_prob = LOW
else:
tumble_prob = HIGH
memory = update(memory, now)
공간이 아니라 ‘시간’으로 비교해요
사람이라면 왼쪽과 오른쪽 냄새를 비교하겠죠. 그런데 대장균은 몸이 너무 작아서 앞뒤 농도 차이가 분자 몇 개 수준밖에 안 되고, 그 차이는 노이즈에 묻혀버려요. 그래서 대장균은 ‘방금 전’과 ‘지금’을 비교하는 방법을 써요. 실험으로 측정한 반응 함수를 보면, 최근 1초 정도의 농도에는 플러스 가중치를, 그 앞 몇 초에는 마이너스 가중치를 줘서 둘의 차이를 계산해요. 주식 차트에서 단기 이동평균과 장기 이동평균을 비교하는 것과 거의 같은 구조예요. 수학적으로 보면 노이즈를 걸러내면서 기울기를 추정하는 필터예요.
단백질로 만든 제어 회로
이 계산을 하는 ‘하드웨어’는 단백질이에요. 세포 끝쪽에 수용체 수천 개가 격자처럼 뭉쳐 있고, 서로 연결돼 있어서 분자 몇 개만 붙어도 신호가 크게 증폭돼요. 수용체가 먹이를 감지하면 CheA라는 효소의 활동이 줄고, 그러면 전령 단백질 CheY도 덜 활성화돼요. 활성화된 CheY가 모터에 붙으면 회전 방향이 뒤집히면서 구르기가 시작되거든요. 그래서 ‘먹이 감지 → 전령 감소 → 덜 구름 → 오래 직진’이라는 흐름이 생겨요. 모터 스위치는 전령 농도 변화에 거의 디지털 스위치처럼 아주 민감하게 반응해요.
진짜 감탄스러운 부분은 기억 장치예요. 수용체에는 메틸기라는 작은 꼬리표가 붙었다 떨어졌다 해요. CheR은 꼬리표를 꾸준히 붙이고, CheB는 신호 세기에 따라 떼어내요. 이 느린 과정 덕분에 농도가 높아진 상태가 계속되면, 구르는 빈도가 얼마 뒤 원래 수준으로 정확히 돌아와요. 이걸 완벽한 적응(perfect adaptation)이라고 하는데, 제어공학자들이 분석해 보니 PID 제어의 ‘I’와 같은 적분 피드백 제어(integral feedback)였어요. 이 덕분에 대장균은 농도가 수만 배 넘게 차이 나도 ‘절대값’이 아니라 ‘변화 비율’에 반응할 수 있어요. 카메라 자동 노출이 어두운 방에서도, 한낮에도 잘 동작하는 것과 비슷한 원리예요.
업계 맥락: 최적화 알고리즘과 닮은꼴
개발자 눈으로 보면 이건 그래디언트를 직접 계산하지 않는 최적화예요. 확률적 언덕 오르기, 시뮬레이티드 어닐링, 진화 전략처럼 ‘일단 움직여 보고 좋아지면 그 방향을 유지’하는 알고리즘들과 닮았어요. 강화학습의 탐색과 활용 사이의 균형 문제도 구르기 확률 하나로 풀고 있어요. 적응 메커니즘은 오토스케일러처럼 기준선을 스스로 다시 맞추는 시스템 설계와 같은 고민을 담고 있고요. 물리학자들이 계산해 보면 대장균의 감지 정확도는 분자 수가 정하는 물리적 한계에 꽤 가깝다고 해요. 수십억 년 동안 다듬어진 구현체라고 할 수 있어요.
한국 개발자에게 주는 시사점
실무에 바로 쓸 기술은 아니지만 배울 점은 분명히 있어요. 첫째, 단순한 규칙 몇 개와 피드백 루프만으로도 놀랍게 똑똑한 행동이 나온다는 점이에요. 복잡한 문제를 만나면 거대한 설계부터 하기보다 작은 피드백 루프를 먼저 떠올려 보세요. 둘째, 절대값보다 변화율을 보는 감각이에요. 장애 알림을 ‘에러 100건 이상’보다 ‘평소 대비 3배’로 걸었을 때 더 잘 동작하는 것과 같은 이유예요. 셋째, 노이즈가 큰 환경에서는 한 번의 측정보다 시간에 걸친 평균을 믿는 게 낫다는 점이에요.
마무리
대장균은 ‘방향은 몰라도 좋아지는지 나빠지는지는 안다’는 원리 하나로 살아남은, 가장 오래된 피드백 제어 시스템이에요. 여러분이 만든 시스템 중에도 단순한 규칙과 피드백만으로 의외로 잘 돌아가는 사례가 있나요? 절대 임계값 대신 변화율 기반으로 바꿔서 효과를 본 경험이 있다면 함께 나눠주세요.
🔗 출처: Hacker News