Dev
개발 정보
프로그램은 대개 경계를 어디에 긋느냐에서 갈린다 — 데이터를 파일로 둘지 문자열로 심을지, 값을 클라이언트가 갈아 끼울지 서버가 읽게 할지, 어디까지를 한 덩어리로 볼지. 어느 쪽도 공짜가 아니라서 균형을 잡아야 합니다. 그 경계를 짚은 자료들입니다. 주제별로는 태그 목록에서 찾을 수 있습니다.
여기 있는 글은 대부분 실제로 막혔던 자리에서 나왔습니다. 되는 방법만 적어 두면 다음에 같은 곳에서 다시 막히기 때문에, 왜 그렇게 되는지와 어디서 균형이 뒤집히는지를 같이 적으려고 합니다. 코드는 직접 돌려 본 것만 싣고, 예전 글을 옮길 때는 다시 검증해서 틀렸던 곳을 본문에 남깁니다 — 지우면 같은 실수를 반복하게 됩니다.
웹 — 파일과 문자열 사이
- 이미지를 파일로 둘까, 문자열로 심을까파일이면 요청이 생기고 문자열이면 33%가 붙는다. 작은 아이콘에서 base64가 이기는 이유와, 균형이 다시 넘어가는 지점.
- Blob URL을 img src로 쓰는 법, 그리고 그 대가문자열로 바꾸는 대가가 감당이 안 될 때. 인코딩하지 않고 참조 주소만 받는 대신, 다 쓴 주소는 직접 치워야 한다.
자바스크립트 — 문맥과 빌드 도구
- 이벤트 핸들러 안의 this — 누가 그 함수를 불렀는가onchange 속성 안에서는 요소인데 함수 안으로 한 겹 들어가면 사라진다. 화살표 함수가 만든 새 함정과, currentTarget이라는 지금의 정답.
- React 입력값 테스트가 안 먹히는 이유value를 바꾸고 이벤트를 쏴도 반응이 없다. 막는 것이 두 가지다 — React가 듣는 이벤트 이름, 그리고 value에 끼어든 값 추적기.
- 바벨은 무엇을 하고 무엇을 하지 않는가문법을 바꿀 뿐 없는 기능을 만들지도, 파일을 합치지도 않는다. 이 경계를 모르면 "빌드는 됐는데 안 돈다"에서 며칠을 쓴다.
오라클 — 9i 시절 노트
2018년에 오라클 9i 환경에서 쓴 글을 옮기면서 틀린 곳을 고치고 빠진 것을 채운 자료입니다. 9i는 지원이 끝난 지 오래지만, 블록 구조와 바인드 변수의 동작은 지금까지 그대로이고 아직 9i를 돌리는 레거시에서는 최신 문법이 그대로 오류가 됩니다. 버전에 따라 갈리는 곳은 각 글에 따로 표시해 두었습니다.