Vue.js 심화 2탄 14강: 아무나 들어올 수 없어요! 성을 지키는 마법의 방패 (Navigation Guards)

안녕하세요! 가족과 함께하는 스마트 라이프입니다. 우리 성이 점점 유명해지면서 많은 사람이 놀러 오고 있어요. 하지만 성 안에는 보물 창고나 실험실처럼 아무나 들어가면 안 되는 위험한 곳도 있죠? 오늘은 방문객이 방에 들어가기 전, 미리 자격을 확인하는 마법의 방패, 네비게이션 가드(Navigation Guards)를 배워볼게요!

Vue.js 심화 2탄 14강: 아무나 들어올 수 없어요! 성을 지키는 마법의 방패 (Navigation Guards)

1. 네비게이션 가드: 성문을 지키는 기사님

네비게이션 가드는 여러분이 한 방에서 다른 방으로 이동하려고 할 때 앞을 가로막고 서 있는 든든한 기사님과 같아요.

기사님은 여러분에게 “잠깐! 마법사 자격증(로그인)이 있나요?”라고 물어보고, 자격증이 없다면 다시 성 입구로 돌려보내거나 로그인 페이지로 안내해 준답니다. 덕분에 우리 성은 아주 안전하게 유지될 수 있어요.

2. 기사님의 세 가지 질문

  • To: “어디로 가려고 하시나요?” (가고 싶은 방 이름)
  • From: “어디에서 오셨나요?” (지금 있던 방 이름)
  • Next: “이제 통과하셔도 좋습니다!” (이동 허락 주문)

3. 실전 마법: 보물 창고 지키기

로그인하지 않은 사람은 보물 창고에 못 들어가게 막는 코드를 짜볼까요?

// 마법 지도(Router)에 기사님 배치하기
router.beforeEach((to, from, next) => {
  const isMagician = false; // 지금은 자격증이 없다고 해볼게요

  // 만약 가려는 곳이 '보물 창고'인데 자격증이 없다면?
  if (to.path === '/treasure' && !isMagician) {
    alert('앗! 자격증이 없으면 들어갈 수 없어요. 입구로 돌아가세요!');
    next('/'); // 입구(/)로 슝 보내버리기
  } else {
    next(); // 자격이 있다면 통과!
  }
});
Vue.js 심화 2탄 14강: 아무나 들어올 수 없어요! 성을 지키는 마법의 방패 (Navigation Guards)

4. 스마트 라이프를 위한 가족 코딩 팁

아이들에게 ‘규칙과 안전’의 중요성을 알려주세요. 집 현관문을 잠그거나 횡단보도에서 신호를 기다리는 것처럼, 웹사이트에서도 약속된 규칙을 지켜야 모두가 안전하다는 걸요. 아이와 함께 ‘우리 집 전용 금지 구역’을 정해보고, 코딩으로 그 구역에 접근할 때 어떤 메시지를 띄울지 정해보세요. 보안의 첫걸음을 아주 재미있게 뗄 수 있습니다.

마치며: 성의 수호자가 된 마법사

이제 여러분의 마법 성은 그 어떤 침입자도 두렵지 않은 안전한 곳이 되었습니다! 여러분은 훌륭한 성주이자 보안 전문가예요. 다음 시간에는 **’마법의 자동 변신(WatchEffect)’**이라는 주제로, 상황이 바뀌면 말하지 않아도 알아서 변신하는 더 진화된 감시 마법을 배워볼게요!