func (idx, used int)
```
used
를 사용했다고 가정하고, idx
는 몇 번째인지를 나타낸다고 해보자. 이 경우, used
에 1
로 켜져있는 비트의 수를 세면 이 함수가 풀 idx
값을 얻을 수 있다. 하지만 이는 추가적인 계산이 필요하다. 편의를 위해 이 값을 idx
로 전달하면 쉽게 해결된다. 이 경우 굳이 idx
는 메모이제이션을 하지 않아도 된다. 어차피 idx
값은 used
값에 종속적이기 때문에 used
에 의해 상태가 결정되지, idx
에 의해 상태가 결정되는 것은 아니기 때문이다.input.value
vs input.files
오픈 카톡방에서 어떤 분께서 input
에 여러개 첨부된 파일 중 특정한 것을 어떻게 빼야 하는지 질문을 하셨다. 나는 자연스럽게 input
태그의 파일값은 읽기 전용이므로 바꿀 수 없다는 답변을 드렸다. 그런데 다른 분께서 그냥 다른 배열로 옮기고 처리하면 된다고 말씀하시고 그걸로 해결을 하셨다고 한다.
엥? 도대체 어떻게 그게 가능하단 말이여? 내가 알기로 input
태그의 value
값은 읽기전용인데, 읽기전용인 이유는 사용자 컴퓨터의 특정한 경로에 있는 파일들을 마음껏 업로드 할 수 있으니 이를 보안상 막기 위함이라고 알고 있는데 말이다.
근데 알고보니까 FileList
객체는 value
에 들어있는게 아니라 files
에 들어있더라... Aㅏ.. 난 지금까지 value
라는 값에 FileList
같은게 들어있는 줄 알았는데 그게 아니었던 것이다... 그래도 FileList
자체도 immutable
이므로 읽기전용이라고 봐야 한다.
책임이 가장 중요하다. 암 그렇고 말고!