개요 "내 삶에 있어서 잡담은?"이라는 지극히 주관적인 내용에 대해 기술적으로 접근하는 잡담도 좋지만, 좀더 "삶의 관계 형성"에 대한 방향으로 이야기해보고싶었다. 시간이 지남에 따라 내가 생각하는 "관계"란 무엇인가?에 대해 고민을 하게 되었다. 주변 관계를 형성하기 위해선 "대화"가 필연적으로 따라줘야 한다고 생각한다.그렇다면 "관계를 형성하기 위한 대화"는 어떻게 시작되고 이루어져야하는지에 대해 생각해봤더니, "잡담"이라는 키워드가 그 역할을 하고 있었다. 주변에 "잡담"에 대한 글과 영상이 많이 있다. 이런 자료들은 대부분 "쓸모 있는 잡담", "관계를 회복하는 잡담", "직딩의 잡담의 기술" 등과 같은 주제로 잡담에 대한 "기술적이고 실용적인" 부분에 대해 많이 강조되고 있다. 현시점 잡담의 의..
개요 지난 번 오픈 소스 스터디를 위해 tsserver에 관해 조사한 적이 있었다. 당시에는 조사에만 그치고 내부 구조에 대해 파편화된 정보로만 조사했었다. 그런데 타입스크립트를 사용하면서 tsserver의 내부 구조에 관한 글을 본 적이 없는 것 같아 이번 기회에 tsserver에 대해 톺아보기에 시간을 가져가고자 한다. 자 이제 숨 쉬듯 쓰던 TS(TypeScript)가 어떻게 IDE에서 그렇게나 많은 타입을 검사하고, 변환하고, 유추하는데 사용자가 큰 불편함 없이 사용할 수 있었던 원인을 알아보자. 이 글은 단순히 tsserver의 이론적인 정보를 전달하는 글이 아니다. 이론과 비즈니스 로직을 파악하면서 순차적으로 코드 중심적으로 작성하고자 한다. 전달하고자하는 내용 tsserver가 IDE에 어떤..
개요기존 홈페이지에서 페이지 로드 시 높은 화소 이미지로 인한 느린 랜딩 속도로 인해 UX 개선이 절실히 필요하였다. 차선책으로 이미지 압축을 통해 약간의 개선을 하였지만, 그래도 높은 용량의 이미지 처리와 떨어진 퀄리티로 인해 디자이너, 개발자의 만족도가 낮은 상태였고, 퀄리티를 개선하는 방향을 찾다 Next.js(v12.2)의 이미지 최적화 서버를 활용 가능하다고 판단하여 적용하게 되었다. 사실 Next.js의 next/image 컴포넌트는 이미 사용 중이었으나, 다양한 이유로 인해 운영환경에서 최적화가 된 채로 배포가 되지 않고 있었다. 다른 사람들은 그냥 컴포넌트만 쓰면 알아서 optimize가 된다는데…. 왜 우리만…!? 보안 이슈, yarn-berry에서의 Sharp 이슈와 Low 버전의 C..
시작 갑자기 이번글에선 이 영화의 포스터와 제목을 오마주를 하고 싶었다. 난 이 영화를 재밌게 보진 않았다. 하지만 작품의 제목, 내용, 미야자키 하야오의 인생을 반영한 이 작품에 대해서 이동진 평론가가 한 말이 떠올랐다. 좋은 영화는 답을 제시하지 않는다. 그래야만 한다는 것은 아니고, 다만 아무리 좋은 영화라도 현실에서 명확한 답을 제시할 수 없기 때문이다. 지난해가 모두 좋았다는 말은 아니고 한해 동안 어떻게 살아왔고, 무엇을 얻고 무엇을 잃었는지에 대해 의식의 흐름대로 나열해보려한다. 좋은 개발자가 되기 위한 2023년 하반기 회고를 작성하고 반년이 지났다. 회고록은 재작년에 이직을 하고 나서 이번이 세 번째이다. 이번 회고 글은 지웠다가 다시 썼다가를 반복했는데, 정리가 잘 안되는 것도 있었지만..
최근 들어서는 퍼블리셔가 있는 회사가 점점 없어지는 추세로 알고 있다. 하지만 연식이 조금 되거나, 업무의 효율성 증대를 위해 해당 포지션을 가지고 있는 회사는 아직 많이 있다. 퍼블리셔라는 포지션 특성상 HTML, CSS를 위주로 페이지 템플릿이나, 정적인 페이지 디자인까지만 업무를 하는 경우가 많아 개발자와 함께 같은 프로젝트에서 붙어서 진행하는 경우는 많이 없었다. 또한 규모가 조금 있는 곳이라면 업무가 몰리는 경우도 매우 많고, 그러다 보니 협업하는 과정에서 워터폴 방식으로 업무가 진행되는 경우가 많이 있었다. 이번 글은 개발자, 퍼블리셔와 디자이너가 함께 협업할 수 있었던 이야기를 작성해 보려 한다. 어쩌다가 Storybook을 가져오게 되었고, 창립 이래 최초로 디자인 시스템을 구축했는지, 지..
개요처음 시작은 도커 최적화에서 시작되었다. 사내 프로젝트 진행 중 yarn-berry 마이그레이션 후 CI/CD를 진행하는 도중. 회사에서 사용되는 gitlab의 저버전 이슈로 인해 ci 중 캐싱이 되지 않고, 필요 이상의 .yarn 내부의 패키지와 dev module들이 포함되어 올라가는 이슈가 발생하여 빌드 최적화에 관심을 두게 되었다.그 후 운영 단계에서 최적화는 반드시 거쳐 가야 하는 순번이라 생각했고, 이번 기회에 번들링 최적화를 진행하게 되었다. Bundle Size 최적화What is Bundle?여러 개의 파일을 묶어서 처리되는 의미. Javascript 파일들을 묶어서 생성되고, 웹 애플리케이션에서 필요한 리소스를 단일 파일로 묶어서 관리하고 전달하는데 사용된다. 웹 애플리케이션에선 ..