[가이드] macOS 터미널 환경을 위한 zsh 및 oh-my-zsh 설치
·
개발 이야기 (Development Story)/개발 팁 & 노하우 (Tips & Know-how)
기본 bash 쉘의 기능에 만족하지 못하시는 사용자를 위해, 터미널 shell 환경의 사용성을 대폭 향상시키는 zsh와 zsh의 활용도를 극대화하는 oh-my-zsh의 macOS 설치 및 사용 방법을 안내합니다. zsh zsh는 bash의 기능을 모두 포함하면서, 자동 완성, 플러그인, 테마 등 다채롭고 편리한 기능을 추가적으로 제공하는 쉘 환경입니다. 터미널 작업의 효율성을 증대시켜줍니다.oh-my-zsh oh-my-zsh는 zsh 설정 관리를 위한 프레임워크로, Rails, Git, OSX, Homebrew, PHP, Python 등 다양한 개발 도구에 대한 플러그인과 테마를 지원합니다. zsh를 보다 사용자 친화적이고 시각적으로 향상된 환경에서 사용할 수 있도록 지원합니다.1. zsh 설치다음 명령..
[가이드] Homebrew 설치 후 PATH 설정 가이드 (macOS)
·
개발 이야기 (Development Story)/개발 팁 & 노하우 (Tips & Know-how)
Homebrew를 macOS에 설치한 후, 터미널에서 brew 명령어를 실행했을 때 정상적으로 작동하지 않는 경우가 있습니다. 이는 Homebrew가 설치된 경로가 시스템의 PATH 환경 변수에 등록되지 않았기 때문입니다. 이 가이드에서는 Homebrew 설치 후 발생할 수 있는 PATH 설정 문제를 해결하는 방법을 자세히 안내합니다. 들어가기 Homebrew는 macOS용 패키지 관리자로, 다양한 소프트웨어를 쉽게 설치하고 관리할 수 있도록 도와줍니다. 하지만 Homebrew를 설치한 후에도 터미널에서 바로 사용하려면 Homebrew 실행 파일의 경로를 시스템 PATH에 추가해야 합니다. 이 과정을 거치지 않으면 다음과 같은 경고 메시지가 표시될 수 있습니다.Warning: /opt/homebrew/b..
[101] 타입스크립트의 unknown 타입
·
학습 & 성장 (Learning & Growth)/개발 공부 (Development Study)
TypeScript에서 unknown 타입은 any와 혼동될 수 있지만, 코드 안전성에 있어 결정적인 차이를 만듭니다. unknown을 효과적으로 사용하면 React 애플리케이션의 안정성과 오류 방지를 크게 향상시킬 수 있습니다. 이 글에서는 unknown 타입을 활용한 안전한 타입 검사 기법을 React 애플리케이션을 중심으로 자세히 살펴봅니다.1. unknown 타입의 기본 개념unknown 타입은 말 그대로 "알 수 없는" 타입을 나타냅니다. 어떤 값이 올지 확실하지 않을 때 unknown을 사용할 수 있으며, 이는 값을 사용하기 전에 반드시 그 타입을 확인해야 한다는 특징이 있습니다.let unknownValue: unknown;unknownValue = 100; // 숫자 할당 가능unknow..
[번역] TikTok이 Sparo를 사용하여 20만 개 파일이 있는 모노레포를 관리하는 방법
·
개발 분야 (Development Area)
소개이 글은 TikTok 개발 블로그(원문)의 내용을 바탕으로 작성된 자료를 한국어로 번역한 것입니다. 기술적인 세부 사항은 TikTok 엔지니어링 팀에 의해 제공되었으며, 원문은 참조 자료에서 확인하실 수 있습니다. 이 글에서는 TikTok의 프론트엔드 팀이 대규모 모노레포에서 성능 문제를 해결하기 위해 Sparo라는 도구를 어떻게 개발하고 활용했는지를 다룹니다. 또한, 모노레포의 복잡성과 성장이 개발자 생산성에 미치는 영향을 줄이기 위한 방안을 설명합니다. TikTok의 모노레포 성장 배경TikTok은 빠르게 성장하는 짧은 형식의 비디오 공유 플랫폼으로, 웹 프론트 엔드의 코드베이스도 이에 발맞추어 커져왔습니다. 이 코드베이스는 TypeScript로 작성되었으며, 하나의 Git 저장소에 다수의 프로젝..
[101] 타입스크립트의 any 타입
·
학습 & 성장 (Learning & Growth)/개발 공부 (Development Study)
타입스크립트에서 any 타입은 모든 타입을 포함하는 가장 상위 타입입니다. any 타입 변수에는 어떤 값이든 할당할 수 있지만, 이는 타입스크립트의 정적 타입 검사 기능을 해제하는 효과가 있으므로 신중하게 사용해야 합니다. any 타입의 사용은 컴파일 시점의 타입 검사를 포기하는 것과 같으므로, 가능하면 다른 타입을 사용하는 것이 좋습니다. 이 글에서는 any 타입의 정의, 사용 예시, 대안, 그리고 any 타입을 사용해야 하는 제한적인 상황을 설명하고, 각 항목에 예제 코드를 포함합니다.1. any 타입의 정의any 타입은 타입스크립트 컴파일러에게 "이 변수의 타입을 검사하지 마세요"라고 명시적으로 지시합니다. 따라서 any 타입 변수에는 어떤 값도 할당 가능하며, 값에 접근할 때도 타입 검사가 이루어..
[YDKJSY] ES6 모듈 패턴과 효율적인 상태 관리: 다양한 모듈 패턴 소개
·
학습 & 성장 (Learning & Growth)/개발 공부 (Development Study)
이 글은 Kyle Simpson의 You Don't Know JS Yet 시리즈의 Scope & Closures 장을 기반으로, 자바스크립트의 모듈 패턴을 깊이 있게 다룹니다. 모듈 패턴은 코드의 캡슐화(Encapsulation)와 가시성 제어(Visibility Control), 상태 관리(State Management)를 제공하여 자바스크립트 프로그램을 효율적이고 안전하게 만드는 중요한 설계 패턴입니다. 이번 글에서는 ES6 모듈 시스템을 활용하여 효율적인 상태 관리를 구현하는 방법과 더불어, 다양한 모듈 패턴을 소개하고 비교해 보겠습니다.1. 모듈 패턴이란 무엇인가?모듈 패턴은 관련된 데이터와 기능을 하나로 묶고, 공용(public)과 비공용(private) API를 정의하여 외부와의 상호작용을 제..
[Git] Git 이미 푸시한 커밋 메시지 고치는 방법 (feat. git push --force-with-lease)
·
카테고리 없음
Git은 버전 관리 시스템의 표준이지만, 누구나 실수는 할 수 있습니다. 흔히 발생하는 실수 중 하나가 바로 커밋 메시지를 잘못 작성하는 것이죠. 다행히 Git은 이미 커밋된 메시지도 수정할 수 있는 강력한 기능을 제공합니다. 이번 포스팅에서는 Git 커밋 메시지를 변경하는 방법을 단계별로 자세히 알아보고, 자주 사용하는 명령어와 함께 실제 예시를 살펴보겠습니다. 특히, 이미 원격 저장소에 푸시된 커밋 메시지를 수정하는 방법을 집중적으로 다룹니다. 1. 최근 커밋 메시지 수정하기: 아직 푸시하지 않았다면?가장 최근 커밋 메시지를 수정하는 것은 비교적 간단합니다. 아직 원격 저장소에 푸시하지 않은 경우 다음 단계를 따라 해 보세요.STEP1. 터미널을 열고 Git 저장소가 있는 디렉토리로 이동합니다.cd ..
[Git] Git 히스토리 탐색: git log 가이드
·
개발 분야 (Development Area)
Git을 사용할 때, 프로젝트의 히스토리를 이해하는 것은 변경 사항을 추적하고, 문제를 디버깅하며, 다른 개발자와 협업하는 데 필수적입니다. Git은 git log라는 강력한 명령어를 제공하여 다양한 방식으로 커밋 히스토리를 확인할 수 있게 해줍니다. 이번 글에서는 다양한 git log 옵션을 살펴보고, Git 히스토리를 최대한 활용할 수 있는 방법을 알아보겠습니다. 각 명령어와 함께 실제 Bash 결과 예시를 포함하여 설명하겠습니다.1. 기본 커밋 히스토리:  git log가장 기본적인 방법으로 커밋 히스토리를 확인하려면 git log 명령어를 사용합니다. 이 명령어는 현재 브랜치의 모든 커밋을 시간순으로 나열하며, 각 커밋의 해시, 작성자, 날짜, 커밋 메시지 등의 중요한 정보를 제공합니다.git l..
[React] React의 `createRoot`와 `hydrateRoot`이해하기
·
개발 분야 (Development Area)/프론트엔드 (Frontend)
React 18은 애플리케이션을 초기화하고 관리하는 방식에 중요한 변화를 가져왔습니다. 특히 createRoot와 hydrateRoot API의 도입은 기존의 ReactDOM.render와 ReactDOM.hydrate를 대체하며, 클라이언트 사이드 렌더링과 서버 사이드 렌더링(SSR)에 대해 더 세밀한 제어와 성능 향상을 제공합니다. 이 글에서는 이러한 API를 깊이 있게 탐구하고, 언제 어떻게 사용하는지, 그리고 효율적이고 확장 가능한 React 애플리케이션을 구축하기 위한 모범 사례에 대해 알아보겠습니다.1. createRoot란?createRoot API는 클라이언트 사이드에서 React 애플리케이션을 초기화하는 새로운 방법입니다. 이는 더 성능이 뛰어나고 유연한 방식으로 React 앱의 렌더링과..
[30 Days of JavaScript: Day 1]"Hello World" 함수 만들기
·
학습 & 성장 (Learning & Growth)/개발자 성장 (Developer Growth)
이번 챌린지에서는 고차 함수(higher-order functions)의 개념을 소개하는 간단한 자바스크립트 함수를 작성하게 됩니다. 목표는 다른 함수를 반환하는 함수를 작성하는 것이며, 이 함수는 인자로 어떤 값이 주어지더라도 항상 "Hello World" 문자열을 반환해야 합니다.소개"Hello World" 은 새로운 프로그래밍 언어를 배우는 모든 사람들에게 있어 고전적인 출발점입니다. 이는 기본적인 코드를 작성하고 컴파일 및 실행하여 개발 환경이 제대로 설정되었는지 확인하는 간단한 방법으로 사용됩니다. 이번 챌린지에서는 이 "Hello World" 메시지를 생성하는 함수를 만들어 자바스크립트 함수에 대한 이해를 강화합니다.문제 설명createHelloWorld라는 이름의 함수를 작성해야 합니다. 이..
vanillinav
'분류 전체보기' 카테고리의 글 목록 (3 Page)