프론트엔드 42

왜 useState를 조건문 안에서 사용하면 안 되나요?

🚨 useState를 조건문에서 쓰면 안 되는 이유 (React Hooks 규칙)🤔 왜 이런 규칙이 있을까?React의 useState는 마치 은행 창구 번호표 시스템과 같아요! 📋은행에 가면 번호표를 뽑잖아요? 1번, 2번, 3번... 순서대로 말이죠. React도 마찬가지로 컴포넌트 안에서 useState를 호출할 때마다 내부적으로 "1번 state, 2번 state, 3번 state..." 이런 식으로 순서를 기억해둬요.🎭 조건문 안에서 useState를 쓰면 벌어지는 일만약 조건문 안에서 useState를 쓴다면?첫 번째 렌더링 🎬조건이 true → useState 호출됨 → React: "아, 1번 state네!"두 번째 렌더링 🎬조건이 false → useState 호출 안됨 → R..

모노레포란 무엇인가요?

모노레포, 여러 프로젝트를 하나로 관리하는 똑똑한 방법! 📁모노레포가 뭔가요? 🤔모노레포(Monorepo) = Mono(단일) + Repo(저장소)쉽게 말해서 여러 개의 프로젝트를 하나의 깃 저장소에서 관리하는 방식이에요!일상 예시로 이해하기 📚 회사에서 여러 서비스를 개발한다고 생각해보세요쇼핑몰 웹사이트모바일 앱관리자 대시보드공통 디자인 시스템전통적인 방식이라면 각각 별도의 깃 저장소를 만들어야 하지만, 모노레포는 이 모든 걸 하나의 저장소에서 관리해요!my-company/├── apps/│ ├── web/ # 웹사이트│ ├── mobile/ # 모바일 앱│ └── admin/ # 관리자 대시보드├── packages/│ ├── ui/ ..

image 요소의 alt 속성은 어떤 목적으로 사용하나요?

이미지 alt 속성, 단순 설명이 아닌 필수 기능! 🖼️alt 속성이 왜 중요할까요? 🤔웹사이트에서 이미지를 넣을 때 alt 속성을 그냥 대충 쓰거나 빼먹는 경우가 많은데, 실제로는 웹 접근성의 핵심이에요!마치 시각장애인을 위한 점자책처럼, alt 속성은 이미지를 "읽을 수 있게" 만들어주는 역할을 합니다 📖1. 이미지 로드 실패 시 대체 텍스트 💔일상 상황 예시 커피숍 홈페이지에서 신메뉴 이미지가 안 뜨는 상황을 생각해보세요! 네트워크가 느리거나 이미지 파일에 문제가 있을 때, alt 속성이 있으면 사용자가 뭔지 알 수 있어요.이미지가 안 뜨면 "아메리카노 - 진한 원두의 깊은 맛"이라는 텍스트가 나타나서 사용자가 뭔지 바로 이해할 수 있어요! ☕ 2. 접근성 - 모든 사용자를 위한 배려 ♿스크..

Reset CSS와 Normalize CSS가 무엇인가요?

