안녕하세요. 오늘은 Next.js가 제공해주는 Link 태그를 사용하다가 새탭에서 열고 싶을 때 어떻게 해야하는지 정리해보려고 합니다! 간단한 target="_blank" 추가만으로 가능하니 짧게 설명해보도록 하겠습니다.
🧚 Next.js의 Link 컴포넌트는 어떻게 동작할까?
Next.js의 Link 컴포넌트는 내부적으로 HTML의 <a> 태그를 렌더링합니다. 이는 일반적인 웹 표준을 따르면서도 클라이언트 사이드 라우팅의 장점을 가져오기 위한 설계입니다.
import Link from 'next/link';
function MyComponent() {
return (
<Link href="/about">About 페이지로 이동</Link>
);
}
위 코드는 결국 HTML에서 다음과 같이 렌더링됩니다.
<a href="/about">About 페이지로 이동</a>
🧚 새 탭에서 링크 열기: target="_blank" 속성
링크를 클릭했을 때 새 탭에서 열리도록 해야한다면, HTML의 <a> 태그 속성인 target="_blank" 속성을 사용해야 합니다. Link 컴포넌트는 <a> 태그를 기반으로 하기 때문에, 이 속성을 직접 전달할 수 있습니다.
<Link href="https://example.com" target="_blank">
외부 사이트로 이동 (새 탭에서 열림)
</Link>
🧚 보안 고려 사항: rel="noopener noreferrer"
target="_blank"를 사용할 때는 보안 이슈가 발생할 수 있습니다. 새 탭에서 열린 페이지가 window.opener API를 통해 원래 페이지에 접근할 수 있기 때문입니다.이를 방지하기 위해 rel="noopener noreferrer" 속성을 함께 사용하는 것이 좋습니다.
<Link
href="https://example.com"
target="_blank"
rel="noopener noreferrer"
>
안전한 외부 링크
</Link>
🧚 결론
Next.js의 Link 컴포넌트는 <a> 태그를 기반으로 하기 때문에 HTML의 표준 속성들을 그대로 사용할 수 있습니다. 새 탭에서 링크를 열고 싶다면 target="_blank" 속성을 추가하면 되며, 보안을 위해 rel="nooperner noreferrer" 속성을 함께 사용하는 것이 좋습니다. 이런 작은 디테일들이 사용자 경험을 향상시키는 데 큰 도움이 됩니다!!
'인턴' 카테고리의 다른 글
[ Troubleshooting🛠️ ] Next.js 성능 최적화: 클라이언트 컴포넌트 분리를 통한 이미지 초기 로딩 속도 개선 (0) | 2025.04.02 |
---|---|
[ Troubleshooting🛠️ ] 패키지 매니저 충돌 트러블 슈팅 npm, yarn, pnpm 간의 전환 (2) | 2025.04.01 |
[ Troubleshooting🛠️ ] Zod 스키마 검증과 데이터 처리 (0) | 2025.03.28 |
Next.js에서 서버와 클라이언트 간 모바일 감지 연동하기 (0) | 2025.03.27 |
Next.js 프로젝트의 효율적인 폴더 구조 개선하기 📂 (0) | 2025.03.26 |