목차
- 멘탈 회복과 경력 공백에 대한 생각
- 실업급여 및 권고사직 위로금 경험 공유
- 공부, 운동, 게임 등 일상과 취업 준비
- GraphQL과 REST API 혼용 문제 토론
- GraphQL 이해 및 도입 시 고려점
- BFF(Backend For Frontend) 역할과 책임
- API 설계와 엔드포인트 관리 이슈
- 기술 면접 활용 팁 및 커뮤니케이션 조언
- 개발 환경 문제 및 CRA(React Create App) 에러 사례
- 커뮤니티 소소한 대화 및 에너지 교류
1. 멘탈 회복과 경력 공백에 대한 생각
- 장기간 휴식 후 멘탈은 괜찮았지만 경력 공백이 걱정됨
- 경력 단절 없이 빠른 취업이 중요하다는 의견
- 실업급여를 받으며 휴식을 가진 사례 공유
멘탈 관리 팁:
휴식 중에도 경력 공백을 최소화하는 방향으로 준비하는 것이 바람직함.
2. 실업급여 및 권고사직 위로금 경험 공유
- 권고사직 시 보통 3개월치 위로금 지급 사례가 많음
- 부당함을 주장하며 소송까지 간 경우도 있으나 정신적 부담 큼
- 위로금으로 재취업 준비 및 공부 가능하다는 점
권고사직 Tip:
위로금 액수와 조건을 회사와 명확히 협의하고, 법적 조언을 받는 것이 좋음.
3. 공부, 운동, 게임 등 일상과 취업 준비
- 개발자들은 공부, 강의, 연애, 운동, 게임 등 다양한 활동 병행
- 본인의 체력과 시간 관리는 중요하며 건강 유지도 필요함
- 취업 준비 중에도 밸런스를 잃지 않는 것이 긍정적
일상 관리 팁:
과도한 집중보다는 꾸준한 자기 개발과 휴식 조화가 효과적.
4. GraphQL과 REST API 혼용 문제 토론
주요 이슈
- 기존 프로젝트에 PostGraphile을 활용해 PostgreSQL 스키마 기반의 GraphQL 서버 자동 생성
- CUD(Create, Update, Delete) 로직은 REST API에서 처리하며, 프론트엔드가 GraphQL과 REST API를 동시에 다루어야 하는 상황
- GraphQL 서버 수정이 불가능해 백엔드가 직접 GraphQL을 다루지 못하는 문제
- 프론트엔드 부담 증가: GraphQL과 REST API 응답을 통합, 권한 관리 등 직접 처리해야 함
GraphQL과 REST API 개념 설명
- GraphQL: 페이스북에서 개발한 API 쿼리 언어로, 클라이언트가 필요한 데이터를 정확히 요청 가능해 언더페칭(데이터 부족) 및 오버페칭(불필요한 데이터 과다 요청)을 줄임.
- REST API: 전통적인 HTTP 기반 API 설계 방식으로, 리소스별로 고정된 엔드포인트를 통해 데이터를 송수신함.
5. GraphQL 이해 및 도입 시 고려점
핵심
- GraphQL은 단순히 DB 쿼리 노출 도구가 아니라 API 설계 및 클라이언트 요구사항에 맞춰 데이터 구조를 제공하는 도구
- GraphQL 도입은 백엔드 개발자가 직접 설계하고 관리해야 함
- 프론트엔드가 GraphQL 서버 역할(BFF)을 하려고 하면 부담이 크고 유지보수가 어려움
- 조회(read) API가 많아서 GraphQL을 도입하려는 것은 부적절할 수 있음
- CUD 작업을 REST API로 별도 처리할 경우, 캐싱과 데이터 일관성 관리가 복잡해짐
GraphQL의 장점
- 앱이 원하는 데이터만 선택적으로 요청 가능
- 복잡한 쿼리와 연관된 데이터를 한 번에 받을 수 있음
도입 시 주의
- GraphQL 학습 난이도가 있어 백엔드와 프론트 모두 준비가 필요
- 미완성 GraphQL 서버와 REST API 혼용은 업무 복잡도가 증가함
6. BFF(Backend For Frontend) 역할과 책임
- BFF는 클라이언트별 맞춤 API를 제공하는 중간 계층 서버
- 보통 백엔드에서 운영하고, 데이터 조합과 보안, 권한 관리를 담당
- 프론트엔드에서 BFF를 운영하는 것은 권장되지 않음 (업무 부담 가중)
- 혼용 도입 시 BFF도 백엔드에서 관리해야 효율적
7. API 설계와 엔드포인트 관리 이슈
- 대시보드 형태에서 API 엔드포인트가 너무 많고 중복이 심함
- 문서화가 잘 되어 있지 않아 개발자가 API 사용에 어려움 겪음
- Swagger(오픈API) 자동 생성 시 불완전한 스펙으로 오류 발생
- 필드명 불일치, 타입 오류 등으로 발생하는 문제도 공통 이슈
해결책
- API 문서화와 스펙 관리에 신경 쓸 것
- API 표준화 및 일관된 명명규칙 적용
- Swagger나 OpenAPI 스펙에 숙련된 인력 참여 권장
8. 기술 면접 활용 팁 및 커뮤니케이션 조언
- 모르는 점은 주저하지 말고 상사나 팀원에게 적극 질문할 것
- 혼자 해결하려다 스트레스받는 것보다는 빠르게 피드백 받음으로써 효율성을 높임
- "질문을 안 하는 기간 동안 평가가 하락한다"는 의견도 있음
- 팀내 소통이 원활하면 문제 해결 속도가 빠름
9. 개발 환경 문제 및 CRA(React Create App) 에러 사례
- CRA 프로젝트에서 react-scripts 관련 에러 및 ReactNode 타입 오류 경험 사례
- 문제 해결을 위해 node_modules, lock 파일 삭제 후 재설치 권장
- 기본적으로 @types/react가 정상 설치 되어 있어야함
- 프로젝트 새로 생성 후 소스 복사 방식도 고려 가능
- 동작 안 될 경우 점검해야할 부분은 의존성 충돌 및 타입 선언 누락
10. 커뮤니티 소소한 대화 및 에너지 교류
- 개발자들간 취미, 일상, 게임, 식사 이야기 나눔으로 친목 도모
- 장기간 개발에 지친 심리적 스트레스 해소에 도움
- 근황 공유 및 모임(정모) 참여 독려
- 기술 회피 유머, 개발 용어 패러디 등 자유로운 분위기
면접팁⚡
- 기술적으로 복잡한 API 혼용 문제에 대해 명확히 이해하고 설명하는 능력 중요
- GraphQL과 REST API의 차이점, 장단점, 도입 시 고려해야 할 점을 실제 경험과 함께 말할 수 있어야 함
- BFF는 어디가 주체인가? 프론트인가 백엔드인가? 명확한 것 강조
- 복잡한 시스템에서 문제 발생 시 적극적으로 커뮤니케이션 하는 태도도 면접에서 긍정적으로 평가됨
- 실무에서 기술 도입 실패 사례와 해결책을 이야기하며 문제해결능력 어필하기
링크🔗
- PostGraphile 공식 사이트 - PostgreSQL 기반 자동 GraphQL 서버 생성 도구
- GraphQL Mesh - 다양한 API를 GraphQL로 통합하는 기술
- Apollo Link REST - REST API를 GraphQL 클라이언트에서 사용 가능하도록 하는 라이브러리
- GraphQL Patterns: File Upload and Download - GraphQL에서 파일 처리 방법
- daangn/graplix (ReBAC 라이브러리) - 권한 관리 오픈소스
- Apollo GraphQL 공식 문서
- OpenAPI Specification - API 문서화 표준
- React Create App GitHub - React 프로젝트 템플릿
#GraphQL#RESTAPI#BFF#PostGraphile#API설계#프론트엔드#백엔드#개발협업#멘탈관리#CRA