목차
- GPT와 개발 생산성
- 비동기 처리와 데이터 가공 고민
- 리액트 라우터 페이지 이동 문제
- 디자인 협업과 현실적인 타협
- PM2 라이선스 관련 질문
- 커밋 메시지 작성과 코드 관리
- GraphQL 데이터 페칭의 어려움
- 개발과 커뮤니케이션 문화
- RabbitMQ 공부 경험
- 기타 소소한 개발자 일상
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에 대한 기초 지식을 빠르게 설명하고, 어려웠던 점과 극복 방법을 이야기하면 좋음.
링크🔗
- 혀엉 언어 헬로월드 예제: https://gist.github.com/xnuk/d9f883ede568d97caa158255e4b4d069
- PM2 AGPL 라이선스 관련 블로그: https://hontube.tistory.com/67
- 생활코딩 유튜브 (리액트 이론 공부 추천)
#개발생산성#비동기처리#리액트#디자인협업#라이선스#커뮤니케이션#GraphQL#RabbitMQ#코드관리#개발문화