react 썸네일react

2024-02-25

목차

  1. GPT와 개발 생산성
  2. 비동기 처리와 데이터 가공 고민
  3. 리액트 라우터 페이지 이동 문제
  4. 디자인 협업과 현실적인 타협
  5. PM2 라이선스 관련 질문
  6. 커밋 메시지 작성과 코드 관리
  7. GraphQL 데이터 페칭의 어려움
  8. 개발과 커뮤니케이션 문화
  9. RabbitMQ 공부 경험
  10. 기타 소소한 개발자 일상

1. GPT와 개발 생산성

  • GPT는 개발자들의 러닝커브를 크게 낮춰준다며 호평받음.
  • 어려운 질문을 GPT에 물으면 빠르게 답을 얻을 수 있어 실무 활용도가 높음.
  • 개발 초보부터 숙련자까지 생산성 향상에 큰 도움을 줌.
  • 다만 GPT에 너무 의존하면 기초 체력이 떨어질 수 있으니 균형이 필요함.

2. 비동기 처리와 데이터 가공 고민

  • 비동기 비동기라고 하면서도 데이터 가공 과정이 예상보다 복잡하고 힘들다는 이야기.
  • 복수 API 요청 후 받은 데이터를 내 의도대로 가공해서 보여주는 과정은 까다로운 작업임.
  • 비동기 처리란, 작업을 요청한 뒤 그 결과를 기다리지 않고 다음 작업을 수행하는 방식을 말함.
  • 대표적인 자바스크립트 비동기 처리 방법에는 Promise, async/await 등이 있음.
  • 비동기 처리가 익숙해지면 효율적인 코드 작성이 가능하지만 초반엔 어려움이 많다.
  • 데이터 가공 단계에서는 받아온 자료를 필터링, 조합, 정렬하는 등 다양한 로직이 필요함.

3. 리액트 라우터 페이지 이동 문제

  • 리액트 라우터 5.3 버전을 사용 중 페이지가 이동하나 화면이 변경되지 않는 문제 발생.
  • 요소는 DOM 상에 존재하지만 제대로 렌더링이 안 되는 현상.
  • 문제 해결 팁: 경로 설정 확인, Switch/Routes 컴포넌트 사용 여부 점검, 버전별 API 차이 확인 필요.
  • 개발 환경이나 캐시 문제도 원인이 될 수 있으니 클린 빌드 및 브라우저 캐시 비우기 추천.

4. 디자인 협업과 현실적인 타협

  • 디자인과의 100% 일치 작업은 시간이 많이 소요되므로 95% 선에서 타협하는 경우가 많음.
  • 협업 초기에 정확한 조율과 커뮤니케이션이 중요하며, 불필요한 완벽주의는 오히려 프로젝트 지연 요인됨.
  • 디자이너 및 기획자와 합리적이고 열린 대화로 우선순위를 정하는 것이 효과적임.
  • 디자인 시스템은 디자인 통일성을 위한 체계지만 모든 문제를 해결해주진 않음.
  • 디자이너가 디자인에 대한 최종 의사결정 책임자(DRI)이며, 개발자는 이를 존중하되 소통에 적극 참여해야 함.
  • 현실적인 시간 제한과 프로젝트 조건에 따라 단계적으로 디테일 개선하는 전략이 추천됨.

5. PM2 라이선스 관련 질문

  • PM2가 AGPL 라이선스로 개인이나 회사에서 사용 시 유료 버전을 사용하는 경우가 많다는 문의.
  • AGPL은 수정한 코드를 공개해야 하므로 기업 환경에선 유료 라이선스 구매가 일반적임.
  • 오픈 소스 라이선스 이해와 회사 정책을 잘 확인해야 하며, 필요 시 대체 도구 검토도 고려할 만함.

6. 커밋 메시지 작성과 코드 관리

  • 커밋 메시지에 자세한 설명을 쓰기 어려운 경우가 많아 리드미(README) 문서나 주석으로 코드 이해를 돕기도 함.
  • 코드 구조를 명확히 나누면 주석이나 상세한 커밋 없이도 유지보수가 쉬워짐.
  • 개발자마다 메시지 스타일이 다르나, 최소한 변경 목적은 명확히 남기는 것을 추천.
  • 코드 주석은 필요한 부분에만 간결하게 작성하고, 문서화 작업은 별도로 하는 게 좋음.

7. GraphQL 데이터 페칭의 어려움

  • GraphQL 공부 중인데 기존 REST API보다 복잡해 보이고, 코드량이 많아지는 느낌을 받음.
  • GraphQL은 필요한 데이터만 선택해 요청할 수 있어서 효율적이나, 쿼리 작성과 데이터 구조 설계가 처음엔 낯설 수 있음.
  • 여러 요청을 조합하거나 가공하는 작업을 많이 하게 되는 경우 복잡도가 증가됨.
  • 공식 문서 및 예제 공부가 도움이 되고, 단계적으로 학습하는 게 중요함.

8. 개발과 커뮤니케이션 문화

  • 좋은 개발 문화 중 하나는 역할에 맞는 책임과 소통의 균형임.
  • 개발자는 기획자, 디자이너와 지속적으로 소통하며 기술적 제약과 디자인 의도를 조율해야 함.
  • 문제 발생 시 감정을 자제하고 객관적으로 대화하는 자세가 중요함.
  • 회사 내 협업 문화를 개선하려면 명확한 역할 분담과 열린 대화 채널 필요.

9. RabbitMQ 공부 경험

  • 한 개발자는 RabbitMQ라는 메시지 큐 시스템을 공부 중이라고 공유함.
  • 메시지 큐는 분산 시스템 간 비동기 통신을 지원해 시스템 확장성과 안정성을 향상시킴.
  • RabbitMQ는 AMQP 프로토콜 기반으로 다양한 언어에서 사용 가능하며, 복잡한 비즈니스 로직에 적합.
  • 공부하며 보는 난관과 재미를 동시에 느낄 수 있다고 함.

10. 기타 소소한 개발자 일상

  • 주말 느긋한 아침에 일어나는 분위기, 가벼운 잡담 속에서도 개발 이야기가 자연스레 이어짐.
  • 개발자들 사이에서 흔히 쓰이는 개발 농담과 줄임말, 신조어들이 오가는 즐거운 분위기.
  • 끊임없는 배움과 토론, 때로는 도전과 실패를 공유하는 따뜻한 커뮤니티 문화가 느껴짐.

면접팁⚡

  • 비동기 처리와 Promise/Await의 개념을 명확히 알고 구체적인 사용 예시를 준비할 것.
  • 리액트 라우터의 기본 동작 원리와 문제 해결 경험을 이야기할 수 있으면 좋음.
  • 디자인 협업 경험에 대해 현실적인 타협과 소통 사례를 구체적으로 말할 수 있도록 준비.
  • AGPL 라이선스와 상용화의 차이점, PM2 같은 툴 라이선스에 대한 이해는 실무 감각을 어필하는 데 긍정적.
  • GraphQL에 대한 기초 지식을 빠르게 설명하고, 어려웠던 점과 극복 방법을 이야기하면 좋음.

링크🔗

#개발생산성#비동기처리#리액트#디자인협업#라이선스#커뮤니케이션#GraphQL#RabbitMQ#코드관리#개발문화