로딩 스피너 컴포넌트를 만들 때 고려할 점, 가능한 방법을 생각해 보았다. 이중 제출 방지 submit 버튼을 두 번 눌러 요청을 중복하는 걸 방지해야 한다. div를 늘려 오버레이하는 게 가장 간단해 보인다. 더 철저하게 하자면 axios 사용 층에서 배타적으로 요청하는 유틸리티를 추가할 수 있을 듯하다. 서버도 결국엔 CSRF 토큰을 사용하게 될 텐데 이것도 이중 제출 문제를 완화할 수 있을 것으로 보임. 재활용 방법 비교 MobX 현재 사용 중이고 간단함 단점을 들자면 라이브러리 의존성 @inject('applicationStore') @observer class SubmitForm extends React.Component { showLoading() { this.props.applicationS..
최근 참여한 프로젝트에서 리액트를 사용하고 있고 관습으로 클래스 컴포넌트를 사용하고 있었습니다. 저는 리액트 훅을 최근에 알게 되어 그걸 사용하고 싶었고 그 장점을 소개할 기회를 얻었습니다. 훅Hook은 무엇인가? 상태와 생명주기에 엮인 부수효과를 관리하는 새로운 방법입니다. 즉 기존의 this.state와 componentDidMount()등의 사용을 대체합니다. 믹스인, HOCHigher order component를 대체할 수 있습니다. Redux, MobX와의 관계는? 거의 별개라고 할 수 있습니다. MobX와 Redux 둘 다 상위 컴포넌트에서 스토어라는 트리 범위의 상태를 관리합니다. 이건 리액트에선 컨텍스트를 통해 관리할 수 있고, 훅의 useContext를 통해 컨텍스트도 접근할 수 있으므..
https://gist.github.com/rambabusaravanan/1d1902e599c9c680319678b0f7650898 유용한 .gitconfig 파일을 발견했다. 내용인즉슨 IntelliJ의 diff GUI를 diff, mergetool로 쓰게 해주는 설정이다. IntelliJ의 diff 툴이 편리하다는 건 알고 있었지만, 곧바로 적용가능하다고는 기대하지 않았는데, 가능했다. 창을 띄우는 데까지 걸리는 시간이 상당하지만, 특정 상황에서는 감수할 만 하다. 번역 작업을 할 때, 원본 파일에 변경이 생기면 원본의 변경을 다시 번역해야 한다. 이 때 번역이 완전히 바뀌는 일은 별로 없으므로 바뀐 부분, 즉 C0 → C1으로의 차이점을 C2에 반영해 C3를 편하게 만들 수 있다.
sequence { runBlocking { ... } }을 어떻게 못하나 싶어 왜 제한이 필요한지 찾아봤다. @RestrictsSuspension 등 설명은 이 링크만 보면 파악할 수 있다. 내 생각엔 스레드 전환같은 게 없이 Continuation 저장, 불러오기만 사용하고 싶을 때 쓰는 듯 하다. 이 목표를 사용할 수 있는 suspend 함수를 제한하고 원래 코루틴 문맥에서만 호출할 수 있게 해 달성한 것 같다. 같은 문서에서 찾은 대안으로는 suspendingSequence라는 게 있었지만... Channel로 대체된 듯 하다.
집에 있는 삼성 TV는 USB 파일 재생을 지원하지만 왜인지 자막 설정이 비활성화 되어있었다. 외곽선도 없는 작은 글씨라 불-편. 이번 일로 동영상 파일을 재인코딩하지 않고 이미지 자막을 추가하는 법을 찾아보았다. 1단계: 자막을 이미지 자막으로 변환하기smi, srt등의 자막을 vobsub라는 이미지 자막 포맷으로 바꿔야 한다. 필요한 프로그램은 SubtitleEdit이다.사진은 영어지만 한국어도 지원하고, Options 메뉴 - Choose Languages에서 바꿀 수 있다. 1) 자막을 SubtitleEdit으로 연다. 대충 자막 파일을 드래그해도 열 수 있다. 2) File 메뉴 - Export - Vobsub를 고른다. 3) 원하는 자막이 되도록 설정하고 Export all lines를 눌러 ..
의문을 가지곤 있었는데 구글링 키워드가 잘 떠오르지 않아 질문을 올리긴 귀찮고 꽤 오래 묵히고 있었다. 내용인 즉슨 https://regex101.com/r/FSjbBC/1 이게 어떤 이유로 오른쪽의 매치 결과가 나오는지 모르는 거였다. 특히 저 빈 매치가 왜 생기는지. 이제 설명하자면, 싱글라인 옵션이 걸리지 않은 정규식은 .이 [^\n]하고 같다고 볼 수 있다. 그래서 첫번째 매치가 한 줄만 대응하고 종료한다. 두번째 매치 시작 시엔 \n을 바로 앞에 둔 상태다. 때문에 아무것도 소모할 수 없어 빈 매치로 끝난다. 다음 매치 진행 시엔 직전에 빈 매치가 나온 상태기에 무시되고 매치는 실패된다. 그렇게 \n 문자는 매칭되지 않고 넘어간다. 세번째, 네번째 매치는 첫번째, 두번째와 동일하게 진행되고 다섯..
- Total
- Today
- Yesterday
- hooks
- SHAREX
- C++11
- JWT
- software compraison
- Deemo
- React
- Rust
- gram
- coroutine
- Windows Defender
- game design
- Haskell
- Qt5
- novel review
- C/C++
- MSVC2013
- Kotlin
- intellisense
- V3 Lite
- CLion
- WSL
- getch()
- error highlighting
- Code Snippet
- Authentication
- MSVC 2017 RC
- MSVC
- IntelliJ
- Notion
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |