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

유명한 이름을 빌리지 마

~12 min · naming, precision, disclosure, definitions

Level 0원석
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"이건 미국 상장 상위 N 개고, 그 모양의 지수가 근사하는 것도 마찬가지다. 절대 'S&P 500' 이라고 부르지 않는다."

근사를 받아들인 다음에 오는 유혹

라이선스 데이터 말고 가진 데이터로 측정을 계산하기로 합의하고 나면, 바로 뒤에 두 번째 결정이 있어. 라벨 붙이는 자잘한 일처럼 느껴져서 틀리기 쉬운 결정이지.

이걸 뭐라고 부를 거야? 그 유명한 지수는 다들 알아. "S&P 500 집중도" 라고 하면 즉시 이해되고, 전문가처럼 보이고, 오늘은 아무 비용도 안 드는 작은 거짓말이야.

이 측정에 대해서는 거부가 코드에 명시돼 있어. 절대 그렇게 안 불러. 측정을 그게 뭔지 그대로 적어. 시총 기준 미국 보통주 상위 N 개 중 상위 열 개의 비중. 빌린 이름은 선반에 그대로 두고.

그 문장 범위는 조심해서 잡아. 같은 저장소 한 모듈 옆에 반례가 있거든. 같은 광범위 시장 ETF 프록시로 지은 합성 지표 하나가 "S&P 500 P/E" 라는 이름을 달고 있고, 그 이름이 API 페이로드로 서빙되고 대시보드에 그려져. 그러니까 이건 제품이 논쟁이 벌어졌던 자리에서는 지키고 있고 아직 전부에 적용하진 못한 규율이야. 알아둘 값어치가 있어. 그런 규칙 대부분의 정직한 상태가 그거거든. 작명 규율은 쓴 날 채택되는 게 아니라 grep 한 번에 하나씩 채택돼.

빌린 이름이 조용히 수입하는 것

현학이 아니야. 유명한 이름은 명세를 실어 나르고, 이름을 채택하면 네 계산이 만족하지 않는 주장들까지 채택돼.

진짜 지수한테는 명시적인 편입 규칙, 그걸 적용하는 위원회, 자격 검사, 이중 상장이랑 외국 소재지에 대한 정의된 처리, 발표된 리밸런싱 일정, 그리고 유동주식 조정 가중 방식이 있어. "시총 상위 500" 한테는 그중 아무것도 없고. 두 집합은 많이 겹치면서 진짜로 같은 집합이 아니고, 그 차이는 딱 집중도 숫자에 나타나는 종류야.

그래서 유명한 이름을 본 독자는 이 수치를 데이터 벤더가 발표한 것과 비교할 수 있다고 합리적으로 결론 내려. 못 하는데. 숫자가 다르면 둘 중 하나가 고장났다고 가정할 거고 — 실제 답, 이건 이름 하나를 쓴 서로 다른 측정이라는 답은 아무도 고려하지 않을 유일한 답이야.

이름은 API 계약이야. 잘 알려진 이름을 재사용하면 그 명세 전체가 수입돼. 네가 구현 안 했고 읽어본 적도 없는 부분까지. 네 계산이 정본 정의랑 사용자가 알아챌 만한 방식으로 다르면, 실제로 한 걸 설명하는 이름을 붙여. 라벨이 길어지는 작은 어색함은 조용히 하면 안 됐을 비교가 벌어지는 비용에 비하면 아무것도 아니야.

설명이 사는 자리

정의가 문서에만 사는 게 아니야. 저장되는 모든 행의 출처 문자열에 실려. 실제 개수랑 이 측정이 설명하는 날짜까지 풀어서.

그 배치는 백분위 창을 행에 싣는 거랑 같은 원리를 단서가 아니라 정의에 적용한 거야. 스프레드시트로 뽑힌 행이든, 위임 지시서에 인용된 행이든, 미래 소비자가 읽는 행이든, 자기 정의를 들고 도착해. 뭘 보고 있는지 알려고 그 작명 논의 자리에 있었어야 할 필요가 없어.

이름은 미래도 구속해. "미국 보통주 상위 500 중 상위 열 개" 라고 정직하게 부른 측정은 모집단 크기를 1,000 으로 바꿔도 출처 문자열만 고치면 되고 거짓말이 안 돼. "S&P 500 집중도" 라고 부른 측정은 뭘 바꾸든 더 틀려지기만 해. 이름이 그걸 남의 명세에 못 박아뒀거든. 네가 통제도 못 하고 따라갈 수도 없는 명세에.

Code

코드에 적힌 측정, 그리고 그게 쓰는 모든 행에·python
# The measure is stated plainly and computed from what the paid
# plan actually carries:
#
#     top 10 companies by market cap, as a share of the largest N
#     US common stocks by market cap
#
# Never called "the S&P 500". It is the largest N US listings,
# which is what an index of that shape approximates too.

UNIVERSE_SIZE = 500   # the shape of the index everyone pictures,
TOP_N = 10            # without claiming to BE it

gauges.store_row(
    GAUGE, "us", SERIES, day, round(share, 3),
    f"derived:top{TOP_N}/top{len(universe)} US common stock"
    f" by market cap @ {day}")

# The stored source string carries the definition, the actual
# counts, and the session date -- so a row read anywhere, by
# anyone, arrives knowing what it measures.

External links

Exercise

팀이 발표하는 지표 셋의 이름을 감사해봐. 각각에 대해, 그 이름이 팀 밖 사람이 알아볼 정의랑 맞는지, 그리고 네 계산이 그 정의랑 정확히 맞는지 물어. 안 맞는 데는 네 계산을 설명하는 이름으로 다시 쓰고, 정의를 위키 페이지가 아니라 페이로드에 넣어.
Hint
제일 위험한 이름은 금융이나 통계나 표준 단체에서 빌려온 거야. 'churn', 'p99', '가용성', '활성 사용자', '전환율'. 하나하나가 어딘가에 정본 의미가 있고, 하나하나가 그렇지 않다고 약속하는 이름을 유지한 채로 조금씩 다르게 계산되고 있어.

Progress

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

댓글 0

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

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