새 책을 펼치는 순간은 언제나 설렌다. 오늘은 개발자의 바이블 같은 책, 클린코드를 펼치는 날. 내가 가장 좋아하고, 또 가장 중요하게 생각하는 파트는 바로 서론이다. 서론에서는 책을 어떻게 읽어야 하는 지 가이드를 제시해준다. 또, 저자가 이 책을 통해 말하고자하는 모든 것이 요약되어 나오기 때문에 가장 꼼꼼히 읽어야 한다. 서론 클린코드는 어떤 책인가 IT 분야는 매우 빠르게 변화하고, 또 진화하고 있다. 하지만 ‘클린 코드’에서 설명하는 원칙과 기본은 변하지 않았다. 이 책이 절대적이라 생각하면 안되며, 언제든지 개선의 여지가 있다고 생각하는 편이 바람직하다. 클린코드는 무려 2013년 12월 24일에 출간된, 10년된 책이다. 그만큼 ‘클린 코드’는 특정 언어와 프레임워크, 또는 환경에 국한되지 ..
3D 스터디 가보자구 🚀 평소에도 매력적인 인터렉티브 웹을 구현해보고 싶단 생각이 컸다. 그러던 중 three.js 공식 문서에 소개되어있는 여러 3D 웹에 매료되었고, 3D를 활용한 인터렉션을 직접 구현해보고 싶어 스터디를 시작하기로 하였다. 그리고 정말 좋은 기회로 디자이너 한 분을 모시고 3D 스터디를 하게 되었다. (디자이너 1명, 프론트엔드 3명) three.js vs babylon.js 웹에서 3d를 구현할 수 있는 유명한 라이브러리는 three.js와 babylon.js가 있다. 이 둘의 차이점은 다음과 같다. (레퍼런스) three.js babylon 주용도 간단한 애플리케이션 게임 개발 커뮤니티 크다 작다 특징 가볍고 단순하여 사용하기 쉬움 복잡하지만 기능이 풍부함 (물리 엔진, 애니매이..
내가 스타트업에 들어간 이유 2021년 6월 30일. 대학교 졸업을 앞두고 인턴 프로그램으로 면접을 보았는데 바로 정규직 제의를 받아 입사하게 되었다. 상상만 해오던 스타트업의 모습 속에 팀원으로서 들어가 있는 내 모습이 신기하고 설레었다. 20명 미만 규모의 스타트업이었다. 스타트업에서 기대했던 것들이 몇 가지 있는데, 약 2년간 그 기대했던 것들을 모두 경험했다. 1. 거의 모든 의사결정에 참여 할 수 있다. 모든 팀원들과 긴밀한 커뮤니케이션이 가능한 환경이다 보니, 기획, 디자인, 인사, 경영까지 자유롭게 의견을 표현할 수 있다. 직군과 관계없이 누구나 의견을 낼 수 있고, 좋은 의견이라면 의사결정에 반영될 수 있다. 이런 환경이다보니 개발에만 국한되지 않고 더 넓은 관점에서 조직과 프로덕트를 바..
1차 스프린트 목표 우리는 유기견 봉사 및 커뮤니티 플랫폼 웹 서비스 출시를 목표로 프로젝트를 진행하고 있다. 우리 팀은 디자이너 1명, PM 1명, 프론트엔드 개발자 3명, 백엔드 개발자 2명으로 이루어져 있다. 개발 기간은 5월 28일부터 8월 5일까지이고, 이 기간을 총 3개의 스프린트로 나누어 진행하기로 하였다. 1차 스프린트 기간: 2023.5.28 ~ 2023.6.18 (총 3주) 작업 범위 공통 컴포넌트 개발 랜딩 페이지 로그인/회원가입 - 개인 봉사자 로그인/회원가입 - 보호소 파트너 보호소 정보 수정 TPM.. 그게 뭔데 다른 개발 팀원보다 경력이 있고 스타트업에서 주도적으로 일도 해봤고 시간적 여유도 있고 등의 이유로 TPM을 맡게 되었다. TPM이란 게 굉장히 생소했지만 다음과 같은 ..
Contributor가 되기로 한 이유 2년 전, 처음 리액트를 접했을 때 닳고 닳도록 읽었던 리액트 공식 문서가 개편되었다. React The library for web and native user interfaces react.dev 주니어라고 하기도 뭐 했던 학부생 시절, 한글로 친절하게 번역되어있는 공식 문서는 든든한 스승님이 되어주었다. 리액트를 주 스택으로 다루는 2년 차 프론트엔드 개발자가 된 지금, 내가 받았던 친절을 돌려주고자 한국어 번역에 참여하였다. 2년 전의 나와 비슷한 개발자들에게 친절한 가이드가 될 수 있도록 최대한 간단 명료하고 자연스러운 어투로 번역하려고 노력했다. 개편된 리액트 공식 문서 내가 맡은 부분은 useCallback 레퍼런스 파트인데, 다른 사람들이 어떻게 번역..
Next.js 13 버전에서 추가된 4가지 기능 Next.js 13 버전에서는 App Directory가 추가되었다. 이전 버전에서 pages 폴더에 대응되는 것으로, 다음과 같은 기능을 지원한다. Layouts: state를 유지하고 비용이 많이 드는 리렌더링을 피하면서 라우트 사이에 UI를 쉽게 공유할 수 있음. Server Components: 서버에서 렌더링되는 컴포넌트를 명시적으로 구현할 수 있음. Streaming: 유저는 로딩 상태를 즉시 확인할 수 있으며, UI가 단계적으로 렌더링됨. 원한다면 App Directory 내에 컴포넌트 파일, 테스트 파일, 스타일 파일 등 라우트가 아닌 파일이 존재해도 된다. 이전 버전에서 pages 폴더 안에는 무조건 NextPage Dynamic Rout..

7강 광원 AmbientLight, HemisphereLight: 환경광, 주변광 DirectionalLight, PointLight, SpotLight, RectAreaLight: 단순한 주변광이 아닌 빛의 방향성을 가지는 광원 생성자에서 광원의 색상과 세기를 받음 준비하기 광원을 이해하기 위한 연습에 사용할 Scene을 다음 씬그래프로 구성한다. AmbientLight scene에 존재하는 모든 물체에 대해서 단일 색상으로 렌더링 되도록 한다. Usage: 대부분의 경우 세기값을 매우 약하게 지정해서 장면에 추가하여 광원의 영향을 받지 못하는 물체도 살짝 보이도록 하는 데 사용된다. HemiphereLight AmibientLight와는 다르게 빛에 대한 색상값이 하나가 아니라 두 개이다. 하나는 위..

5장 형식 맞추기 프로그래머는 깔끔한 형식에 맞춰 코드를 짜야한다. 코드 형식을 맞추기 위한 규칙을 정하고 이를 착실히 따라야 한다. 필요하다면 규칙을 자동으로 적용하는 도구를 활용한다. 이 장에서는 코드를 깔끔하고, 일관적이며, 질서 정연하게 형식을 맞추는 방법에 대해 알아본다. 형식을 맞추는 목적 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 코드 형식은 의사소통의 일환이며, 코드의 가독성은 앞으로 바뀔 코드 품질에 큰 영향을 미친다. 적절한 행 길이를 유지하라 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다. 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다. 신문 기사처럼 작성하라 신문 기사의 흐름을 보면 첫 문단에 전체 기사 내용을 요약한다. 글을 읽어 내려갈수록..

YAPP 22기 활동의 마무리, 성과공유회 4월 29일부터 8월 5일까지 약 3달이 넘는 기간 동안 진행된 YAPP 22기 활동을 마무리하는 날이다. 우리 팀은 유기견 봉사 매칭 플랫폼, 댕글댕글이란 웹 서비스를 만들었고, 성공적으로 출시할 수 있었다. 모든 팀원이 열정적으로 맡은 바에 최선을 다해준 덕분이다. 다른 팀들이 만든 서비스를 직접 이용해보고 궁금증과 피드백을 주고받는 시간도 주어졌다. 다양한 서비스를 구경하는 재미도 쏠쏠했다. 성과 발표 시간에는 각 팀들이 어떤 과정을 거쳐서 얼마큼의 성과를 만들어냈는지 공유하였다. 나도 우리팀 TPM으로서 22기 멤버들에게 댕글댕글 서비스를 소개하고 이후 목표를 발표했다. 성과 발표. 그리고 향후 목표 우리 팀은 처음 시작할 때부터 목표를 명확하게 잡았다...