개발 블로깅
-
TBD(Trunk Based Development) 전략이란?개발 블로깅/팀 문화 및 시스템 2022. 6. 17. 00:00
이번에 팀에서 모노레포로 프로젝트를 관리하게 되면서 팀 내 워크플로우 방식을 Trunk Based Development 방식으로 변경하게 되었다. 이전에는 Git Flow, Github Flow 정도밖에 몰랐는데, 이번에 새롭게 알게 된 TBD(Trunk Based Development) 방식에 대해 정리해보려고 한다. TBD의 목적 평소 소규모 팀에서는 코드가 많지 않고 인원이 적은 만큼 서로 각자 작업하고 반영하는 사항에 대해서 충돌이나 컨텍스트가 꼬이는 상황이 매우 적다. 그러나 어느 정도 규모가 커질수록 많은 개발자가 같은 코드를 유지하는 것이 어려워지며 이러한 문제는 내가 작업한 사항을 Trunk 브랜치에 반영하려고 할 때 충돌로 이어질 수 있다. 이러한 충돌을 줄이기 위해 팀 내에서 최대한 동..
-
팀워크를 위한 모노레포(Monorepo) 시스템 구축, 그리고 회고개발 블로깅/팀 문화 및 시스템 2022. 5. 30. 00:34
꽤 오랜 시간 동안 모노레포 이전 및 안정화 작업을 계속 진행해왔다. 그래도 이제는 상대적 주요 프로젝트들은 모두 모노레포로 이전이 완료되었고, 팀원들이 이제 모두 모노레포 내에서 작업이 가능한 수준으로 안정화를 시키게 된 것 같다. 콴다 팀 블로그에도 해당 블로그 글을 쓰긴 했지만, 내 스스로도 좋은 경험 및 큰 성장 과정이 되었던 것 같아서 내 블로그에도 기록을 남겨보고 싶어 이렇게 한번 더 작성을 해본다. (비록 내용이 거의 중복이 되겠지만..) 우리 팀은 이번 모노레포를 통해 새로운 팀워크 방향성이 생기면서, 이를 통해 향상된 팀 협업 요소들을 정리해 보려고 한다. 우선 그전에, 우리가 어떤 계기로 인해 팀 전체가 모노레포 시스템을 이용하기로 결정하게 되었는지 배경을 먼저 소개하고 싶다. 모노레포..
-
[애자일] 함께 자라기-자기계발은 복리로 돌아온다개발 블로깅/팀 문화 및 시스템 2022. 5. 29. 10:25
우리는 학교에서 받은 수업 방식인 교육학습이 아닌, 현재와, 사회에서 정답이 정해져 있지 않고 무분별한 요소들과 명확하지 않는 야생 학습이 되어야 한다. 당신은 몇 년 차? 강한 놈이 오래 가는 게 아니라, 오래 가는 놈이 강한 거더라. 자기계발은 복리로 돌아온다 애자일은 피드백을 짧은 주기로 받고, 다음 사이클에서 동일한 활동을 하게될 때 더 나은 방식으로 진행할 수 있도록 하는 것이다. 이는 소프트웨어 뿐 아니라, 모든 활동에서 그렇다. 예시) 골프 골프 연습 후 빠른 피드백을 받으라. 골프를 치고 1년뒤에 받는 피드백은 의미가 없다. 자신을 곱하라. 더하기 사고. - 쓸데없이 낭비되는 시간을 줄이고 잠자는 시간을 줄여서 일하는 시간을 늘리는 것. 곱하기 사고. - 집단의 지능을 높이는 것. 어떻게 ..
-
모노레포 환경을 더욱 가볍게 - git sparse checkout개발 블로깅/팀 문화 및 시스템 2022. 5. 28. 00:46
현재 모노레포를 사용하면서 어떻게 하면 우리 팀원 모두가 모노레포를 더욱 안정적으로 사용할 수 있을지 많은 고민과 실험 중에 있다. 여러 개선할 점 중 하나가, 모노레포를 내 로컬에서 이용할 때 너무 무거운 느낌, 그리고 여러 프로젝트가 함께 섞여 있다 보니 파일 찾는 점에 어려움이 있다는 단점이 많은 팀원들의 의견이다. 그래서 어떻게 하면 많은 파일들을 가지고 있는 모노레포를 조금이라도 안정적으로 가볍게 사용해볼 수 있을까 리서치를 하다가 팀원 중 능력자 @yeoul을 통해 git sparse checkout라는 멋진 git 커맨드를 알게 되어서 이를 한번 정리해 보려고 한다. 그전에 우리가 평소 사용하던 git checkout이란 기능에 대해 더 자세히 알 필요가 있다. 우리가 흔히 새로운 브랜치를 ..
-
[Github] Code Owner로 Auto Assign 하기개발 블로깅/팀 문화 및 시스템 2022. 3. 29. 01:47
Code Owner란 Github에는 Code Owner라는 기능이 있는데, Repository 내에 특정 파일이나 특정 디렉토리, 원하면 특정 확장자 별로도 Owner를 지정하여 파일 및 코드를 관리할 수 있는 방식이다. 이를 활용하면 코드리뷰를 위해 PR 생성 시, 작업한 파일에 관련된 Owner들을 자동으로 PR(Pull Request) Reviewer로 지정할 수 있다. Code Owner 사용법 사용법은 아주 간단하다. 프로젝트의 Root 경로에 '.github/CODEOWNERS' 파일을 생성 후, 패턴에 맞게 오너를 설정해주면 된다. # .github/CODEOWNERS 아래 패턴을 참고하여 작성하면 된다. # 이것은 주석입니다. # 담당자를 지정할 때는 github ID 혹은 github ..
-
Yarn Workspace에서 package.json 틸드(~), 캐럿(^) 버전 명시 주의할 점개발 블로깅/오늘의 TIL 2022. 1. 26. 01:15
yarn workspace를 이용해서 모노레포를 구축하던 중, 'package.json 버전 명시'로 인해 발생한 문제가 있었다. 지금까지는 크게 신경쓰지 않던 요소였는데, 평소 간과하게 생각하던 녀석으로 인해 이번에 처음으로 크게 데여본 경험으로.. 모노레포 작업을 하며 좋은 인사이트를 얻은 것 같아 블로그로 정리해 보려고 한다. 이슈 배경 현재 yarn workspace에서는 yar berry(2.0)를 쓰고 있다. yarn berry를 이용하게 되면 Zero install을 통해 의존성 패키지들을 더 가볍고 빠르게 설치 및 이용할 수 있다. (여기서는 zero install이 무엇인지 다루지 않는다.) 그러나 지금 작업 중인 모노레포에서는 yarn workspace 환경 세팅에 zero instal..
-
ESLint, Prettier Setting, 헤매지 말고 정확히 알고 설정하자.개발 블로깅/기타 개념 2021. 12. 18. 20:43
ESLint, Prettier 관련해서 환경 세팅을 하면 항상 어쩔 땐 잘되고, 어쩔 땐 안되고... 구글링하면 그렇게 많이 나오는 방식들을 전부 해봐도 계속 안돼서 시간을 그렇게 버릴 때가 많았던 것 같다. 그냥 생각없이 Prettier extension 설치해라, eslintrc 이렇게 세팅해라, 등등.. 따라 하니까 꼬이기도 하고, 저장을 시도하면 자동 수정은 안되고.. 그럴 때마다 속이 터졌는데, 이참에 아예 작정하고 시간 내서 제대로 파악 좀 해봤다. 아마 나처럼 하라는 대로 했는데도 왜 안되는지 궁금할 개발자들이 있지 않을까 싶다.(나만 그런걸까...) 직접 그 원인을 상세히 파악하고 알아보도록 하자. VSCode가 코드의 Lint Error를 잡는 것부터, 저장 시 자동 수정하는 설정까지....
-
Next.js Lazy Hydration으로 웹 성능 향상시키기(HTML은 유지하고 Script는 걸러내자)개발 블로깅/Improving Performance 2021. 12. 2. 12:24
Next.js의 Hydrate개념을 아직 모르신다면,이전에 작성했던 Next.js의 Hydrate 글을 먼저 참고하시는 것을 추천드립니다. Next.js에서는 첫 페이지를 로드하면 Hydrate과정을 거치게 된다. 💡 Hydrate란? 화면에 보여줄 document 페이지를 서버 단에서 먼저 렌더링 후 브라우저로 전송한 뒤, 이후에 해당 DOM 요소에 필요로 한 Script 코드들을 바로 브라우저로 전송한다. 그리고 각 DOM 요소와 Script 코드가 매칭이 되면서 정상적으로 웹 페이지가 동작하게 된다. 그러나 이러한 Hydrate 방식은 아직 약간의 아쉬운 점이 존재하는데, 그것은 'PreRendering 된 DOM 요소의 모든 Script는 무조건 모두 가져온다는 것'이다. 이 말이 무슨 뜻인지 아..