1일 1CS(Computer Science) 131

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

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

코드 커버리지에 대해서 설명해주세요.

코드 커버리지가 뭐예요? 🤔코드 커버리지는 "내가 작성한 테스트가 실제 코드를 얼마나 실행했는지" 를 보여주는 지표예요!일상생활로 비유하면, 집 청소를 할 때 "내가 방의 몇 퍼센트를 청소했는지" 를 측정하는 것과 같아요 🏠✨커버리지의 3가지 종류 📝1. 구문 커버리지 (Statement Coverage) 📋별명: 라인 커버리지의미: 코드의 각 줄이 실행되었는지 확인예시: 10줄의 코드 중 8줄이 실행되면 80% 커버리지// Node.js API 예시function calculateDiscount(price, userType) { let discount = 0; // 실행됨 ✅ if (userType === 'premium') { discount = 0.2..

Server Action이란 무엇인가요?

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

의존성 주입이란 무엇인가요?

의존성 주입이 뭐야? 🤔커피샵을 운영한다고 생각해보세요! 바리스타(A)가 커피를 만들려면 원두(B)가 필요하죠.일반적인 방식: 바리스타가 직접 원두를 선택하고 구매해서 사용 → 특정 원두에만 의존하게 됨 😅의존성 주입 방식: 매니저(C)가 원두를 준비해서 바리스타에게 전달 → 바리스타는 어떤 원두든 받아서 커피 제작 가능! 🎉이렇게 외부에서 필요한 것을 주입해주는 방식이 바로 의존성 주입이에요!왜 의존성 주입을 써야 할까? 💡1. 유연성 증가 🔄바리스타는 콜롬비아 원두든, 에티오피아 원두든 상관없이 커피 제작 가능코드 변경 없이 다른 구현체로 교체 가능2. 테스트가 쉬워짐 🧪Mock 객체를 쉽게 주입해서 단위 테스트 작성 가능실제 데이터베이스 없이도 테스트 가능3. 재사용성 향상 ♻️같은 바리..

전략 패턴에 대해서 설명해주세요.

🎮 전략 패턴이 뭔가요?게임 캐릭터로 비유해보면 🕹️RPG 게임에서 마법사가 있다고 해봐요. 상황에 따라 다른 마법을 써야 하죠!적이 많으면 → 광역 마법적이 강하면 → 단일 대상 강력 마법체력이 부족하면 → 힐링 마법전략 패턴은 마법사 캐릭터는 그대로 두고, 마법 스펠만 갈아끼우는 방식이에요!🚗 실생활 예시: 내비게이션 앱카카오맵 길찾기를 생각해보세요 🗺️빠른 길 우선고속도로 우선일반도로 우선무료도로 우선목적지는 같지만 가는 방법(전략)만 다른 거죠!💻 Node.js로 이해하는 전략 패턴결제 시스템 예시 💳// 전략 인터페이스 (추상화)class PaymentStrategy { pay(amount) { throw new Error('구현 필요'); }}// 구체적인 전략들class ..

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..

정적 IP 주소 할당 방식과 동적 IP 주소 할당 방식의 차이점을 설명해주세요.

🌐 정적 IP vs 동적 IP: 어떤 걸 써야 할까?백엔드 개발하다 보면 서버 설정할 때 IP 주소를 어떻게 할당할지 고민하게 되죠! 🤔 특히 Node.js 서버를 AWS나 클라우드에 배포할 때 말이에요. 정적 IP와 동적 IP의 차이를 알아보겠습니다.🏠 정적 IP: 집 주소처럼 고정된 주소정적 IP는 수동으로 직접 설정하는 방식이에요. 마치 집 주소처럼 한 번 정하면 바뀌지 않죠!아파트 입주로 비유하면 🏢정적 IP는 "101동 1001호"처럼 정확한 주소를 미리 정해두는 거예요. 누구든 이 주소만 알면 항상 같은 곳을 찾을 수 있죠.정적 IP 설정에 필요한 것들IP 주소: 192.168.1.100 (내 컴퓨터 주소)서브넷 마스크: 255.255.255.0 (우리 동네 범위)게이트웨이: 192.1..

위치를 동적으로 변경할 때 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는 주로..

단일 장애 지점(SPOF)이란 무엇인가요?

🤔 SPOF가 뭔가요?단일 장애 지점(Single Point of Failure, SPOF)은 마치 우리 집의 메인 전기 차단기 같은 존재예요! 🏠⚡메인 차단기가 고장나면 집 전체가 정전되죠? 시스템에서도 마찬가지로 하나의 구성 요소가 죽으면 전체 서비스가 마비되는 지점을 SPOF라고 해요.💡 가용성(Availability)이란?정상 운영 시간 ÷ 전체 시간 × 10099.999% = 연간 5분 정도만 다운타임 허용 (고가용성, HA) 😱카카오톡이 하루 종일 안 된다고 생각해보세요... 그게 바로 가용성 문제!🔍 현재 상황 분석주어진 시스템을 살펴보면✅ DB: Master 1대 + Replica 3대 (Failover 지원) - 안전함!❌ API Server: 1대만 운영 - 위험한 SPOF!A..