Next.js 15.5 출시가 되었고 메이저 업데이트는 아니지만 Next.js 16에 대한 예고가 있어 내용을 파악할 겸 정리해 보았다주요 기능 업데이트1. Turbopack 빌드 (베타)이제 next build --turbopack 명령어로 프로덕션 빌드에서 Turbopack을 베타 버전으로 사용할 수 있고 주요 변경 사항은 아래와 같다.성능 향상: 멀티코어 CPU를 적극 활용, 웹팩 대비 빌드 속도를 2배에서 최대 5배까지 단축.프로덕션 안정성: 빌드된 사이트는 웹팩과 비교 시 비슷하거나 더 적은 JS/CSS 번들을 생성하며, 웹 성능 지표(FCP, LCP, TTFB)도 동등하거나 더 나은 결과를 보였음.하지만 아래와 같은 사항을 고려해서 사용해야 한다고 한다소규모 프로젝트: 영속적 캐싱 기능이 아직..
분류 전체보기
TypeScript를 사용하다 보면 함수 타입 할당에서 예상과 다른 결과를 마주할 때가 있다.특히 "더 구체적인 타입을 받는 함수를 더 일반적인 타입을 받는 함수에 할당할 수 없다"는 규칙은 처음에는 직관적이지 않게 느껴질 수 있다. 이는 TypeScript의 반공변성(Contravariance)이라는 개념 때문인데,어려운 용어는 잠시 제쳐두고 음식과 요리사 예시를 통해 이 개념을 이해해보자.기본 타입 관계부터 살펴보기먼저 간단한 타입 관계를 정의해보겠다:type Food = 'pizza' | 'burger' | 'salad'type Pizza = 'pizza'여기서 Pizza는 Food의 부분집합이다. 따라서 다음과 같은 할당이 가능하다:const a: Food = 'pizza' // ✅ OK - ..
스티브 잡스의 아주 유명한 말이다. 이 말을 처음 들은 건 1~2년 전쯤이었다.그때는 솔직히 크게 와닿지 않았다. 나는 그 당시, “팀 안에 없는 능력을 가진 뛰어난 인재를 뽑는 건 모든 조직이 공유하는 당연한 채용 가치”라고 생각했다.그래서였을까. 스티브 잡스의 그 말은 크게 와닿지 않았다. 그런데 언젠가부터 저 말이 점점 공감되기 시작하였고 이 말의 의미를 조금씩 체감하게 됐다. A급 인재는 자신보다 뛰어난 사람을 뽑는 데 거리낌이 없다.아니? 오히려 최대한 뛰어난 사람을 뽑으려고 많은 노력을 기울인다.그로 인해 팀이 더 강해지는 건 물론이고, 그 사람으로부터 긍정적인 영향과 함께 자극받는다는 걸 잘 알기 때문이다. 반면, B급 인재는 자신이 중심이 되길 원하고, 경쟁자가 자신의 자리를 위협하진 않을..
써보고 싶은 기술들이 생겨서 뭔가 혼자서 만들고 싶다는 생각은 있었지만,딱히 떠오르는 아이디어가 없어서 만들지 못하고 있었는데 불현듯이 아이디어가 떠올라서 혼자 프로젝트를 시작했다.그리고 경력이 쌓이면서 ui/ux에 대한 경험이나 지식이 많이 쌓였다고 느꼈고 이걸 결과물로 녹여내고 싶었다.필자는 작년부터 야구에 빠져서 야구를 정말 자주 보고 좋아하는데, 스코어 확인이나 커뮤니티와 같이 야구와 관련된 플랫폼들을 쓰다 보면 ui가 아쉽거나 기능이 부족하거나 하는 경우가 많았다.그래서 내가 가진 ui/ux 지식과 함께 이것저것 써보고 싶은 기술들을 써서 KBO팬들을 위한 플랫폼을 만들어보려고 한다.기술스택은 다음과 같다.Next.js 15(react compiler), Supabase, Tailwind CSS..
회사에 있는 다양한 프로젝트 안에 백엔드 테스트 코드는 많았지만, 프론트엔드 테스트 코드가 부족한 상태였다. 검수 과정에서 동일한 작업이 반복되는 문제가 있어, 이를 해결하기 위해 E2E 테스트 코드 도입을 제안했고, 그 과정에서 정리한 내용을 공유하려 한다.E2E 테스트란?E2E(End-to-End) 테스트는 사용자의 실제 행동을 시뮬레이션하여 애플리케이션이 예상대로 동작하는지 확인하는 테스트 방법으로, UI 및 네트워크 상호작용을 포함한 전체 애플리케이션 흐름을 테스트할 수 있다.조사했던 후보로는 Playwright, Cypress, Selenium 등이 있었다.E2E 테스팅 툴 특징 정리Playwright특징Chromium, Firefox, WebKit 지원 → 크로스 브라우저 테스트 가능병렬 실행..
2024년도 참 빨리 지나갔고 돌이켜보면 나에게는 정말 중요한 한 해였다. 중요하지 않은 연도가 어디 있겠냐만은 올해는 정말 좀 특별한 한 해였다.대학을 졸업하는 해이기도 했고, 회사에서는 꽤 중요하게 오랫동안 쓰일 수 있는 수도 있는 경력도 쌓았다. 아직 졸업 이전이라 나에게 중요한 롤을 맡길 회사가 없을 것이라 생각했었다.그렇기에 사실 2024년을 시작했을 땐 개발자로서 무언가 중요한 경력을 남길 것이란 기대를 하진 않았다. 그래서 올해 초의 목표는 학업과 어느 정도의 실무를 병행하면서 2025년에 좋은 회사에서 중요한 역할을 하기 위한 준비를 하는 한 해를 만들어 볼 계획이었지만 운이 따라줘서 이 목표를 상회해서 마무리한 것 같다. 조직팀 빌딩 초기에 합류를 했고 그 이후에 다양한 사람이 들어오고 ..
가장 애용하는 스택 중 하나인 Tailwind CSS의 새로운 메이저 버전인 v4에 대한 베타가 나와 바로 내용들을 확인했고,v4에 나올 피쳐들은 대부분 확정된 것 같아 내용들을 익힐 겸 글도 같이 써보려고 한다.업그레이드 방법npx @tailwindcss/upgrade@next 업그레이드 하는건 크게 어렵지 않게 위 커맨드를 통해 진행할 수 있었고,업그레이드 후 주요 변경 사항으로는 config 파일에 대한 규칙 변경과 기존 클래스 이름 수정 등이 있었는데, 아래 링크에 있는 레포에서도 변경된 내용에 대한 커밋 내용을 기록해 두었습니다. https://github.com/bysxx/next15-ts-template-fullstack/commit/d7d40c7e9dafed9a33884b7b1a360efc..
나는 누군가가 조언을 구하면 정말 나의 일처럼 고민하고 생각해서 답변을 해주는 편이고, 내가 도움이 되지 않을 것 같다면 차라리 답변을 포기한다. 그렇기에 나는 조언을 구할 때도 정말 신중하게 고민한 이후 구하고, 조언을 정말 소중하게 여긴다. 하지만 이렇게 고민하고 생각해서 답변을 하면 대부분의 사람들은 본인들의 생각이 있고 그 생각이 맞다는 걸 그냥 동의해 주길 바라는 사람들이 대부분이다. 그렇기에 매번 힘이 빠지지만 나는 조언을 통해 너무 좋은 의사 결정을 한 기억이 많고,내가 해주는 조언을 정말 깊게 생각해보는 사람들이 있기에 아직은 신중하게 생각해서 답변을 해주고 있다.(하지만 매번 그냥 동의를 해주길 바라면서 조언을 구하는 사람에게는 그냥 원하는 대로 해주는 편이다.) 아무튼 모든 사람들이 조..
개발자 인생 추첨을 해서 참석할 수 있는 컨퍼런스는 당첨된 적이 없었으나 최초로 당근 테크 밋업에 당첨되어 기분 좋게 다녀왔다. 도착 & 네트워킹세션 시작은 11시였지만, 10시부터 네트워킹을 진행한다고 해서 10시까지 도착하였다. 입장하였더니 이것저것 주셨는데 스티커, 펜, 노트 등 다양한 굿즈와 물을 주셨다.직장 동료와 함께 자리를 잡고 나는 프론트엔드 코어팀과 네트워킹을 진행하였다. 해외 웹사이트, 웹뷰 배포 등의 업무를 맡고 계셨고 여러 가지 궁금한 걸 여쭤봤다. 일단 스프린트를 어떤 식으로 관리하시는지 궁금했는데 height.app이라는 툴을 사용하고 있다고 한다.지라, 트렐로, 노션 등 다양한 관리 툴들을 보았지만 height.app은 처음 보는 툴이었는데 설명해 주시는 걸로는 지라보다 훨씬 ..
2분기 회고 이후로 한 분기 동안은 별다른 글이 없었고 회고로 오랜만에 글을 작성하게 되었다.바빴다는 핑계를 대고 싶기도 하지만 안 바쁜 개발자는 없기에 되돌이켜보면 중간중간 작성 중인 초안이 있기는 했지만, 뭔가 글을 완성해갈수록 만족스럽지 않아 올라가지 않은 글이 많다. 그렇지만 3분기를 되돌이켜보면 크고 작은 일들이 많았다.MongoDB.local 20242023년도에 이어 2년 연속 참석했는데, 내가 다녔던 컨퍼런스 중 식사나 장소 섭외와 같이 외적인 요소에 대한 준비성은 단연 1등인 것 같다.강연 내용도 물론 퀄리티가 좋지만 이런 외적인 요소들의 퀄리티도 신경 쓴 게 놀라운 것 같다. 새로운 버전에 대한 내용도 듣고 활용 사례도 들었지만 사실 이 날 내가 기대했던 건 네트워킹이었다.사내 데이터베..