Showing Posts From

코파일럿

코파일럿 쓰다 보니 뇌가 굳어가는 느낌

코파일럿 쓰다 보니 뇌가 굳어가는 느낌

코파일럿 쓰다 보니 뇌가 굳어가는 느낌 출근한다. 모니터를 켠다. 첫 번째는 Copilot에게 물어본다. "이 함수 좀 짜줄래?" 한 줄 치자. 나머지는 알아서 완성된다. 편하다. 정말 편하다. 근데 언제부턴가 이상했다. 손가락이 움직이지 않는 게 아니라, 뇌가 움직이지 않는 느낌. 알고리즘을 직접 짜본 지가 너무 오래됐다. 손으로 손으로 손으로 짜다가, 어느 순간 AI를 손으로 쓰게 됐다. 손은 여전히 움직이는데, 그 안의 뭔가가 굳어가고 있다. 편함의 대가 Copilot을 쓰기 시작한 건 언제였을까. 정확히 기억 안 난다. 어느 날부턴가 슬랙에 뜬다. "Copilot이 개발 속도를 40% 올린다." 누군가 공유한 아티클. 그 다음 달엔 회사에서 라이선스를 산다. "좋은 도구 써라." 경영진이 말한다. 처음엔 신기했다. 테스트 코드를 쓸 때 "이런 경우도 추가해줄래?"라고 치면, AI가 케이스를 생각해낸다. 반복문을 한 줄 치자. 나머지 비즈니스 로직을 자동 완성한다. SQL 쿼리. 정규식. 리팩토링. 다 된다. 업무 속도는 정말 빨라졌다. 근데 이상하다. 퇴근해서 개인 프로젝트를 하려니까, 손가락이 느렸다. 전처럼 빠르게 알고리즘이 그려지지 않았다. 예전엔 문제를 보면 머릿속에서 자동으로 로직이 떠올랐다. 지금은? 먼저 Copilot을 켜본다. 그러다 보니, 켜지 않으면 손가락이 떨린다. 안내 문장이 필요하다. AI 없이는 코드를 못 쓰고 있었다.편함이 능력을 갉아먹는다는 걸, 정말 따끔하게 느낀 건 이런 순간이다. 회의에 들어간다. 기획자가 새 기능을 설명한다. "이 로직에 문제가 있는 거 같은데?" 기획자가 묻는다. 아차. 내가 봐야 한다. 근데 뭐가 문제인지 모르겠다. 그냥 피곤했다. 어차피 Copilot에 물어보면 나올 것 같은데, 회의 테이블에서 그럴 수도 없고. 그래서 그냥 "네, 확인해볼게요"라고 한다. 이전 나라면? 5초 만에 봤을 것 같은데. 손으로 짚고 넘어간 일들 코파일럿 이전에, 나는 개발자였다. 처음 6개월은 for 루프도 맨 손으로 짰다. 제대로 짜지도 못했다. 버그가 있었다. 힘들었다. 근데 그 과정에서 뭔가 배웠다. 메모리가 어떻게 돌아가는지, 스택과 힙이 뭔지, 왜 이 알고리즘은 O(n²)이고 저 알고리즘은 O(n log n)인지. 손이 아팠지만, 뇌는 살아 있었다. 매번 같은 실수를 했다. loop 변수를 초기화 안 하고 2시간 헤맸다. SQL에서 NULL 처리를 빼먹고 데이터 수천 개를 날렸다. Array indexing으로 off-by-one error를 낸 게 5번 이상. 고통이었다. 근데 지금 생각해보니, 그 고통이 내 손가락에 박혀 있었다. 6년 경력이면, 반복문은 눈감고도 짠다. 캐싱 로직도. 동시성 처리도. DB 인덱싱도. 손가락이 기억한다. 뇌가 기억한다. 근데 Copilot을 키자. 손가락이 게을러진다. 첫 줄만 치면 나머지는 AI가 한다. 내 손은 '검수'만 한다. 그게 좋은 건가? 처음엔 그렇게 생각했다. "어차피 검수 권한을 가진 개발자가 필요하지 않아? 누군가는 AI가 짠 코드를 보고 '오케이'하는 일을 해야 하잖아." 6개월 지났다. 검수 능력도 떨어진다. 자동완성의 함정요즘 하루 일과. 아침 8시: 슬랙 확인. 팀장이 "어제 그 PR 머지했어?" 질문. 머지해야 하는 4개의 PR이 있다. 8시 10분: 첫 번째 PR 열기. 코드 40줄. "어? 이게 뭐지?" 한 줄씩 읽는다. Copilot이 짠 코드다. 주니어가 Copilot으로 짰다고 했다. 로직은 맞는 것 같다. 코드 스타일도 깔끔하다. 근데 뭔가 불안하다. 이전 나라면? 30초 만에 봤을 것 같은데, 지금은 2분이 걸린다. 3분. 결국 "좋습니다" 버튼을 누른다. 정확히 봤는지 모르겠다. 시간이 부족했다. 슬랙 알림이 9개다. 마침표 같은 게 없다. 처음부턴 이상했다. 알고리즘을 정확히 이해하지 못한 채 코드를 머지하는 게 맞나? 이런 일이 쌓인다. 한 달 지난다. 내가 안 짠 코드 500줄을 머지한다. 다 맞다. AI가 짠 거니까. 근데 그 과정에서 나는 뭘 했나? 어차피 검수만 했다. 정확히는, 검수하는 척했다. 중요한 건 이 부분이다. 검수를 하려면 원본 코드를 이해해야 한다. 원본을 이해하려면 손으로 짜본 경험이 필요하다. 손으로 짜본 경험이 없으면? 그냥 "문법 에러는 없는 것 같은데" 수준의 검수만 가능하다. 그런데 버그는 문법 에러에서 안 나온다. 6년이 5분 만에 녹는다아내가 물었다. "요즘 뭐해? 자꾸 한숨 쉬는데?" "그냥... 6년을 뭔가 버린 것 같아." "뭘?" "손가락. 뇌. 뭔가." 아내가 웃었다. "넌 아직도 개발자 잘하는데?" 맞다. 기술적으로는 떨어지지 않았다. 그냥... 무언가가 휴면 상태에 들어간 것 같다. 회사에선 개발 속도가 40% 올랐다고 좋아한다. 퍼포먼스는 올랐다. 근데 뭔가 빠졌다. 내가 개발을 '하고' 있지, '생각하고' 있지는 않다. 예를 들어보자. 새로운 기능이 들어온다. "유저가 업로드한 파일을 검증해야 해요." 예전 나: 요구사항을 정리한다. 파일 포맷은? 크기는? 보안은? 뭘 검증해야 하나? 어떤 알고리즘으로? 메모리는 괜찮나? 동시성은? 구현까진 시간이 걸린다. 2일. 3일. 근데 그 과정 모두가 내 거다. 지금 나: 요구사항을 가볍게 정리한다. "파일 검증이요." 컨트롤 + 스페이스. Copilot이 나머지를 한다. 2시간. 끝. 근데 정말로 최적의 구현인지 모르겠다. 어쨌든 작동한다. 일이 빠르다. 진짜로. 근데 성장이 없다. 이게 내가 느낀 진짜 무서움이다. 연봉이 안 올라도, 리뷰가 안 좋아도 괜찮다. 근데 뇌가 안 자라는 게 무서웠다. 손가락도. 뭐가 필요한 의식이 없어진다. "이 문제는 어떻게 풀지?" 하는 순간의 설렘. "아, 이렇게 풀면 되는구나"하는 쾌감. 그게 없다. 이제 건 그냥 "Copilot이 뭘 제시할까" 호기심뿐이다. AI가 짜고, 내가 본다 슬랙 메시지가 뜬다. 팀장이다. "다음 스프린트에 오거 인증 추가할 건데, 검토 좀 해줄래? 난 이 분야 약하거든." 오거 인증. 내가 2년 전에 짰던 거다. 코드를 오픈해본다. 아, 내가 짠 맞다. 손으로 한 줄 한 줄 짠 거다. 댓글도 있다. "여기서 state를 토큰에 저장하는 이유는..." 내가 쓴 댓글이다. 그 당시 나는 뭘 했을까. OAuth 2.0 스펙을 읽었다. 2시간. state 파라미터가 왜 필요한지 이해하려고. redirect_uri 검증. PKCE flow. 각 단계마다 공격 벡터. 머릿속으로 그렸다. 손가락으로 짰다. 지금은 뭘 할까. Copilot을 켜겠지. "OAuth 2.0으로 유저 인증해줄래?" 15초. AI가 완성한다. 스펙을 안 읽어도 된다. 동작하니까. "이거 괜찮나?" 팀장이 물어본다. "네, 괜찮습니다." 내가 정말로 확인했나? OAuth 스펙을 다시 읽고 본 거? 아니다. 그냥 "AI가 했으니까 괜찮겠지" 수준. 근데 뭔가 불안하다. 이전에 짠 코드를 보니까, 더 좋은 구현이 있을 수도 있겠다는 생각이 든다. 근데 확인할 여력이 없다. AI가 한 거니까 그냥 그대로 둔다. 결과는? 코드는 '작동한다'. 그런데 2년 뒤에 버그가 터진다면? 그건 내 책임인가, AI의 책임인가? 뇌의 근육 일주일에 한 번, 점심시간에 개발자 커뮤니티를 본다. "AI 시대에 개발자는 검수하는 직업이 되는 건가?" 이 질문이 자주 올라온다. 댓글들을 읽는다. "아니다. 고차원의 문제는 인간만 풀 수 있다." "근데 고차원의 문제도 AI가 곧 풀 수 있겠지?" "그래도 뭔가 인간의 직관이 필요할 거야." "... 모르겠다. 그냥 스킬업을 하자." "스킬은 뭘 해?" "음... 분야 전문성?" 질문이 답이다. 아무도 모른다. 그래서 나도 준비한다. 기획으로 전환할 준비. 코딩 말고 사용자를 생각하는 일. 알고리즘이 아닌 비즈니스. 손가락이 아닌 머리로 하는 일. 근데 이게 정답인지도 모르겠다. 기획도 AI가 잘하니까.뇌가 굳어가는 느낌. 저건 느낌이 아니라, 정말인 것 같다.