← 파운더 블로그
·4분·창업·기술·조회

AI 시대에 개발하다가 울고싶을 때

개발이 진짜 힘들어지는 순간 | 개발이 진짜 힘들어지는 순간 개발을 하다 보면 잘 안 되는 날이 있다. 코드가 틀린 거라면 오히려 괜찮다. 에러 메시지가 나오고,문제가 발생한 위치가 어느 정도 보이고,하나씩 고치다 보면 결국 해결된다. 내가 작성한 코드가 문제라면적어도 내가 손댈 수 있는 영역 안에 문제가 있다는 뜻이다. 진짜 힘든 건 그 바깥에서 문제가 생길 때다. 서버와 서버 사이의

개발을 하다 보면 잘 안 되는 날이 있다.

코드가 틀린 거라면 오히려 괜찮다.

에러 메시지가 나오고,문제가 발생한 위치가 어느 정도 보이고,하나씩 고치다 보면 결국 해결된다.

내가 작성한 코드가 문제라면적어도 내가 손댈 수 있는 영역 안에 문제가 있다는 뜻이다.

진짜 힘든 건 그 바깥에서 문제가 생길 때다.

서버와 서버 사이의 통신이 이상하거나,프로토콜이 미묘하게 맞지 않거나,보안 헤더 하나 때문에 요청이 차단되거나,프록시와 인증, DNS, SSL, 네트워크 계층이 서로 얽혀 있을 때.

특히 프로토콜과 인프라의 경계에서 발생하는 문제는 정말 사람을 지치게 한다.

코드는 분명 맞다.

서버도 살아 있다.

요청도 보낸다.

상대 서버도 정상이라고 한다.

그런데 안 된다.

왜 안 되는지조차 명확하지 않다.

브라우저에서는 되고 서버에서는 안 되고,로컬에서는 되는데 배포하면 안 되고,직접 요청하면 되는데 중간에 프록시 하나를 거치면 깨진다.

HTTP와 HTTPS,CORS,쿠키,리다이렉트,인증 토큰,방화벽,보안 정책,리버스 프록시,로드밸런서.

평소에는 존재조차 의식하지 않았던 것들이문제가 생기는 순간 하나씩 모습을 드러낸다.

그리고 그때 깨닫는다.

우리가 평소에 너무 당연하게 사용하던 인터넷은 사실 수많은 약속 위에서 겨우 작동하고 있었다는 것을.

개발자는 그 약속이 모두 지켜질 때는 빠르게 앞으로 나간다.

하지만 그중 단 하나가 어긋나면갑자기 탐정이 된다.

로그를 뒤지고,헤더를 비교하고,패킷의 흐름을 추적하고,문서를 읽고,설정을 바꾸고,다시 요청을 보내본다.

그리고 실패한다.

또 바꾼다.

또 실패한다.

AI에게 물어봐도 비슷하다.

코드 자체의 문제는 AI가 놀랄 만큼 빠르게 해결해 줄 때가 많다.

하지만 실제 시스템은 코드만으로 이루어져 있지 않다.

서버가 있고,네트워크가 있고,운영체제가 있고,클라우드가 있고,보안 정책이 있고,서로 다른 회사가 만든 인프라가 연결되어 있다.

AI가 제시한 해결책이 논리적으로 맞아도실제 환경에서는 안 될 수 있다.

그래서 결국 사람이 직접 하나씩 확인해야 한다.

“여기까지 요청이 도착했나?”

“이 헤더는 어디서 붙었지?”

“중간에서 누가 이 값을 바꿨지?”

“왜 이 서버만 응답이 다르지?”

그렇게 시스템 전체를 머릿속에 올려놓고원인을 좁혀나간다.

이 과정이 정말 힘들다.

몇 시간 동안 아무것도 만든 것 같지 않은 날도 있다.

화면 하나 추가하지 못했고,기능 하나 완성하지 못했고,겉으로 보기에는 어제와 달라진 것이 아무것도 없다.

그런데 하루 종일서버 두 대가 서로 제대로 대화하게 만드는 데 시간을 썼다.

개발을 모르는 사람이 보면“그게 그렇게 오래 걸릴 일인가?” 싶을 수도 있다.

개발자 본인조차 가끔 그렇게 생각한다.

그래서 더 괴롭다.

하지만 이런 문제를 하나씩 해결하면서조금씩 알게 된다.

소프트웨어를 만든다는 것은코드를 작성하는 것만을 의미하지 않는다.

서로 다른 수많은 시스템이 약속대로 움직이게 만드는 일이다.

그리고 시스템이 커질수록어려운 문제는 코드 내부보다오히려 시스템과 시스템 사이에서 더 많이 발생한다.

API와 API 사이.

서버와 서버 사이.

브라우저와 서버 사이.

애플리케이션과 인프라 사이.

내가 통제할 수 있는 것과통제할 수 없는 것의 사이.

바로 그 경계에서가장 골치 아픈 문제들이 태어난다.

그래서 잘 안 되는 날에는 정말 힘들다.

몇 시간을 붙잡고 있어도 답이 안 나오면내가 갑자기 개발을 못하게 된 것처럼 느껴지기도 한다.

그런데 이상하게도,

결국 하나씩 해결하고 나면그 전에는 보이지 않던 시스템의 구조가 보인다.

“아, 요청이 이런 식으로 흘러가는구나.”

“아, 이 계층에서 이런 일이 벌어지는구나.”

“아, 그래서 저 설정이 필요했던 거구나.”

문제가 나를 멈춰 세웠지만그 문제 때문에 시스템을 한 층 더 깊게 이해하게 된다.

아마 개발 실력이라는 것도이렇게 쌓이는 것 같다.

잘되는 코드를 많이 작성해서만이 아니라,

정말 안 되는 것을 끝까지 붙잡고 결국 되게 만들어본 경험으로.

그래도 힘든 건 힘들다.

오늘도 서버와 서버 사이 어딘가에서눈에 보이지 않는 무언가와 싸우고 있는 개발자들이 있을 것이다.

잘 안 보이고,성과도 바로 나타나지 않고,설명하기도 어려운 싸움.

그래도 결국 해결한다.

그리고 다음번에 같은 문제가 나타났을 때는예전보다 조금 덜 무섭다.

개발자는 그렇게보이지 않는 세계의 지도를 하나씩 그려간다.

이 글은 브런치 · 2026년 8월 9일에 처음 발행되었습니다
L
Lee · Lee의 청사진
Founder, MAEUM.io · 기술과 마음 사이
[email protected] 메일 →