March 4, 2023 • ☕️ 5 min read
가끔은 등산을 ⛰️
JS/TS 코드 베이스의 모노레포를 위한 고성능 빌드 시스템으로, 모노레포 환경에서 개발자가 조금 더 쉽고 빠르게 개발할 수 있도록 빌드 도구를 제공한다. Vercel이 인수했다.
다음을 특장점으로 갖는다. (총 9개지만 생략)
브라우저 | 최대 URL 길이 제한 |
---|---|
Internet Explorer | 2,083 characters |
Microsoft Edge | 8,192 characters |
Firefox | 65,536 characters |
Chrome | 2,083 characters |
Safari | 80,000 characters |
styleSheet의 경우 embedded나 inline 스타일과는 다르게 백그라운드에서 완전히 다운받을 수 있어 DOM 파싱을 중단시키지는 않는다. 다만 styleSheet도 딱 한번만 CSSOM 트리를 수정한다. 그리고 수정된 CSSOM 트리를 통해 Render Tree가 업데이트된다.
CSS가 Render-Blocking 자원이라고 불리는 이유다. 스타일 요소를 읽는 동안에는 Render Tree 구성이 중지된다. 하지만 Render Tree의 구성을 멈출 뿐, DOM 파싱은 멈추지 않는다.
DOM 파싱이 종료되어 DOM Tree가 완성되었다고 하더라도, CSSOM 트리가 아직 완성되지 않았다면면 Render Tree를 구성하지 않는다.
즉, CSS는 파서-블로킹이 아니라 렌더-블로킹 자원이다!
Ref https://sangmin802.github.io/Study/Think/browser-parser-blocking/ -
데이터베이스 view와 매핑되는 클래스다.
@ViewEntity
의 옵션
name
- view의 이름으로, 명시하지 않으면 엔티티 클래스 이름으로 생성된다.database
- 선택된 DB 서버의 데이터베이스 네임schema
- 스키마 이름expression
- 필수 항목으로, view의 정의@ViewEntity({
expression: `
SELECT "post"."id" AS "id", "post"."name" AS "name", "category"."name" AS "categoryName"
FROM "post" "post"
LEFT JOIN "category" "category" ON "post"."categoryId" = "category"."id"
`
})
dependsOn
- 현재 view가 의존하고 있는 다른 view의 목록. 다른 view를 definition에 사용한다면, dependsOn
에 추가하여 올바른 순서로 마이그레이션되게끔 해야 한다.1_000_000_000_000
처럼 천의 자리 기준으로 끊어 읽을 수도 있고 소수점, 십진수가 아닌 이/팔진수 등등에서도 유용하게 사용할 수 있다.git pull --tags
- 원격 저장소에서 tag 를 pull 해오기링크에 유용한 팁들이 많이 있다! 주로 디자이너를 위한 것이지만, 프론트엔드 개발자로서 같이 알고 있어도 좋을 듯 하다. 😎
등등 재밌는 팁들이 있다
Ref https://anthonyhobday.com/sideprojects/saferules/
vercel에서 관리하는 React용 UI Library다.
대단히 달라진 건 없는 듯하다.
Ref https://www.npmjs.com/package/msw
쉽게 만드는 JS 정규표현식 빌더
// Create an example of how to test for correctly formed URLs
const tester = VerEx()
.startOfLine()
.then("http")
.maybe("s")
.then("://")
.maybe("www.")
.anythingBut(" ")
.endOfLine();
// Create an example URL
const testMe = "https://www.google.com";
// Use RegExp object's native test() function
if (tester.test(testMe)) {
alert("We have a correct URL"); // This output will fire
} else {
alert("The URL is incorrect");
}
console.log(tester);
함수형 방식으로 요렇게 만들 수도 있다니 싱기방기 😮
Ref https://github.com/VerbalExpressions/JSVerbalExpressions
호주 가기 전 마지막 주말이다아아. 중간에 삼일절 연휴까지 껴있어서 그런지 뭔가 더 열심히 일 안하고 논 것 같다…
괜히 긴장되기도 하고 설레기도 하고 😎
가서도 블로그 잘 연재할 수 있겠지.