- MIT, Apache 2.0 모두 상업적 사용이 가능하고 수정/배포가 자유로운 라이센스
- 차이가 있다면 Apache 2.0에는 특허 보호 + 좀 더 상세한 법적 규칙이 존재
- Apache는 1.0, 1.1도 존재했었고, Apache 2.0이 기업이 사용하기 좋은 라이센스로 잘 정리되어 있기 때문에 유명하다
오깨들
프론트엔드 개발과 도구를 다루며 그날 새롭게 이해한 내용을 짧게 기록합니다.
2026
- RDF (Resource Description Framework): 지식 표현의 가장 기본적인 형식. 모든 것을 Subject -> Predicate -> Object의 트리플 구조로 표현 (e.g. Button -> isA -> ActionComponent).
- OWL (Web Ontology Language): RDF 위에서 설명 논리(Description Logic, DL)를 기반으로 동작하는 언어. 클래스, 개체, 속성, 공리로 지식을 하나의 의미망으로 엮는다.
useOptimistic: action 안에서 optimistic update를 처리할 수 있도록 지원하는 리액트 공식 훅. set 함수는 action 안에서 호출되어야 하며, action 바깥에서 호출할 경우 warning을 띄우고 optimistic state이 잠깐동안 보여진다.- TanStack을 사용하고 있다면 기존 onMutate 방식을 유지하고, 추후에 Server Action/FormAction 중심으로 구조를 가져게 되면 그때
useOptimistic을 검토해 볼 수 있다.
- flex에서 긴 문자열이 있을 때
overflow-wrap: break-word가 아닌overflow-wrap: anywhere을 사용하면min-width: 0을 매번 지정해주지 않아도 된다. break-word: "실제로 넘치면 깨도 돼". 긴 단어의 크기를 크게 잡아서 텍스트 영역을 충분히 줄이지 못함.anywhere: "필요하면 어디서든 깨도 돼". intrinsic size를 계산할때도 깨서 보여줄 수 있음.
- flex에서 긴 문자열이 있을 때
- 맥북에서는 옵션 버튼을 누르고 창을 드래그하면 화면분할이 손쉽게 가능하다. 창을 화면의 꼭지점으로 드래그하면 4분할도 가능하다.
- AST: Abstract Syntax Tree
- 코드가 어떻게 작성됐는가? 문법 중심. lint, formatter 등에서 사용
- HIR: High-level Intermediate Representation
- 코드가 언어 차원에서 어떤 의미를 가지는가? 문법적 설탕을 제거하고, 의미 중심.
- MIR: Mid-level Intermediate Representation
- 프로그램이 어떤 제어 흐름을 가지는가? 실행 중심.
- 다만 AST, HIR, MIR이 컴파일러에 공통된 고정 단계인 것은 아니며, 구체적인 구분과 역할은 컴파일러마다 다르다.
- no-extra-boolean-cast
- 어차피 Boolean으로 평가되는 문맥에서 !!, Boolean() 등을 불필요하게 사용하지 마라.
- Disallow unnecessary boolean casts
- strict-boolean-expressions
- Boolean 문맥에서 암묵적인 truthy/falsy 변환에 의존하지 말고 명시적으로 검사해라. (e.g. Don't:
if(name), Do:if(name !== "")) - Forbids usage of non-boolean types in expressions where a boolean is expected. boolean and never types are always allowed. Additional types which are considered safe in a boolean context can be configured via options.
- Boolean 문맥에서 암묵적인 truthy/falsy 변환에 의존하지 말고 명시적으로 검사해라. (e.g. Don't:
- no-extra-boolean-cast
- TypeScript는
Apply a sound or "provably correct" type system을 목적으로 하지 않고,Instead, strike a balance between correctness and productivity를 목적으로 한다.
- TypeScript는