현록

Next.js에서 path alias 설정하기 (feat. @/components)

안녕하세요.

오늘은 Next.js에서 import 시 복잡한 relative path 대신 absolute path 사용을 위한 설정법을 알아봅시다.

들어가며

../../../../style/global.scss is not found ...

우리는 개발을 할 때 import를 매우 자주 사용하곤 합니다.

file path를 상대경로로 지정하다보면 유지보수면에서도 복잡하고,
path를 지정할 때마다 경로가 헷갈려서 발생하는 오류는 덤입니다.

이럴 때 path에 대한 alias를 설정하면 코드는 확 깔끔해질 것입니다.

아래 예제를 통해서 따라해봅시다.

설정하기

1. jsconfig.json 파일 생성

프로젝트 루트 폴더에 jsconfig.json을 생성해주세요. 파일에서 몇 가지 옵션을 부여할 것입니다.

2. alias 추가하기

{
    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "@/components/*": ["components/*"],
            "@/styles/*": ["styles/*"]
        }
    }
}

위와 같이 compilerOptions를 추가하면 컴파일러는 등록된 alias를 마주할 때마다 path로 치환하게 됩니다.

3. 사용해보기

import SomeComponent from '@/components/SomeComponent'

// ...codes below

alias를 추가하였다면 위처럼 매우 쉽게 사용할 수 있습니다.

관련 포스트
Next.js App Router에서 검색 날짜와 사이트맵 관리하기 thumbnail
Next.js App Router에서 검색 날짜와 사이트맵 관리하기
Next.js App Router 블로그에서 사용자에게 보이는 날짜, Open Graph modifiedTime, JSON-LD dateModified, sitemap lastModified를 같은 기준으로 연결하는 방법을 정리합니다.
Next.js 16 Cache Components와 use cache 정리 thumbnail
Next.js 16 Cache Components와 use cache 정리
Next.js 16에서 도입된 Cache Components와 use cache directive를 기준으로 App Router 캐싱 모델의 변화, cacheLife, cacheTag, revalidateTag 사용 흐름을 정리합니다.
Next.js App Router에서 레이아웃 사용하기 thumbnail
Next.js App Router에서 레이아웃 사용하기
Next.js App Router에서 app/layout.tsx, page.tsx, 중첩 layout을 사용해 공통 UI를 구성하는 방법을 정리합니다. Pages Router 시절의 수동 Layout 컴포넌트 패턴과 어떤 점이 다른지도 함께 봅니다.
next image blurDataURL 직접 부여하기 thumbnail
next image blurDataURL 직접 부여하기
Next.js의 Image 컴포넌트에서 blur placeholder를 사용할 때 자동 생성되는 경우와 직접 blurDataURL을 만들어야 하는 경우를 정리합니다. 정적 import, public 경로, 원격 이미지, 빌드 시점 생성 전략을 함께 다룹니다.
Next.js에서 레이아웃 사용하기 thumbnail
Next.js에서 레이아웃 사용하기
홈페이지를 구성할 때, 우리는 대체로 네비게이션과 푸터, 플로팅 버튼 등을 포함합니다. 개발단계에서 이들 컴포넌트를 페이지마다 일일이 import하는 것은 매우 비효율적인 일입니다. 만약 이들처럼 대부분의 페이지에서 보여줘야될 내용이 있다면, 레이아웃 컴포넌트를 통해 손쉽게 유지보수할 수 있을 것입니다.