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

독립 작업은 Wave야

~11 min · 독립성, 맞섬, wave, 보이는-범위

Level 0찬 쇠
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

독립 작업은 Wave야

독립성은 지시문에 붙이는 형용사가 아니라 Wave의 성질이야. 독립된 자리는 같은 선언된 기준점에서 열리고, 같은 값의 허용된 맥락을 받고, 서로의 제출물을 소비하지 못하고, 비교되기 전에 자기 결과물을 확정해.

맞섬도 미리 짜인 관계야. Debate의 반박은 그 보임 자체가 압력이니 반대편 주장을 볼 수 있어. Red Team의 공격자는 목표 결과물은 보지만 만든 쪽의 사적인 과정은 안 봐. 계획은 역할에 필요한 재료만 정확히 열어.

이 관계를 Wave로 표현하면 숨은 대리인이 없어져. 아빠는 어떤 자리가 예상됐고, 누가 참가했고, 무슨 재료가 열렸고, 어느 단계가 기다리는지 볼 수 있어. 엔진이 보이지 않는 작업자를 만들거나 이야기로 둘러댈 필요가 없어.

지시문이 따로여도 함께 쓰는 가변 상태가 있으면 독립성은 깨져. 공용 작업 폴더, 연습 문서, 캐시된 답이 곁길이 되거든. yard와 바꿀 수 없는 저장소 참조가 ‘독립적’이라는 말을 강제할 수 있는 운영의 모양으로 만들어.

독립성은 연결의 모양이자 보이는 범위야. 같은 기준점, 따로 있는 yard, 제출 전에는 남의 결과물 없음, 그 뒤에야 명시적인 열림.

Code

보이는 범위 표 — 곁길이 있는지 검사한다·python
def visibility(role, phase, base, yards, submissions):
    """역할이 지금 볼 수 있는 것만 정확히 돌려준다."""
    view = {"brief", base}
    if role == "worker":
        view.add(yards["self"])                 # 자기 yard 만
    elif role == "rebuttal" and phase >= 1:
        view |= set(submissions)                # 맞섬은 허용된 보임
    elif role == "judge":
        view |= set(submissions)
    return view


def leaks(role_views, shared_mutable):
    """지시문이 따로여도 함께 쓰는 가변 상태가 있으면 독립이 아니다."""
    return sorted(v for v in role_views if v in shared_mutable)


base, subs = "frozen-base", {"A", "B"}
yards = {"self": "yard-a"}

w = visibility("worker", 0, base, yards, subs)
assert not (w & subs)                 # 제출 전에는 남의 것을 못 본다
print(sorted(w))

print(sorted(visibility("judge", 2, base, yards, subs)))
print("곁길:", leaks(w | {"scratch.md"}, shared_mutable={"scratch.md"}))

External links

Exercise

Arena와 Debate의 보이는 범위 표를 만들어. 각 역할이 결과물을 언제 볼 수 있는지 표시해.
Hint
Arena의 작업자는 동료를 못 보고, Debate의 반박 역할은 목표 주장이 필요해.

Progress

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

댓글 0

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

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