Showing Posts From
프론트백엔드db
- 15 Dec, 2025
프론트-백엔드-DB 동시 문제: 분야 전환의 피로도
프론트-백엔드-DB 동시 문제: 분야 전환의 피로도 오전 10시: React 시작 출근했다. 슬랙 메시지 37개. 프론트 버그부터다. "버튼 안 눌려요" Chrome 개발자 도구 열었다. 콘솔 에러. onClick 이벤트 리스너 문제다. state 업데이트 타이밍이 꼬였다. useEffect 의존성 배열 수정. useEffect(() => { // 뭔가 했던 것 같은데 }, [dependency])React Hooks 문서 다시 봤다. 머릿속은 컴포넌트 라이프사이클. 렌더링 최적화. useMemo, useCallback. 가상 DOM. 30분 지났다. 고쳤다. 테스트. 잘 된다. 다음 메시지. "테이블 정렬 이상해요" CSS 파일 열었다. Flexbox인지 Grid인지. z-index 충돌. padding과 margin 조정. 반응형은 media query로. 머릿속: HTML 구조, CSS 속성, 브라우저 렌더링 방식.정신없다. 근데 이건 시작일 뿐이다. 오후 2시: Node.js로 전환 대표님 슬랙. "API 응답 느린 거 같은데" 백엔드로 넘어간다. VSCode 탭 전환. Express 서버 코드. 로그 확인. 쿼리 실행 시간 3.2초. 느리다. 머릿속이 돌아간다. 아까까지 React Hook이었는데. 지금은 Node.js 비동기 처리. Promise, async/await, 콜백 지옥. app.get('/api/users', async (req, res) => { // 이게 왜 느리지 })미들웨어 체크. 인증 로직. 데이터 가공. N+1 쿼리 문제인가. 30분 전만 해도 CSS 픽셀 단위 계산했다. 지금은 서버 메모리 사용량 본다. 완전히 다른 세계. 뇌가 재부팅하는 느낌. 프론트 문맥 날리고 백엔드 문맥 로딩.문제 찾았다. 쿼리가 문제다. DB로 가야 한다. 오후 5시: PostgreSQL 레이어 pgAdmin 열었다. SQL 쿼리 실행. EXPLAIN ANALYZE SELECT * FROM users WHERE created_at > '2024-01-01'실행 계획 본다. Seq Scan. 인덱스가 없다. 테이블 풀스캔 중. 머릿속이 또 전환된다. 아까: JavaScript 객체, 배열 메서드 지금: 테이블 스키마, 조인 전략, 인덱스 구조 B-Tree 인덱스 생성. 쿼리 최적화. JOIN 순서 변경. WHERE 절 조건 순서. 완전히 다른 사고방식이다. 프론트: 사용자가 뭘 보는가 백엔드: 데이터를 어떻게 처리하는가 DB: 데이터를 어떻게 저장하고 찾는가 하루에 세 번 뇌를 포맷한다. 인덱스 만들었다. 쿼리 0.3초로 줄었다. 좋다. 근데 이제 프론트로 돌아가서 이 데이터 표시해야 한다. 다시 전환.오후 7시: 다시 프론트 API 수정했으니 프론트도 수정. React 컴포넌트로 돌아왔다. 아까 뭐 하고 있었지. 코드 다시 본다. fetch 함수 수정. 응답 데이터 구조 바뀌었다. TypeScript 인터페이스 업데이트. PropTypes 수정. 머릿속: 다시 컴포넌트 상태관리. Redux? Context API? 그냥 props? 뇌가 버벅인다. SQL 쿼리 최적화하다가 갑자기 JSX 문법. interface User { id: number; // 아까 DB 스키마랑 다른데? }타입 맞추고. 렌더링 확인. 잘 된다. 피곤하다. 한 분야만 파도 모자랄 판에. 밤 9시: 또 다른 문제 "배포하면 503 에러나요" AWS 콘솔. EC2 인스턴스 확인. 메모리 90%. 서버 죽어간다. Docker 컨테이너 로그. 메모리 누수. Node.js 프로세스 확인. 이제는 인프라다. 또 전환. 머릿속: Linux 명령어, Docker 컨테이너 관리, nginx 설정, 네트워크. 한 시간 전: React Hook 의존성 배열 지금: top 명령어로 프로세스 모니터링 PM2 재시작. 메모리 정리. 서버 살아났다. 정신이 없다. 하루에 몇 번 뇌를 전환하는지 모른다. 컨텍스트 스위칭 비용 CPU에 컨텍스트 스위칭 비용 있다. 프로세스 전환할 때 레지스터 저장하고 불러오는 비용. 사람 뇌도 마찬가지다. 프론트 작업하다 백엔드 가면: 10분 로딩 백엔드에서 DB 가면: 또 10분 DB에서 인프라 가면: 또 10분 하루에 컨텍스트 스위칭만 몇 시간 쓴다. 전문 프론트 개발자는 하루종일 React만 한다. 깊게 파고든다. 최적화, 디자인 패턴, 성능. 전문 백엔드 개발자는 API 설계, 아키텍처, 스케일링에 집중한다. DBA는 쿼리 최적화, 복제, 백업에 전념한다. 나는 다 조금씩 한다. 깊이가 없다. Jack of all trades, master of none. 실제로 그렇다. 각 분야 70% 수준. 100% 아니다. React 전문가한테 물어보면 "그건 이렇게 하는 게 정석이지" 한다. 나는 몰랐다. DB 튜닝 전문가는 "당연히 파티셔닝 해야지" 한다. 나는 안 했다. 시간이 없어서다. 한 분야 깊게 팔 시간에 세 분야 넓게 판다. 피곤하다. 문서 열기만 몇 개 브라우저 탭:React 공식 문서 Node.js API 레퍼런스 PostgreSQL 매뉴얼 AWS 가이드 Docker 문서 nginx 설정 예제 Stack Overflow 탭 15개검색 기록:"react useEffect cleanup" "node.js memory leak detection" "postgresql index not used" "docker container out of memory"하루종일 문서 읽는다. 근데 기억 안 난다. 너무 많다. 어제 해결한 문제 오늘 또 검색한다. 기억이 안 난다. 컨텍스트가 너무 자주 바뀌어서. 전문가는 한 분야 문서 외운다. 나는 매번 찾는다. 비효율적이다. 안다. 근데 어쩌나. 나 혼자다. 회의도 정신없다 기획자: "이 버튼 위치 옮기면 안 돼요?" → 프론트 모드 대표님: "API 호출 횟수 줄여야 할 것 같은데" → 백엔드 모드 마케터: "이 데이터 뽑을 수 있어요?" → DB 모드 한 회의에서 세 번 뇌 전환. 대답할 때마다 머릿속에서 로딩. 컨텍스트 불러오기. 대답. 다시 저장. 피곤하다. 회의 끝나고 뭐 하려고 했지. 기억 안 난다. 컨텍스트 날아갔다. 디버깅이 제일 힘들다 프론트 버그 같은데 백엔드 문제다. 이런 거 많다. 버튼 안 눌린다 → React 코드 본다 → 문제없다 → API 확인 → 에러 응답 → 서버 로그 → DB 쿼리 실패 → 테이블 락 → 다른 쿼리가 락 잡고 있다 → 그 쿼리 추적 → 배치 작업이 문제 결국 DB 문제였다. 근데 프론트부터 디버깅 시작했다. 풀스택이니까. 어디가 문제인지 모른다. 다 봐야 한다. 한 시간 걸렸다. 전문가 팀이면 10분. 프론트 개발자: "API 문제인 거 같은데요" 백엔드 개발자: 로그 본다 "DB 쿼리 느린데요" DBA: 쿼리 본다 "락 문제네요" 해결. 나는 혼자 다 한다. 시간 10배. 기술 스택 유지보수 프론트:React 18.2 → 18.3 업데이트 나옴 새로운 Hook API 마이그레이션 가이드 읽어야 함백엔드:Node.js 18 → 20 마이그레이션 Express 5.0 베타 브레이킹 체인지 확인DB:PostgreSQL 15 → 16 새로운 기능들 성능 개선사항인프라:Docker 최신 버전 AWS 새 서비스 보안 업데이트매달 뭔가 업데이트된다. 다 따라가야 한다. 전문가는 한 분야만 따라간다. 나는 네 분야. 공부 시간 4배. 근데 시간은 똑같다. 뒤처진다. 최신 기술 못 쓴다. 레거시 쌓인다. 알지만 어쩔 수 없다. 채용 공고가 웃긴 이유 우리 회사 채용 공고: "프론트엔드 개발자 구함React 능숙자 TypeScript 필수 경력 3년 이상 연봉 5000만원~"근데 뽑히면:백엔드도 할 줄 알아야 함 DB도 만져야 함 배포도 해야 함 인프라 장애도 대응면접 올 때는 프론트 전문가. 입사하면 풀스택. 그래서 안 뽑힌다. 6개월째. 전문가는 여기 안 온다. 스타트업 풀스택은 전문성 포기하는 거다. 다들 안다. 올해 면접자 3명. 다 떨어졌다. 1명: "백엔드는 잘 모르는데요" 1명: "프론트만 하고 싶어요" 1명: "여기 개발자 혼자세요? 패스합니다" 솔직하다. 이해한다. 나도 이력서 쓸 때 고민된다. "풀스택 개발자 3년" 근데 실제로는:프론트 70% 백엔드 70% DB 60% 인프라 50%다 중간이다. 어디도 전문가 아니다. 이직할 때 불리하다. 전문성이 없다. 저녁 11시 현재 오늘 한 일:React 컴포넌트 3개 수정 Node.js API 2개 추가 PostgreSQL 쿼리 최적화 5개 Docker 컨테이너 재배포 2번 AWS 비용 확인 nginx 설정 변경 버그 수정 7개 회의 3번많이 했다. 근데 뭔가 이룬 느낌이 없다. 다 쪼개져 있다. 한 분야 깊이 파지 못했다. 프론트 전문가는 오늘 하나 만들었을 것이다. 근데 완벽하게. 나는 일곱 개 만들었다. 근데 다 70%. 피곤하다. 내일도 똑같다. 프론트-백엔드-DB-인프라 돌아가면서. 뇌가 방향을 계속 돌린다. 어지럽다. 그래도 가끔 좋을 때 있다. 프론트 버그가 백엔드 문제고 그게 DB 쿼리 때문이고 그걸 인프라로 해결할 수 있을 때. 전체를 본다. 연결고리를 안다. 전문가들은 자기 영역만 본다. 나는 전체를 본다. 빠르게 원인 찾는다. 어디가 문제인지 감이 온다. 프론트 개발자한테 물어보면 "백엔드 문제 같은데요" 한다. 맞다. 백엔드 개발자한테 물어보면 "DB 문제 같은데요" 한다. 맞다. 나는 바로 안다. 다 해봤으니까. 장점이다. 유일한. 근데 이것만으로는 부족하다. 피곤하다.오늘도 뇌를 돌렸다. 내일도 돌릴 것이다. 언제까지 돌릴 수 있을까.