분류 전체보기
-
Neovim에서 Copilot 사용하기Study/개발 2025. 2. 28. 19:08
회사에서 Copilot 지원이 시작되었다. 바로 신청해서 사용해보았지만 너무 큰 문제가 있었다.VSCode와 Neovim의 싱크가 깨지는 문제였다.Vscode Neovim 익스텐션은 VScode 탭과 Neovim 인스턴스 사이에서 싱크를 맞춘다.이 때, 코파일럿의 자동완성을 사용하면 간할적으로 Neovim의 싱크가 깨졌다.키들이 동작하지 않았고 매번 익스텐션을 재시작 해야했다.아래 등록된 이슈로 확인할 수 있는데, 25.02.28 기준 아직 진행 중으로 확인된다.Github 이슈 참고: https://github.com/vscode-neovim/vscode-neovim/issues/2184 bug: "Syncing layout: Syncing active editor" keeps running forev..
-
[Naver D2] 고급 타입스크립트 세션 정리Study/개발 2025. 2. 25. 23:41
권세규님의 네이버 엔지니어링 데이 세션 infer, never만 보면 두려워지는 당신을 위한 고급 TypeScript를 보았다.이 세션을 통해 아래 개념들을 더 명확히 익힐 수 있었다.타입의 대소 비교타입의 종류제네릭 타입 검사또한 아래 과정들을 시각적으로, 단계별로 보여준다.타입스크립트의 타입 검사가 이뤄지는 과정실제 라이브러리 코드에서 타입을 개발하는 과정1시간 12분으로 짧지 않지만 내용이 밀도 있고, 발표자료가 준비가 잘 되어 있기에,타입스크립트를 잘 사용하고 싶다면 꼭 한번 보는 것을 추천한다.infer, never만 보면 두려워지는 당신을 위한 고급 TypeScript이를 아래에 간단히 정리해보았다. (많은 내용 생략) 타입의 대소 비교타입 A와 B의 대소는 서브타입 관계에 따라 달라진다.서브..
-
JS 글자 수 세기 문제Study/개발 2025. 2. 18. 23:16
글자 수 문제JS에서 글자 수를 validation을 하는 경우 보통 length를 사용한다.const MAX_LENGTH = 10;const validate = (value: string) => value.length 하지만, 아래 경우는 어떨까?validate('정답을 맞춰보세요😀');띄어쓰기 포함 10글자이지만, false를 출력하는것을 볼 수 있다.'정답을 맞춰보세요😀'.length; // 11emoji가 길이 2로 계산되기 때문이다.해결책[...'정답을 맞춰보세요😀'].length; // 10위와 같이 spread 연산자를 사용하면 결과가 10으로 정상적으로 나오는 것을 알 수 있다.원인문자열은 인덱싱, 길이연산 등에서 기본적으로 UTF-16 코드 유닛 기반으로 동작한다.'정답을 맞춰보세요..
-
더 이상 메인 에디터로 Neovim을 쓰지 않는 이유Study/개발 2024. 11. 23. 16:18
이전 글 - https://blue-tang.tistory.com/97 NeovimIntro 요새 코드에디터로 Neovim을 사용하려는 시도를 하고있다. Vim 자체가 익숙치 않아서 초기에 좀 어려움을 겪었다. Vim motion부터 좀 익숙해지고, 개인 프로젝트 개발할 때는 급하지 않으니 최대blue-tang.tistory.com Neovim은 약 1년이 넘는 기간동안 나의 메인 코드 에디터였다. 키보드만으로도 모든 것을 제어할 수 있는 강력한 기능과 속도는 나에게 큰 즐거움을 주었다. 그러나 시간이 지나면서, 나는 점점 Neovim을 메인 에디터로 사용하는 것에 대한 한계를 느끼게 되었다. 이번 글에서는 내가 왜 Neovim을 더 이상 메인 에디터로 사용하지 않게 되었는지에 대해 이야기해보려고 한다...
-
SSE 토이 프로젝트 - 프롬프터 만들기Study/개발 2024. 7. 18. 00:13
SSE(Server Sent Event)를 사용해보자.서버에서 입력한 내용을 화면에 마크다운으로 띄워주는 프롬프터를 만들어본다.github: https://github.com/JAAAAAEMKIM/practice/tree/main/sse-practice스펙1. 서버사용자 입력을 받아 라인별로 클라이언트에 전송한다.SSE를 통해 구현한다.2. 클라이언트서버와 연결되어, 사용자 입력을 화면에 표시한다.Markdown을 사용해서 실시간으로 보여준다.서버 개발하기기술 스택: Bun, TypescriptBun 선정 이유Typescript 바로 실행 가능간단한 서버 실행서버 실행구현은 SSE 관련 내용의 bun github issue를 참고했다.https://github.com/oven-sh/bun/issues/2..
-
[React Conf 2024] Demystifying Accessibility in React AppsStudy/개발 2024. 7. 3. 22:37
https://youtu.be/0ckOUBiuxVY React Conf 2024에서 Demystifying Accessibility in React Apps라는 발표가 있었다.이번 포스팅에서는 발표 내용을 정리하며 React 앱에서 접근성을 어떻게 구현할 수 있는지 알아본다.접근성의 정의Accessibility: 장애가 있는 사람들도 동일하게 접근하고 사용할 수 있도록 하는 것.실생활 예시: 휠체어 경사로, 점자 블록 등.디지털 환경: 스크린 리더 등이 해당됨.접근성의 동작 방식웹 문서는 HTML로 받아 DOM 트리로 파싱하고 UI로 사용자에게 보여진다.이 때, DOM 트리를 기반으로 접근성 트리(Accessibility Tree)가 생성된다.접근성 트리는 개발자 도구에서 확인할 수 있다.DOM 노드처럼..
-
타입스크립트 5.5 베타 요약Study/개발 2024. 7. 2. 17:55
https://devblogs.microsoft.com/typescript/announcing-typescript-5-5-beta/#inferred-type-predicates Announcing TypeScript 5.5 Beta - TypeScriptToday we are excited to announce the availability of TypeScript 5.5 Beta. To get started using the beta, you can get it through NuGet, or through npm with the following command: npm install -D typescript@beta Here’s a quick list of what’s new in TypeScdevb..
-
Tmux 마우스 드래그 오류Study/개발 2024. 7. 1. 22:10
TL;DR원인: 마우스 리포팅에서 사용되는 모듈이 현재 tmux 버전과 맞지 않아서해결: tmux 업데이트 후 정상동작 확인.계기: iterm2의 업데이트로 인해 발생한 것으로 추정.tmux 사용 중 오류가 발생했다.마우스 드래그로 텍스트 셀렉션을하면 tmux가 종료되는 현상이다.현재 세션뿐만 아니라 모든 세션이 종료되기 때문에 굉장히 불편한 오류이다.iterm의 본창에서는 그러지 않는 것으로 확인하여 tmux의 오류를 의심하고 찾아봤다.https://github.com/microsoft/azurelinux/issues/6598유사한 오류를 어렵지않게 발견할 수 있었다.tmux 업데이트로 쉽게해결할 수 있다.