본문 바로가기
C.W.K.
Stream
Lesson 02 of 05 · published

DNA는 코드야 — 생명을 움직이는 네 글자 알파벳

~30 min · dna, code, compilation

Level 0호기심 입문
0 XP0/43 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

가장 복잡한 것을 가장 단순하게 보기

DNA는 A, T, C, G라는 네 글자가 길게 이어진 문자열이야. 각각 아데닌, 티민, 시토신, 구아닌을 뜻해. 그게 전부야. 식물, 동물, 미생물을 비롯한 모든 생물의 전체 게놈은 이 네 글자가 수십억 번 이어진 서열이야.

같은 알파벳을 소프트웨어에 쓰면 이렇게 보여.

genome = "ATCGGTAGCTAATCG..."

A, T, C, G로 이루어진 문자열은 구조적으로 프로그램이야. 단지 프로그램에 빗댄 것이 아니야. 분자 기계가 그 서열을 실제로 읽고 실행해 단백질을 만들고, 단백질은 생명의 나머지 모든 구조를 지어.

컴파일되는 과정

네 글자짜리 문자열은 어떻게 다리와 눈, 신장이 될까? 답은 우주에서 가장 아름다운 컴파일과 실행의 흐름이야.

  1. 읽기. DNA의 한 영역이 RNA로 전사돼. RNA도 비슷한 문자열이지만 T 대신 U를 쓰며, 작업용 사본 역할을 해.
  2. 컴파일. RNA에서 세 글자씩 묶은 코돈은 20가지 아미노산 가운데 하나에 대응해. AUG는 "시작이며 메티오닌"을, UAA는 "멈춤"을 뜻하지. 이 대응 관계는 고정된 찾아보기 표인 유전 코드이고, 지구상의 거의 모든 생명에서 같아.
  3. 실행. 아미노산이 이어져 단백질이 되고, 단백질은 3차원 모양으로 접혀. 모양이 기능을 정하고, 기능이 세포 안에서 일어날 일을 결정해.

네 글자의 원본에서 20가지 아미노산의 알파벳이 컴파일되어 단백질을 만들고, 단백질은 세포를, 세포는 장기를, 장기는 우리를 만들어. 아래에서 위로 올라가는 컴파일러 스택인 셈이야.

모든 생명이 유전 코드를 공유한다는 놀라움

여기서 잠시 멈춰 보자. 코돈을 아미노산에 대응시키는 유전 코드는 지구상의 거의 모든 생물에서 같아. 박테리아에서 고래와 참나무까지 모두 그렇지. 우리 세포에서 AUG가 메티오닌과 "시작"을 뜻하듯 토마토와 곰벌레에서도 같은 뜻이야.

이는 지구의 모든 생명이 수십억 년 전의 단세포 공통 조상을 공유하며, 그 뒤로 줄곧 같은 코드 바탕을 바꾸어 써 왔다는 뜻이야. 사람과 미국삼나무가 같은 컴파일러를 공유해. 입력과 출력은 달라도 작동하는 스택은 같아.

다음 레슨으로 이어지는 질문

DNA가 코드이고 유전 코드가 모든 생명에 공유된다면, 진화는 시간에 따라 원본이 달라지는 과정이며 자연선택은 가차 없는 품질 검사라고 볼 수 있어. 다음 레슨에서는 진화를 상속과 재정의의 과정으로 바라볼 거야.

Code

DNA는 글자 그대로 문자열이야·python
# DNA 는 구조적으로 네 글자 알파벳의 string.
genome_fragment = "ATGGCCATCAGT"  # 전체는 수십억 글자

# 세 글자 코돈 읽기 — 각각 20 아미노산 중 하나에 매핑
genetic_code = {
    "ATG": "Met (start)", "GCC": "Ala", "ATC": "Ile", "AGT": "Ser",
    # ... 64 코돈, 20 아미노산 + start/stop 으로 매핑
}

for i in range(0, len(genome_fragment), 3):
    codon = genome_fragment[i:i+3]
    print(codon, "->", genetic_code.get(codon, "?"))

External links

Exercise

좋아하는 동물의 게놈 크기를 찾아 사람의 게놈 약 30억 글자와 비교해 봐. 여러 동물의 게놈 크기가 얼마나 비슷한지, 바탕의 명령어 집합을 얼마나 많이 공유하는지 살펴봐. 종 사이의 차이 대부분은 어느 부분을 언제 읽는가, 곧 비슷한 코드를 서로 다르게 읽는 데서 생겨.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.