All Posts

All Posts

448편
  • 발행일

    목업 API에 넣은 교체 장치는 끝내 쓰이지 않았다

    6월에 Open API를 목업 데이터로 먼저 짜면서, 나중에 데이터 공급자만 바꾸면 주소·응답 계약·문서는 그대로 간다는 교체 장치를 넣었습니다. 9월에 실제 데이터를 붙일 때 그 장치는 한 번도 쓰이지 않았어요. 바뀐 건 데이터 출처가 아니라 계약 자체였기 때문입니다. 목업 네 종과 교체 장치를 지우고, API의 노출 범위를 공개 화면과 같은 함수에 맡긴 기록입니다.

  • 발행일

    서버 렌더링만으로 끝나지 않는 초기 상태 셋

    9월 4일에 신청 화면 한 곳의 "펼쳐졌다 접히는" 깜빡임을 서버가 hidden을 달아 내보내는 방식으로 고쳤습니다. 2주 뒤 같은 원인을 아코디언·목차 전체의 규약으로 넓혀 7개 구획과 목차 첫 칸에 적용했는데, 그 과정에서 서버가 그리는 것만으로는 끝나지 않는 초기 상태가 세 가지 나왔습니다. 서버와 JS가 같은 목록을 따로 들고 있어야 하는 활성 클래스, 서버로 오지 않는 URL 해시, 그리고 부분 템플릿이 알 수 없는 "페이지의 첫 항목"입니다.

  • 발행일

    화면 16초 멈춤, 범인은 트리가 아니라 선택 상자

    OID 등록 신청 화면의 상위 OID 트리가 스피너도 없이 빈 상자로 한참 멈춰 있었습니다. 트리 요청은 0.6초에 끝났는데 페이지의 DOMContentLoaded 처리가 16.1초였어요. 같은 폼에 있는 참조 선택 상자가 항목 7,099개를 하나씩 DOM에 붙였고, 페이지 전체를 감시하는 FontAwesome이 그 변경 기록을 처리하느라 메인 스레드를 잡고 있었습니다. 모아서 한 번에 붙이게 바꾸니 0.06초가 됐습니다.

  • 발행일

    날짜 입력칸을 씌우자 기존 값이 지워질 뻔했다

    생성일자·수정일자·발행일자·표준 폐지일자·바이트 크기가 전부 평범한 텍스트칸이었습니다. 그런데 용어를 아무리 들여다봐도 그 슬롯이 날짜인지 알 수가 없었어요. 값 영역이 rdfs:Literal 이거나 아예 비어 있었거든요. CURIE 명단으로 판정하기로 했는데, 날짜칸을 씌우는 순간 꼴이 다른 기존 값이 화면에서 조용히 비워진다는 걸 알았습니다. 저장 한 번이면 그대로 지워지는 값이었어요.

  • 발행일

    서버를 안 부르는 검색칸, 언젠가 거짓말을 한다

    클래스·용어 관리 화면에서 네임스페이스를 고르면 소속 용어가 표로 쭉 나옵니다. 가장 큰 것이 117건인데 찾을 방법이 눈으로 훑는 것뿐이었어요. 목록이 페이지 나눔 없이 통째로 그려져 있어서 서버를 부르지 않고 그려진 행만 걸렀습니다. 대신 "전부 렌더돼 있다"는 전제에 기대는 구현이라, 언젠가 페이지 나눔이 생기면 이 검색칸은 그날부터 거짓말을 합니다.