TIL/트렌드 읽기

2022.12.07. (모노레포 포함)

code10 2022. 12. 7. 23:29

1. https://9to5google.com/2022/12/05/google-search-continuous-scrolling-2/?utm_source=tldrnewsletter 

 

Google switching to continuous scrolling for desktop Search results

Google is adopting continuous scrolling for desktop Search results as it did for the mobile website in October 2021.

9to5google.com

"

(TLDR 번역) Google이 데스크톱 검색 결과에 대해 연속 스크롤을 표시하기 시작합니다. 이제 사용자는 결과 페이지 하단에 도달한 후 최대 6페이지의 결과를 볼 수 있습니다. Google은 또한 모바일에서 더 많은 검색창 제안을 추가하고 핵심 결과를 위해 더 풍부한 레이아웃을 추가할 것입니다. 연속 스크롤은 미국의 영어 사용자에게 먼저 출시됩니다.

"

 

2. https://n.news.naver.com/article/015/0004783638?cds=news_my 

 

'세계 최초' 카카오가 해냈다…공개 앞둔 '새 먹거리' 정체

카카오의 인공지능(AI) 자회사인 카카오브레인이 내년 흉부 엑스레이 판독문 초안을 작성해주는 AI를 선보인다. 질환 판독 시간은 줄이고 정확도는 획기적으로 높아지게 된다. 초거대 AI를 의료

n.news.naver.com


<모노레포>

1. https://d2.naver.com/helloworld/0923884

<모던 프론트엔드 프로젝트 구성 기법 - 모노레포 개념 편>

"

- 모노레포란 버전 관리 시스템에서 두 개 이상의 프로젝트 코드가 동일한 저장소에 저장되는 소프트웨어 개발 전략.

 

<멀티레포>

- 멀티레포 구조는 폴리레포(polyrepo) 구조라고도 부른다. 앞선 예시의 분리된 각 모듈은 멀티레포 구조에서 고유한 저장소가 있는 독자적 프로젝트가 된다. 각 프로젝트는 자율성이 높으며 독립적인 개발, 린트, 테스트, 빌드, 게시, 배포 파이프라인이 존재한다.

-멀티레포는 현재 대부분의 애플리케이션을 개발하는 표준적인 방법이다. 업계는 팀의 자율성이라는 큰 이유 때문에 이 방식을 선호한다. 팀은 애플리케이션 개발의 라이프사이클을 스스로 결정하기를 원한다.

-멀티레포 단점: 패키지의 중복 코드 가능성, 관리 포인트 증가, 일관성 없는 개발자 경험, 다른 패키지의 변경 사항 파악, 교차 저장소의 리팩터링 비용 등.

==> 모듈을 적절히 분리하여 관심 분리를 이루면서, 동시에 분리된 모듈을 쉽게 참조하고 테스트, 빌드, 배포 과정도 쉽게 한 번에 할 수는 없을까? ===>모노레포 등장

 

<모노레포>

- 앞선 예시의 분리된 모듈들은 모노레포에서 여전히 독자 프로젝트로 존재하지만 저장소는 같은 곳을 사용한다.

- 더 쉬운 프로젝트 생성 가능 👇

멀티레포에서 공유 패키지를 만들 때 다음과 같은 과정을 거친다.

저장소 생성 > 커미터 추가 > 개발환경 구축 > CI/CD 구축 > 빌드 > 패키지 저장소에 publish

모노레포에서는 저장소 생성 및 커미터 추가 과정이 필요 없고, 개발 환경, CI/CD, 빌드, 게시 등의 과정에 기존 DevOps를 이용하므로 새 프로젝트 생성에 대한 오버헤드가 없다.

- 기타 멀티레포 단점 보완 가능.

 

멀티레포의 단점이 모노레포의 장점이고 장단점이 교차하기 때문에 적절한 상황에서 사용해야 한다.

모노레포의 핵심적 특징은 프로젝트 사이의 관계이고, 모노레포가 적절한 상황은 다음과 같다.

  • 유사한 제품의 집합
  • 여러 프로젝트의 변화를 한눈에 파악해야 할 때
  • 호스트 애플리케이션을 플러그인 등으로 확장할 때
  • 공통 기능을 재사용하는 관련된 프로젝트의 집합
  • 유사한 DevOps로 구성된 프로젝트의 집합

"

 

2. https://d2.naver.com/helloworld/7553804

<모던 프론트엔드 프로젝트 구성 기법 - 모노레포 도구 편>

- Yarn, Lerna, Nx 그리고 Turborepo 도구에 대해 자세히 소개

"

 Yarn은 다른 모노레포 도구에 비해 지원하는 것들이 많지는 않지만, 모노레포 사용의 목적이 단순히 공통 요소를 공유하는 것이라면 Yarn으로 workspace을 구성해서 개발을 진행하는 것을 추천한다.

 하지만 단순한 코드의 공유 외에 패키지 간 의존성 관리 및 테스트, 배포 등의 작업에 대한 더 나은 무언가를 필요로 한다면 Lerna를 함께 사용해보는 것도 좋은 선택지가 될 것이다.

 그리고 프로젝트가 성장하면서 개발, 관리에 유용한 더 많은 기능이 필요하다면 Nx와 Turborepo를 고려해보면 좋을 것 같다. Nx와 Turborepo는 모두 캐싱 기능을 지원해서 빌드 측면에서 우수한 속도를 자랑하고, 의존성 그래프 시각화 기능을 통해 프로젝트의 구성 요소들이 서로 어떤 의존관계를 갖고있는 지 한눈에 파악이 가능하도록 해준다.

 둘 중 좀더 가벼운 시작을 원한다면, Zero Config를 지향해 초기 설정이 상대적으로 쉬운 Turborepo를 시도하는 것도 좋을 것이다. 상대적으로 출시된 지 오래되어 관련 레퍼런스, 지원하는 IDE 플러그인 등의 풍부한 생태계가 형성되어 있는 Nx 또한 좋은 선택지가 될 수 있다.

"

 

👀 실제로 사용해 볼 때 다시 참고하면 좋을듯! 좋은 비교 글이다!

 

3. https://yeoulcoding.me/298

 

모노레포의 문화적 의의

Overview 콴다 프론트엔드 팀에서 최근 효율적인 프로젝트 관리를 위해 "모노레포(monorepo)"를 도입했습니다. (레포 이름도 굉장히 Semantic 한 "qanda-frontend"입니다) 팀 내에서 모노레포를 도입하자는

yeoulcoding.me

👍

 

4. https://blog.mathpresso.com/%ED%8C%80%EC%9B%8C%ED%81%AC-%ED%96%A5%EC%83%81%EC%9D%84-%EC%9C%84%ED%95%9C-%EB%AA%A8%EB%85%B8%EB%A0%88%ED%8F%AC-monorepo-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95-3ae1b0112f1b

 

팀워크 향상을 위한 모노레포(Monorepo) 시스템 구축

콴다 프론트엔드 팀이 모노레포를 선택한 이유

blog.mathpresso.com