목차
- Tabs 컴포넌트 useTab() 훅 없이 구현하기
- 바닐라(date picker) 라이브러리 추천 및 사용법
- Next.js 대규모 SSG 빌드 시 고려사항과 대안
- 세션 인증 상태 동기화 문제와 해결 방안
- 월급 밀림 문제와 개발자 경험 공유
- 포트폴리오 제작 아이디어 및 참고 사이트
- React/Vue 외주 비용과 시장 상황
- 비전프로(AR기기) 개발 경험과 전망
- Next.js 라우팅과 혼란 경험 공유
- 가벼운 잡담 및 기타 소소한 팁
Zustand #포트폴리오 #바닐라JS #외주 #월급밀림 #AR개발
1. Tabs 컴포넌트 useTab() 훅 없이 구현하기
- React에서 Tabs UI를 만들 때 보통은 useTab() 같은 훅을 활용하지만, 해당 포스팅에서는 훅 없이 컴포넌트만으로 Tabs를 구현하는 방법 소개됨
- 핵심 사용 기술
- React.Children과 React.Children.map으로 자식 컴포넌트에 접근해 동적으로 탭 상태 제어 가능
- useImperativeHandle 훅으로 ref를 통해 외부에서 컴포넌트 상태를 조작할 수 있게 구현
- 초보자 설명:
- React.Children은 부모가 자식을 조작할 때 유용
- useImperativeHandle은 ref를 통해 컴포넌트를 외부에서 제어하는 기술로, 보통 UI 라이브러리 제작 시 쓰임
- 의견: 복잡한 훅에 의존하지 않고 컴포넌트만으로도 충분히 유연한 Tabs UI 구현 가능함
2. 바닐라 date picker 라이브러리 추천 및 사용법
- 순수 자바스크립트(바닐라)로 된 date picker 라이브러리를 찾는 질문 등장
- 간단하고 가벼운 해결책으로는 <input type="date" /> 태그 추천
- 모든 최신 브라우저가 기본 날짜 선택 UI 제공
- 모바일 환경까지 기본 지원해 별도 라이브러리 불필요할 수도 있음
- 바닐라 JS 라이브러리는 커스텀 UI가 필요한 경우에만 고민할 것
3. Next.js 대규모 SSG 빌드 시 고려사항과 대안
- 블로그 글 1000개 정도를 Next.js SSG(Static Site Generation)로 빌드 시 문제 발생 가능성 지적
- 문제: 매번 배포할 때 많은 페이지를 정적으로 재생성하는 작업은 시간과 리소스 소모 큼
- 대안
- ISR(Incremental Static Regeneration) 활용하기
- 요청이 있으면 그때그때 필요한 페이지만 새로 생성 가능
- 빌드 시 DB 호출을 줄이려면 미리 JSON 파일로 데이터를 준비해두거나 Vercel 같은 플랫폼 캐시 기능 활용
- Next.js 13부터 fetch cache 기능으로 API 호출 캐싱 가능, 불필요한 DB 호출 감소 도움
- ISR(Incremental Static Regeneration) 활용하기
- 설명:
- SSG: 앱 개발 시 정적 페이지를 미리 생성해 빠른 로딩 제공
- ISR: 생성된 페이지를 백그라운드에서 재갱신 하며 최신 상태 유지
- 팁: 대규모 문서 사이트일 땐 pure SSG보다 ISR과 캐시 조합을 추천
4. 세션 인증 상태 동기화 문제와 해결 방안
- 문제 상황: 다중 탭 환경에서 인증 상태를 각각 독립으로 유지해, 한 탭에서 로그아웃 혹은 로그인 시 다른 탭의 상태가 갱신되지 않음
- 일반적 해결책
- 서버에서 인증/권한을 가져오는 API(/me)를 주기적으로 호출해 최신 정보 반영
- 로컬스토리지 이벤트를 활용해 한 탭에서 상태가 바뀌면 다른 탭에 이벤트를 보내 상태를 갱신
- 상태 관리 라이브러리(zustand 등)를 클라이언트에만 의존할 경우 싱크 문제 발생
- RBAC(Role-Based Access Control)는 서버가 권한 검증을 담당하고, 프론트엔드에서 UI 요소 보여주기 위해 권한 데이터를 받아 사용함
- 초보자 설명
- SPA는 페이지 내에서 자바스크립트만으로 화면을 바꾸기 때문에 인증 상태를 자주 서버와 맞춰야 함
- 로컬스토리지 이벤트는 storage 이벤트로 다른 탭에서 상태 변경을 감지하는 방식
- 권장: SPA에서도 서버와 주기적 인증 상태 동기화, 필요시 로컬스토리지 이벤트 병행
5. 월급 밀림 문제와 개발자 경험 공유
- 한 개발자가 월급이 밀린 경험을 공유, 비슷한 사례와 대처법 논의
- 밀린 월급은 법적 상담(노동청 등)으로 해결 가능하며, 밀린 기간이 길어질수록 퇴사 권고
- 밀린 월급으로 인해 신용도 하락, 생활 곤란 사례도 있어 심각성 인식 필요
- 일부는 밀림 상황에도 프로젝트 계속 진행하는 경우, 그러나 “돈 안 주는데 일 계속하는 건 의미 없다”는 의견도 다수
- 팁: 채용 전 회사 리뷰(잡플래닛 등) 확인, 월급 밀림 소문 있으면 즉시 거르는게 안전
6. 포트폴리오 제작 아이디어 및 참고 사이트
- 재미있고 독특한 포트폴리오 제작 사례 공유
- 추천 사이트 및 테마
- CLI(Command Line Interface) 포트폴리오: 터미널 환경에서 동작하는 듯한 UI 제공하는 포트폴리오 예시
- OS 스타일 포트폴리오: 작은 운영체제 같이 보이는 웹 포트폴리오
- 구체 주소
- 의견: 창의력과 기술력이 잘 표현된 사례들이며, 남들과 다른 인상을 주기 좋음
7. React/Vue 외주 비용과 시장 상황
- 페이지당 10만원 청구 제안에 대해 논의
- 실제 외주 비용은 페이지 복잡도, 기능, 디자인 등에 따라 천차만별임
- SPA(Single Page Application)의 경우 페이지 단위 과금은 의미가 적음
- 따라서 작업 범위와 난이도에 맞게 비용 산정 권장
8. 비전프로(AR 기기) 개발 경험과 전망
- 비전프로 관련한 개발 경험 공유, 실제 개발 해 본 사람은 적음
- AR기기 개발 특성상 모니터를 보는 것과 다르며, 눈이 피로할 수 있다는 의견 존재
- 미래에는 맥북 대신 비전프로 같은 AR기기로 개발할 가능성 언급
- 일반적 관심과 기대가 높음
9. Next.js 라우팅과 혼란 경험 공유
- Next.js 라우팅 구조에 익숙해지기 어렵다는 의견
- SPA와 SSG, SSR 혼재된 환경에서 라우팅 개념 혼동
- 추천 학습 포인트: Next.js 공식 문서 라우팅 부분 집중 학습
10. 기타 소소한 이야기
- 개발자들의 아침 인사, 일상 대화 및 유머
- 수건 교체 시기, 음료 및 간식 관련 잡담
- 대화 내 자연스런 인간미와 친밀감 엿볼 수 있음
면접팁⚡
- Next.js SSG vs ISR 이해 중요: 대규모 콘텐츠 사이트 면접에서 자주 나오는 주제
- 인증 상태 동기화 문제와 SPA/서버 간 책임 분배에 대해 명확히 설명 가능해야 함
- React 컴포넌트 통신과 ref 관리 방법 (useImperativeHandle 등) 숙지 권장
- 외주 시장 및 비용 산정 관련 기본 감각 파악도 도움 됨
링크🔗
- Tabs 컴포넌트 useTab() 없이 구현하기: https://velog.io/@skiende74/Tabs-컴포넌트-useTab훅없이-구현하기
- React useLocalStorage 관련: https://velog.io/@taetae-5/React-18-%EC%97%90%EC%84%9C-useLocalStorage-%EA%B5%AC%ED%98%84
- 비주얼/터미널 포트폴리오 예시
- 양자 분야 채용 공고 (농담 포함): https://www.wanted.co.kr/wd/278920
- Next.js 공식 문서 라우팅 참고 권장
#React#Nextjs#인증#SSG#Zustand#포트폴리오#바닐라JS#외주#월급밀림#AR개발