Reset CSS vs Normalize CSS 완벽 가이드 🎨왜 필요한가요? 🤔웹 개발을 하다 보면 이런 경험 있으시죠? 😅크롬에서는 멀쩡했는데 Safari에서 보니 이상해! 🤦‍♂️ Firefox에서는 버튼이 왜 이렇게 생겼지? 🤷‍♀️이런 일이 생기는 이유는 각 브라우저마다 기본 스타일이 다르기 때문입니다!마치 카페마다 아메리카노 맛이 다른 것처럼, 브라우저마다 태그의 크기나 의 모양이 조금씩 달라요 ☕Reset CSS - 백지 상태로 만들기! 🗒️Reset CSS는 모든 걸 초기화하는 방식입니다!🎯 Reset CSS의 철학"모든 스타일을 지워버리고 처음부터 시작하자!"마치 새 노트북을 샀을 때 기본 프로그램을 다 삭제하고 필요한 것만 설치하는 것과 같아요! 💻어떻게 동작하나요?/*..

상황에 따라 this 바인딩이 어떻게 이뤄지는지 설명해주세요.

JavaScript this 바인딩 완벽 가이드 🎯this가 뭔가요? 🤔JavaScript에서 this는 **"지금 누가 나를 호출했니?"**를 알려주는 키워드예요!일상생활로 비유하면 📞:전화받을 때: "여보세요, 김철수입니다" (나 자신을 소개)회사에서: "안녕하세요, 삼성전자 김철수입니다" (소속 조직 포함)친구에게: "야, 나야!" (친밀한 관계)상황에 따라 자기소개가 달라지듯, this도 호출 방식에 따라 값이 달라져요! 💡6가지 상황별 this 바인딩 🎪1. 전역 호출 🌍아무도 주인이 없을 때는 전역 객체가 주인이 돼요!function sayHello() { console.log(this); // window (브라우저) / global (Node.js)}sayHello(); // ..

쌓임 맥락에 대해 설명해주세요.

쌓임 맥락이 뭐예요? 🤔쌓임 맥락은 "웹 페이지 요소들이 어떤 순서로 쌓일지 결정하는 3차원 공간" 이에요!일상생활로 비유하면, "투명한 유리판 여러 개를 겹쳐 놓은 것" 과 같아요 🪟✨ 각 유리판이 하나의 쌓임 맥락이고, 그 안에 스티커(요소들)를 붙이는 거죠!기본 쌓임 규칙 📚1. DOM 순서 기본 원칙HTML에서 나중에 나오는 요소가 위에 쌓임마치 책을 차례대로 쌓는 것과 같아요 📖2. z-index의 역할숫자가 클수록 위쪽으로 쌓임단, 같은 쌓임 맥락 내에서만 비교됨!새로운 쌓임 맥락이 생성되는 조건들 🏗️1. Position + z-index 조합 📍.element { position: relative; /* 또는 absolute */ z-index: 1; /* auto가 ..

Server Action이란 무엇인가요?

Server Action이 뭐야? 🤔레스토랑에서 주문하는 상황을 생각해보세요!기존 방식 (API 통신): 손님 → 웨이터 → 주방장 → 웨이터 → 손님 (클라이언트 → API서버 → 데이터베이스 → API서버 → 클라이언트) 😅Server Action 방식: 손님 → 바로 주방장 (클라이언트 → Next.js 서버에서 직접 처리) 🚀Server Action은 Next.js에서 제공하는 기능으로, 브라우저에서 서버 함수를 마치 일반 함수처럼 호출할 수 있게 해주는 마법 같은 기능이에요! ✨어떻게 사용하나요? 📝기본 사용법"use server" 키워드로 "이 함수는 서버에서만 실행해주세요!"라고 선언하면 끝!"use server";async function saveComment(formData) { ..

Next.js를 사용하는 이유가 무엇인가요?

🏗️ React만으로는 왜 힘들까?집을 짓는다고 생각해보세요 🏠순수 React는 벽돌과 시멘트만 주는 거예요. 집을 지으려면 기초 공사부터 전기, 수도까지 모든 걸 직접 해야 하죠. 반면 Next.js는 이미 기본 인프라가 갖춰진 아파트 같은 느낌이에요!React로 프로젝트 시작할 때 😵웹팩 설정 → "bundle이 뭐야...?"라우터 설치 → "React Router vs Reach Router?"SEO 최적화 → "메타태그를 어디에...?"성능 최적화 → "코드 스플리팅이 뭐지?"✨ Next.js가 해결해주는 것들1️⃣ 파일 기반 라우팅: 폴더 = 페이지카페 메뉴판 만들기로 비유하면 ☕pages/menu.js → /menu 페이지 자동 생성pages/about/team.js → /about/te..

위치를 동적으로 변경할 때 css 속성 중 transform과 position 중 어떤 것을 선호하시나요?

🎯 CSS의 transform vs position: 언제 뭘 써야 할까?프론트엔드 개발하다 보면 요소의 위치를 바꿔야 할 때가 정말 많죠! 🚀 특히 애니메이션이나 인터랙션을 만들 때 말이에요. 그런데 transform과 position 중 뭘 써야 할지 고민된 적 없나요?🏃‍♂️ transform: 성능의 승부수transform은 브라우저 렌더링 파이프라인에서 composite 단계에서만 실행돼요. 이게 왜 중요하냐면, 브라우저가 다른 요소들의 위치를 다시 계산하거나 화면을 다시 그릴 필요가 없다는 뜻이거든요!일상 예시로 설명하면 🏠집안 가구 배치를 바꾼다고 생각해보세요. transform은 가구를 들어서 공중에 띄워 이동시키는 거예요. 다른 가구들은 전혀 영향받지 않죠. 반면 position은..

리액트의 props와 state에 대해서 설명해주세요.

리액트의 props와 state에 대해서 설명해주세요.프론트엔드와 관련된 질문이에요.props는 부모 컴포넌트가 자식 컴포넌트에 전달하는 데이터입니다. props는 읽기 전용으로, 자식 컴포넌트는 props를 수정할 수 없습니다.function ChildComponent(props) { props.name = "New Name"; // 오류 발생 가능 return {props.name};}이를 통해 컴포넌트 간의 데이터 흐름을 예측 가능하게 만들고, 컴포넌트의 재사용성을 높입니다. state는 컴포넌트 내부에서 관리되는 데이터입니다. state는 동적으로 변경될 수 있으며, 컴포넌트의 렌더링에 영향을 미칩니다. state를 변경하면 컴포넌트는 다시 렌더링되며, UI가 업데이트됩니다. state는 주로..