# 2023 2월 TIL

# 2023.02.14

# 그간 무슨일이 있었냐면..

글감은 쌓여만 가는데 각잡고 쓸 여유도 체력도 없다.🥲 거참 이러다가 다 까먹겠수.. 노션 워크스페이스에 워킹노트는 꾸준히 작성하려 애쓰는 중이지만 그마저도 습관이 들지 않아서 쉽지는 않다. 프로젝트 단위의 필요가 있다면 오히려 바로바로 문서화 할텐데 순전히 나를 위한 기록에 한하여 게을러지는 것은 별로 좋은 습관은 아닌 듯.

마지막으로 로그를 작성한 2023.01.02 이후 무슨 일이 있었는지 대략 적어보자면

  • swcMinify관련 이슈 해결
    • 그 연쇄 작용으로 modularize imports setting이 정상 작동하지 않고 빌드시 뻑나는 문제가 있었는데, 해당 기능이 experimental에서 상용으로 올라오며 발생한 이슈였다. 해당 사항은 Next.js 13.1.0 릴리즈 노트에 기술되어 있음. 메인으로 사용하는 스택의 릴리즈 노트는 watch 걸어놓고 그때그때 읽자는 교훈을 얻었음.
  • testable한 코드란 무엇인가? 어떻게 짤 수 있는가?
    • 일단은 UI 로직과 비지니스 로직을 분리하는 것, 그리고 응집도 높고 복잡도는 낮은 함수 구조를 설계하려 노력중이다. 정해진 틀이라는 것이 없는 에디터 유닛의 환경이 이런 저런 것들 실험해보기에는 참 좋은 듯.. 하지만 그만큼의 책임도 져야하는 듯..
  • mock server를 실제 개발에서 활용하려면!
    • 크게 두가지. e2e 테스트 환경에서 msw와 함께 사용, 개발 환경에서 msw와 함께 사용.
    • 이 모든 것의 대목표는 '개발 환경에서의 병목 개선'이다. 그리고 '높은 수준의 목업 작성'을 간편하게 하는 것.
  • webkitRelativePath를 활용한 폴더 단위의 이미지 업로드 기능 구현
    • 이거 재미있었다.
    • onDrop 액션을 이용해 200개 이상의 entry를 가지는 파일 업로드를 구현하려면 필연적으로 entry를 생성하는 재귀 유틸을 구현해야 하는데, 해당 액션을 미리 구현했던 선구자께서 감사하게도 npm에 패키지로 배포를 해 놓았다. 하지만 types Module이 존재하지 않는 것이 문제..
      • 작업 일정이 빠듯하여 해당 유틸만 @ts-nocheck를 적용한 상태로 개발 진행 중이다. BCMS P1이 끝나면 해당 모듈에 대한 type declare 방식으로 작성해 붙이고 가능하다면 types 모듈 배포까지 하는 것이 목표!
      • 이걸 시도하다가 나의 타입스크립트 지식이 부족하다는 사실을 깨닫고 이펙티브 타입스크립트 다시 읽으며 공부하는 중이다. 올 해 이거 하나만큼은 꼭 해내고 싶음.
  • 위 작업을 수행하며 분기를 정~말 다양하게 주어야 했는데, 분기를 나누는 로직을 깔끔한 선언형으로, 읽기 편하게 작성할 수 있는 방법이 무엇일까 고민중이다. 3월에 큰 태스크 배포가 끝나면 각잡고 분기 리팩토링 작업 진행하고 싶다. + 선언형과 함수형 개발 학습 포함하여.