docs(TechLog): 얇은 Case 열 편과 Question 셋을 저장소 실물로 채운다
SSOT 를 저장소에서 확인해 더 보강하고 그것으로 다시 썼다.
§7.2 참조 검사 SQL 을 문자열로 조립하는 실제 코드 — 컴파일러가 표 이름도
컬럼 이름도 보지 않는다는 것이 그 모양에서 드러난다
§11.2 section-heading-rank 가 미디어 쿼리 값을 먼저 걷어내는 이유(테스트 주석)
§16.1 질문 삭제는 참조가 둘뿐이라 같은 문제가 덜하다는 대조
Case 열 편과 Question 셋을 다시 썼다. Question 은 사실·가정·미지수·제약을 갈라
채우고 선택지마다 무엇을 감수하는지 적었다 — 오류 코드를 나누면 계약과 반입한 두
저장소가 함께 움직인다는 것처럼.
SSOT 62,643 → 68,319 자. 검사 넷 전부 통과한다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
6917ce2420
commit
fd221353a3
+13
-1
@@ -57,7 +57,7 @@ Dockerfile 이 그 경고를 문자 그대로 적어 두고 있는데도 빠뜨
|
||||
|
||||
## 빌드 인자는 이미지에 굳는다
|
||||
|
||||
이 프론트는 API 주소를 빌드 인자로 받는다. 런타임 환경 변수가 아니므로 배포한 뒤에는 바꿀 수 없고, 잘못 넣으면 다시 빌드해서 다시 올려야 한다.
|
||||
이 프론트는 API 주소를 빌드 인자로 받는다. 번들러가 빌드할 때 그 값을 코드에 박아 넣으므로 런타임 환경 변수가 아니고, 배포한 뒤에는 바꿀 수 없다.
|
||||
|
||||
인자를 넘기지 않으면 기본값이 들어간다. 그 기본값은 존재하지 않는 주소다.
|
||||
|
||||
@@ -78,6 +78,18 @@ CI_RUNNER_IMAGE=node@sha256:… ← 반드시 @sha256 다이
|
||||
SOURCE_DATE_EPOCH
|
||||
```
|
||||
|
||||
## 인자마다 빠뜨렸을 때가 다르다
|
||||
|
||||
여섯 줄이 같은 무게는 아니다.
|
||||
|
||||
| 빠뜨리면 | 언제 드러나나 |
|
||||
|---|---|
|
||||
| API 주소 | 배포본이 첫 요청을 낼 때 |
|
||||
| 러너 이미지 다이제스트 | 빌드가 재현되지 않는다 — 나중에 같은 커밋이 다른 결과를 낸다 |
|
||||
| 빌드 식별자·커밋 SHA | 배포된 것이 어느 커밋인지 화면에서 못 읽는다 |
|
||||
|
||||
API 주소만 화면이 바로 깨지고 나머지는 조용하다. 그래서 이 목록에서 가장 눈에 띄는 것을 빠뜨렸다는 것이 오히려 이상한데, 인자가 여섯이고 그중 하나만 값의 모양이 URL 이라 붙여넣기에서 빠졌다.
|
||||
|
||||
## 되돌리고 다시 빌드했다
|
||||
|
||||
`kubectl rollout undo` 로 이전 리비전으로 되돌린 뒤 인자를 넣어 다시 빌드하고 다시 올렸다.
|
||||
|
||||
+3
-3
@@ -62,7 +62,7 @@ tech-log-frontend : 83409be
|
||||
|
||||
헬스 판정은 헬스 엔드포인트가 응답하는지를 본다. nginx 프로세스가 살아 있고 그 경로를 돌려주면 통과한다.
|
||||
|
||||
SPA 가 부팅에 필요한 설정 파일은 그 판정에 들어 있지 않다. 그래서 파드는 healthy 로 올라오고 사이트만 안 된다.
|
||||
SPA 가 부팅에 필요한 설정 파일은 그 판정에 들어 있지 않다. 그래서 파드는 healthy 로 올라오고 사이트만 안 된다. 롤아웃도 정상으로 끝나므로 배포 도구는 아무 신호도 주지 않는다.
|
||||
|
||||
## 빌드가 쓴 권한
|
||||
|
||||
@@ -70,7 +70,7 @@ SPA 가 부팅에 필요한 설정 파일은 그 판정에 들어 있지 않다.
|
||||
|
||||
증상이 404 가 아니라 403 이라는 것이 원인을 좁혔다. 404 면 파일이 없는 것이고 403 이면 파일은 있는데 읽지 못하는 것이므로, 이미지에 파일이 들어갔는지부터 확인할 필요가 없었다.
|
||||
|
||||
이미지가 권한을 정규화하도록 고쳤다.
|
||||
이미지가 권한을 정규화하도록 고쳤다. 빌드 단계에서 쓰는 권한을 바꾸는 대신 이미지가 마지막에 정리하게 한 것은, 빌드 도구가 그 권한을 왜 그렇게 쓰는지가 이 저장소 밖의 사정이기 때문이다.
|
||||
|
||||
## 브라우저가 묻는 주소
|
||||
|
||||
@@ -83,7 +83,7 @@ SPA 가 부팅에 필요한 설정 파일은 그 판정에 들어 있지 않다.
|
||||
| 설정 파일 | o | o | 권한이 0600 이라 읽지 못함 |
|
||||
| favicon | o | o | 아무도 그 이름을 요청하지 않음 |
|
||||
|
||||
둘 다 「파일이 없다」가 아니었고, 그래서 이미지를 열어 파일을 찾는 방식으로는 둘 다 정상으로 보였다.
|
||||
둘 다 「파일이 없다」가 아니었다. 그래서 이미지를 열어 파일을 찾는 방식으로는 둘 다 정상으로 보인다 — 무엇이 실제로 요청되고 어떤 응답이 오는지를 봐야 갈린다.
|
||||
|
||||
## 확인하지 못한 것
|
||||
|
||||
|
||||
Reference in New Issue
Block a user