목차
- 슬랙 장애 & 드립 문화
- Zero Runtime CSS와 타입스크립트 선언 병합
- 공인 IP 변경 이력 확인
- ngrok 문제 및 토큰 재발급 쿠키 저장 문제
- 피그마 서비스 장애와 Electron.js 소개
- PHP 역사와 React JSX 뿌리
- React Router 관련 질문과 구현 팁
- 프리랜서 경력, SI 및 웹에이전시 경험 토론
- Tailwind CSS 단점 및 사용 경험
- Jest 테스트 관련 import 문법 에러 해결 팁
1. 슬랙 장애 & 드립 문화
- 슬랙에서 장애 의심 멤버들의 농담 섞인 대화가 활발했음.
- 농담과 드립이 회사 분위기를 유쾌하게 돋우는 문화로 작용.
- 가벼운 대화로 출근 인사, 업무 분위기 전환 역할.
2. Zero Runtime CSS와 타입스크립트 선언 병합
-
Zero Runtime CSS란?
- 스타일을 빌드 타임에 정적으로 컴파일하여, 실행 시점에 스타일 계산 비용을 줄이는 CSS 접근 방식임.
- 빌드 시점에 CSS가 완성되어 런타임 부하가 적고 성능 최적화에 도움됨.
-
타입스크립트 인터페이스의 선언 병합(Declaration Merging)
- 동일한 이름의 인터페이스 또는 타입 선언이 여러 곳에서 있을 경우 자동으로 하나로 합쳐지는 기능.
- React 컴포넌트 등 복잡한 타입 확장 시 유용하며, 오버라이드가 아닌 기존 타입에 속성을 추가하는 개념임.
3. 공인 IP 변경 이력 확인
- 일반적으로 PC에서 공인 IP 변경 기록을 확인하는 공식 방법은 거의 없음.
- IP 변경은 모뎀 재부팅, ISP 정책, DHCP 정책 등으로 자동 변동 가능.
- 회사나 서버 환경에서 고정 IP 구매 시 IP가 고정되나, 상황에 따라 변경될 수 있음.
- IP 변경 이력 추적이 필요하다면 별도 네트워크 모니터링 시스템이나 로그를 구축해야 함.
4. ngrok 문제 및 토큰 재발급 쿠키 저장 문제
-
ngrok은 외부에서 로컬 서버를 노출시키는 터널링 서비스로, 주소가 거의 일회성으로 제공됨.
-
가끔 ngrok 접속 불가 문제가 나타날 수 있으며, 다시 실행하거나 설정 초기화 필요함.
-
Next.js(특히 Next 13)의 서버 환경에서 API 인증 토큰 재발급 후 쿠키 저장 문제
- next/headers의 cookies().set()은 오직 Route Handler나 Middleware에서만 가능함.
- 따라서 클라이언트 인터셉터에서 토큰 재발급 후 쿠키를 설정하려면 별도의 Route Handler API를 만들어 호출하는 방식 추천.
- 이 방식은 보안과 SSR 환경에 적합하며, 쿠키 설정 권한 문제가 해결됨.
5. 피그마 서비스 장애와 Electron.js 소개
- 피그마(Figma) 웹 서비스 일시 장애 발생, 프로그램 버전은 정상 작동.
- Electron.js는 데스크톱 애플리케이션 개발 프레임워크로, 웹 기술로 데스크톱 앱을 쉽게 만들 수 있음.
- 피그마 같은 툴의 설치버전을 만들 때 Electron.js 활용 사례가 많음.
6. PHP 역사와 React JSX 뿌리
- PHP는 LAMP 스택 시대에 웹 개발의 주역 중 하나로 많은 사이트와 공공기관에서 아직도 사용됨.
- 과거 PHP 코드는 보안 인식 부족, 설계 부재 등으로 인해 부정적 평가가 많음.
- React JSX는 페이스북이 개발한 XHP(php 확장 프레임워크) 의 JS 버전에서 진화한 것이라고 알려짐.
- 이런 역사 때문에 React가 PHP의 영향을 부분적으로 받았다는 의견 존재.
7. React Router 관련 질문과 구현 팁
- React Router Dom에서 GNB(Global Navigation Bar) 컴포넌트를 BrowserRouter 밖에 둔다면, 내부 훅(useLocation 등)을 쓸 수 없어 경고 발생 가능.
- NavLink 컴포넌트 활용 시 현재 경로와 연동해 활성화 메뉴 표시가 편리함.
- GNB 컴포넌트를 라우터 안에 넣거나 Context, Redux 등 상태 관리 도구를 이용하여 경로값을 전달·관리하는 방법 추천.
- Route 컴포넌트 내부에서 NavLink를 사용하는 것이 가장 무난함.
8. 프리랜서 경력, SI 및 웹에이전시 경험 토론
- 프리랜서 최소 경력, 일반적으로 3년 이상을 권장하지만 본인 역량에 따라 가능.
- SI(시스템통합)와 웹에이전시는 업무 형태, 요구되는 기술 수준이 차이남.
- SI는 네임드 기술을 사용, 웹에이전시는 간단한 홈페이지 제작 위주인 경우가 많아 개발자 성장에 영향.
- 웹에이전시 경험은 개인별로 차이가 크며, 일부는 개발자 무덤 취급.
- 경력 개발자는 성장과 환경 고려해 선택할 필요 있음.
9. Tailwind CSS 단점 및 사용 경험
- Tailwind CSS는 유틸리티 클래스 기반으로 빠른 스타일링 가능하나, 클래스 네임이 많아지면 가독성 저하가 문제됨.
- 복잡한 스타일링 시 클래스명이 길어지고 유지보수 어려울 수 있음.
- CSS-in-JS 또는 module.css 등과의 조합 사용 의견도 있음.
- Tailwind를 유지보수 필요 없는 작은 프로젝트나 프로토타입에 쓰는 경우 생산성 좋음.
10. Jest 테스트 관련 import 문법 에러 해결 팁
- SyntaxError: Cannot use import statement outside a module 에러는 Jest가 ES Module 문법(import)을 해석하지 못해 발생함.
- 해결 방법:
- package.json에 "type": "module" 설정 검토.
- Jest 설정(jest.config.js)에서 transform 옵션으로 Babel 또는 ts-jest 등 트랜스파일러 지정 필요.
- transformIgnorePatterns 설정으로 node_modules 내 특정 라이브러리도 변환 대상으로 지정 가능.
- 관련 공식 문서 참고 권장: https://jestjs.io/docs/ecmascript-modules
- React Native 환경 라이브러리 테스트 시 ESModule 문제 많이 발생하며 별도 세팅 필수.
면접팁⚡
-
React와 JSX 관계 이해
JSX는 React 컴포넌트를 선언하는 문법으로, 실제로는 React.createElement 호출로 변환됨. React 초창기가 JS가 아닌 PHP 기반 XHP에서 영향을 받았다는 점도 인상적임. -
React Router 사용 시 GNB 구현 팁
NavLink와 useLocation 훅 사용은 Route 컴포넌트 내부에서 해야 문제 없으며, 상태 관리 라이브러리를 활용해 URL 상태를 전역 관리하는 것도 좋은 방법임. -
Jest 환경 설정 문제 해결
ESModule 관련 오류는 Jest 설정과 Babel 연동을 점검하며, 특히 React Native 라이브러리 테스트 시 트랜스폼 설정에 신경 써야 한다는 점 기억. -
프리랜서 경력 & SI, 에이전시 경험 토론 활용
자신의 경력관리 방향과 경험 환경에 대해 솔직하게 말하고, 각 환경의 장단점을 이해하고 있음을 어필할 것.
링크🔗
- Slack status: https://status.slack.com/
- React 공식 문서 (한국어): https://ko.react.dev
- Jest ES Module 설정: https://jestjs.io/docs/ecmascript-modules
- ngrok 관련 문제 참고 StackOverflow: https://stackoverflow.com/questions/38898053/how-to-read-geo-location-from-an-image-file-data-in-javascript
- Figma 서비스 이슈 관련: https://www.figma.com/status
- Discord Rust 리빌드 관련 글: https://discord.com/blog/why-discord-is-switching-from-go-to-rust
- Tauri 프레임워크 (Rust 기반 Electron 대안): https://github.com/tauri-apps/tauri
- DiningCode 시청 혼밥 맛집 Top100: https://m.diningcode.com/list.dc?query=%EC%8B%9C%EC%B2%AD%20%ED%98%BC%EB%B0%A5
- 위치기반서비스 신고 안내: https://www.lbsc.kr/front/content/contentViewer.do?contentId=CONTENT_0000061#scrollEvent_local3
- React Router NavLink 문서: https://reactrouter.com/en/main/components/nav-link
- React Router useLocation 훅: https://reactrouter.com/en/main/hooks/use-location
- React Testing ESLint import 관련 (참고): https://github.com/facebook/jest/issues/9430
#React#NextJS#TailwindCSS#TypeScript#ReactRouter#Jest#PHP#Electron#ngrok#프리랜서