티스토리 뷰
취직 이후 블로그나 자기개발은 내려놓고 지내다가, 최근 커리어나 공부 방향성에 대한 고민이 많아지며 2년만에 찾아오게 되었다. 앞으로 어떤 공부를 해야 할까, 지금 내가 하고 있는 방식이 맞을까, 개발자로서 계속 어떤 방향으로 성장해야 할까 같은 생각들이 머릿속에 계속 남아있었다.
사실, 이런 고민이 갑자기 생긴 것은 아니다. 회사 업무를 하면서도 계속 조금씩 느껴왔고, AI 에이전트가 빠르게 발전하는 모습을 보면서 더 크게 체감하게 된 것 같다.
불과 작년 이맘때까지만 해도 Claude MCP를 로컬에 연결해서 돌리는 것만으로도 꽤나 신기했다. "와 이런 것도 되네?" 정도의 느낌이었다. 회사 업무에 본격적으로 활용한다기보다는, 웹에 코드를 복사해서 붙여넣고 최적화 아이디어를 얻거나, 내가 생각한 방향이 맞는지 가볍게 확인하는 수준에 가까웠다.
그런데 지금은 완전히 다르다.
요즘은 내가 직접 코드를 한 줄 한 줄 구현한다기보다는, 여러 터미널에 작업을 나눠서 명령을 내려놓고 하나가 끝나면 그 결과를 검토하고, 다시 수정 방향을 잡아서 명령을 내리고, 또 다른 터미널에서 끝난 작업을 확인하고... 이런 과정을 반복하는 일이 많아졌다. 물론 모든 업무가 그렇다는 것은 아니지만, 적어도 개발을 대하는 방식 자체가 꽤나 많이 바뀌었다고 느낀다.
예전에는 "내가 코드를 얼마나 잘 구현하는가"가 중요한 비중을 차지했다면,
지금은 "AI 에이전트가 내놓은 결과물이 지금 상황에 맞는가"를 판단하는 능력이 더 중요해지고 있다는 생각이 들었다.
예전에는 구현 자체가 개발자의 가장 큰 무기라고 생각했다. 물론 지금도 구현 능력은 너무나 중요하다. 하지만 요즘은 구현만 잘한다고 끝나는 것이 아니라는 생각이 더 강하게 든다. 이 설계가 맞는지, 이 기술을 여기에 쓰는 것이 적절한지, 회사의 방향성과 맞는지, 기획적으로 봤을 때 지금 필요한 구현인지, 유지보수 관점에서 부담이 커지지는 않는지 등을 같이 판단해야 한다. ( 물론, 원래도 중요했지만 예전보다 더 중요하다고 생각한다는 의미이다. )
결국 AI 에이전트를 잘 쓰기 위해서는 내가 더 잘 알아야 한다는 결론으로 돌아오게 되었다.
오히려 모르면 더 못 쓴다
처음에는 조금 아이러니하다고 생각했다. AI가 코드를 대신 짜주는 시대가 오면 개발자가 덜 공부해도 되는 것 아닐까? 조금 극단적으로 말하면, 구현을 대신해주니까 나머지는 프롬프팅만 잘하면 되는 것 아닐까? 그런데 실제로 써볼수록 전혀 그렇지 않았다. 오히려 모르면 더 못 쓴다.
AI 에이전트는 굉장히 그럴듯한 답변을 준다. 문제는 그럴듯하다는 점이다. 틀린 방향으로도 그럴듯하고, 과한 설계도 그럴듯하고, 지금 상황에는 맞지 않는 기술 선택도 그럴듯하게 포장된다.
그러면 결국 그것을 걸러내는 사람의 역량이 중요해진다. 단순히 "이렇게 해줘"라고 말하는 것이 아니라, 왜 이 방향이 맞는지, 어떤 제약조건이 있는지, 어떤 부분은 건드리면 안 되는지, 어떤 기준으로 판단해야 하는지를 명확하게 알고 있어야 한다.
그러다 보니 코드 구현 능력보다 아키텍처, 설계, 기술 선택, 문제 정의 같은 것들이 더 중요하게 느껴졌다. 물론 구현 능력이 중요하지 않다는 이야기는 아니다. 구현을 모르면 설계도 공허해진다. 다만 예전처럼 구현 자체에만 매몰되면 안 되겠다는 생각이 들었다.
AI보다 사람이 싼 시대?
그런데 또 한편으로는 이런 생각도 든다. AI 도구들이 구독 방식에서 사용한 만큼 과금하는 방식으로 점점 넘어가면서 비용이 폭증한다는 이야기가 많이 나온다. 정확한 정책은 계속 바뀌고 있고, Claude도 어떤 정책은 다시 철회했던 것 같기는 한데 최신 기준까지 정확히 알고 있는 것은 아니다. 다만 방향성 자체는 어느 정도 느껴진다. 좋은 모델을 많이 쓰려면 결국 돈이 꽤 든다.
그러면 언젠가는 "AI보다 사람이 싼 시대"가 올 수도 있지 않을까라는 생각도 든다. 물론 이 표현이 조금 이상하게 들릴 수도 있다. 사람을 단순히 비용으로만 비교하고 싶다는 의미는 아니다. 다만 회사 입장에서는 항상 비용과 효율을 고민할 수밖에 없고, AI를 무한정 쓰는 것이 항상 정답은 아닐 수 있다는 의미이다.
꼭 사람이 싸서 쓴다는 느낌이 아니더라도, 결국 AI를 더 잘 쓰기 위해서는 사람이 더 잘 알아야 한다. AI를 잘 쓰기 위해서도 사람이 학습해야 하고, AI를 쓰지 못하는 상황에서도 사람이 판단해야 하며, AI가 만든 결과물을 책임지는 것도 사람이다.
그러면 개발자인 나는 무엇을 해야 하는가? 결국 내 자신이 계속 공부하고 발전해야 한다는 결론으로 돌아오게 되었다.
결국 다시 기초였다
그때 다시 떠오른 것은 기초였다. 조금 허무할 정도로 결국 기초였다. CS 기초, 운영체제, 네트워크, 데이터베이스, 자료구조, 알고리즘, 객체지향, 동시성, 분산 시스템 같은 것들 말이다. 예전에도 중요하다는 것은 알고 있었다. 취준할 때도 계속 봤고, 면접 준비를 하면서도 반복해서 봤다. 그런데 회사 업무를 경험하고, AI 에이전트를 실제로 사용해보고, 여러 문제를 해결해본 뒤에 다시 보니 느낌이 다르다.
예전에는 “면접에서 대답하기 위해” 공부했다면,
지금은 “판단하기 위해” 공부해야 한다는 느낌이다.
예를 들어 캐시 전략을 공부한다고 하면, 예전에는 캐시가 무엇인지, Redis를 왜 쓰는지, 캐시 무효화가 왜 어려운지 정도를 외우는 느낌이었다. 그런데 지금은 조금 다르다. 실제로 트래픽이 늘어나는 상황에서 어디에 캐시를 두는 것이 맞는지, DB 부하를 줄이려는 것인지 응답 속도를 줄이려는 것인지, 데이터 정합성은 어디까지 허용할 수 있는지, 운영 비용은 감당 가능한지 같은 것들을 같이 생각하게 된다.
MSA도 마찬가지이다. 예전에는 MSA라는 단어 자체가 멋있어 보였던 시기도 있었다. 하지만 지금은 오히려 더 조심스럽다. 분산 트랜잭션, 장애 추적, 배포 복잡도, 팀 구조, 운영 비용까지 같이 봐야 한다. 단순히 기술을 많이 안다고 좋은 설계가 되는 것이 아니라, 지금 상황에 맞는 선택을 하는 것이 더 어렵고 중요하다는 생각이 든다.
결국 기초는 단순히 오래된 지식이 아니라, 새로운 상황을 판단하기 위한 기준에 가깝다고 느꼈다.
그래서 강의를 샀다
그래서 최근 인프런에서 강의를 이것저것 샀다. 스프링부트로 직접 만들면서 배우는 대규모 시스템 설계, 캐시 전략, Spring Cloud 기반 MSA, Docker, Kubernetes, Redis, 분산 환경, 데이터베이스 설계, Java 성능 튜닝, Kafka, 코딩테스트 강의까지 꽤 많이 담아뒀다.

사놓고 보니 조금 웃기기도 했다. 이걸 다 언제 듣지? 라는 생각이 먼저 들었다 ㅋㅋ 특히 코딩테스트는 아직도 잘 모르겠다. 꼭 해야 하나? 해야 하는 것 같긴 한데, 진짜 하기 싫다. 예전에도 코딩테스트를 정말 못했고, 지금도 자신 있는 분야는 아니다. 그래도 자료구조와 알고리즘을 아예 놓고 가는 것은 말이 안 된다는 생각도 든다. AI 에이전트에게 일을 잘 시키기 위해서도 결국 문제를 쪼개고, 조건을 정리하고, 복잡도를 생각하는 능력이 필요하기 때문이다. 그래서 싫어도 조금씩은 해야 하지 않을까 싶다.
근데 인프런에 Hong 저분 강의가 좋아 보이긴 하더라. 썸네일이 묘하게 시선을 끌기도 하고, 주제들이 지금 내가 고민하는 부분과 많이 맞닿아 있었다. 대규모 시스템 설계, 캐시, Redis, 분산 트랜잭션, 트래픽 처리 같은 것들은 그냥 멋있어 보여서 듣고 싶은 것이 아니라, 실제 회사 업무를 하면서 언젠가 제대로 정리해야겠다고 느꼈던 부분이다.
강의를 다시 보는 이유
물론 강의만 미친 듯이 듣겠다는 이야기는 아니다. 오히려 강의만 듣는 공부는 조금 경계하고 있다. 예전에는 강의를 많이 들으면 공부를 많이 한 것 같은 기분이 들었다. 그런데 결국 직접 겪고, 삽질하고, 문제를 해결해보지 않으면 내 것이 되지 않는다는 것을 알고 있다.
최근 회사 업무를 하면서 스스로 하고 싶은 공부를 하기보다는, 그때그때 닥친 문제를 해결하는 시간이 많았다. 장애가 나면 원인을 찾고, 성능이 안 나오면 병목을 찾고, 요구사항이 바뀌면 구조를 바꾸고, 일정이 급하면 일단 돌아가게 만들었다. 그렇게 하루하루를 보내다 보니 공부를 하고 있다는 느낌보다는 버티고 있다는 느낌이 더 컸다.
그런데 돌이켜보면 그 과정도 경험치였다고 생각한다. 다만 그 경험들이 머릿속에서 잘 정리되지 않은 채로 쌓여있는 느낌이다. 그래서 지금 강의를 다시 보고 싶은 마음이 드는 것 같다. 완전히 새로운 것을 배우겠다기보다는, 내가 겪었던 것들에 이름을 붙이고, 흩어져 있던 경험을 정리하고 싶은 마음이다.
예전에 수능 수학 공부를 할 때 한석원 선생님의 알파테크닉이라는 강의가 굉장히 유명했다. 그때 알파테크닉은 기본 3회독은 해야 한다는 이야기가 있었다. 처음 볼 때와 두 번째 볼 때, 세 번째 볼 때 얻어가는 것이 다르기 때문이다. 당시에는 그냥 유명하니까 그런가 보다 했는데, 지금은 그 말이 조금 이해된다.
같은 내용을 보더라도 내가 어떤 경험을 가지고 있느냐에 따라 보이는 것이 달라진다.
김영한 선생님의 스프링 강의도 비슷하다고 생각한다. 취준생 때 처음 볼 때는 "아 스프링은 이렇게 동작하는구나" 정도였다. 프로젝트를 한 번 해보고 다시 보면 "아 그래서 이렇게 설계하는구나"가 보인다. 회사에서 실제 업무를 하다가 다시 보면 "아 이래서 실무에서는 이런 고민이 생기는구나"가 보인다.
결국 좋은 강의나 좋은 책은 한 번 보고 끝나는 것이 아니라, 내가 성장한 만큼 다시 다른 내용을 보여주는 것 같다. 나는 지금 그런 걸 얻고 싶다.
개발에 대한 회의감
사실, 제일 큰 이유는 최근 개발에 대한 회의감이 조금 들었기 때문이다. 이 말을 쓰는 것도 조금 조심스럽다. 개발이 싫어졌다는 의미는 아니다. 여전히 문제를 해결하는 것은 재밌고, 내가 만든 것이 실제로 동작하는 순간의 기쁨도 있다. 그런데 어느 순간부터 “내가 지금 잘 성장하고 있나?”라는 질문이 계속 남았다.
회사 업무를 열심히 하고는 있는데, 내가 원하는 방향으로 성장하고 있는지 확신이 없었다. AI 에이전트는 점점 더 많은 일을 해내고 있고, 개발자의 역할은 계속 바뀌고 있는데, 나는 그 변화 속에서 어떤 사람이 되어야 하는지 잘 모르겠다는 생각이 들었다.
예전에는 그냥 열심히 하면 된다고 생각했다. 많이 구현하고, 많이 공부하고, 많이 기록하면 자연스럽게 성장할 것이라고 생각했다. 물론 그것도 맞다. 하지만 지금은 열심히 하는 것만으로는 부족하고, 어떤 방향으로 열심히 할 것인지가 더 중요하다고 느낀다.
AI가 발전할수록 단순 구현의 가치는 줄어들 수 있다. 하지만 문제를 정의하고, 좋은 방향을 판단하고, 복잡한 요구사항 속에서 균형을 잡는 능력은 오히려 더 중요해질 것 같다. 그리고 그런 능력은 하루아침에 생기지 않는다.
결국 기초 지식과 실무 경험, 그리고 계속 생각하는 습관이 쌓여야 한다.
다시 공부해보자
그래서 당분간은 다시 기초로 돌아가 보려고 한다. 운영체제, 네트워크, 데이터베이스, 자료구조, 알고리즘 같은 CS 기초를 다시 보고, 동시에 스프링, Java, 동시성, 캐시, 분산 시스템, 인프라 쪽도 조금씩 정리해보려고 한다. 예전처럼 면접 답변을 위한 공부가 아니라, 내가 실제로 더 나은 판단을 하기 위한 공부를 하고 싶다.
그리고 가능하다면 공부한 내용을 다시 블로그에 적어보려고 한다. 글을 쓰다 보면 내가 어디까지 알고 있고, 어디서부터 애매하게 알고 있는지가 드러난다. 예전에는 그 과정이 귀찮기도 했는데, 지금은 오히려 그런 정리가 필요하다고 느낀다.
요즘은 개발자가 코드를 잘 짜는 사람에서 끝나지 않는다는 생각을 많이 한다. 물론 코드를 잘 짜는 것은 기본이다. 하지만 좋은 개발자는 문제를 정확히 이해하고, 적절한 기술을 선택하고, 팀과 회사의 방향성 안에서 현실적인 해결책을 만드는 사람에 가깝다고 느낀다. AI 에이전트가 발전하면서 개발자의 역할이 줄어드는 것이 아니라, 어쩌면 더 본질적인 부분만 남게 되는 것일 수도 있다. 그렇다면 나는 그 본질적인 부분을 더 잘할 수 있는 사람이 되고 싶다.
결국 다시 기초이다
결국 다시 기초이다. 조금 돌아온 것 같지만, 이게 맞는 방향이라고 생각한다. 지금의 고민이 단순한 불안으로 끝나지 않고, 다시 공부하고 정리하는 계기가 되었으면 좋겠다.
요즘 개발에 대한 회의감이 들었던 것도 사실이지만, 이렇게 글을 쓰다 보니 아직은 더 잘하고 싶다는 마음이 남아있는 것 같다. 그러면 된 거 아닐까 싶다. 일단 사놓은 강의부터 하나씩 들어보자. 그리고 들으면서 예전의 나와 지금의 내가 무엇을 다르게 이해하는지 천천히 확인해보려고 한다. 이번에는 그냥 완강이 목표가 아니라, 내가 겪었던 경험들을 다시 정리하는 시간이 되었으면 좋겠다.
'Retrospect > 오늘의 일기' 카테고리의 다른 글
| [오늘의 일기] 자기 객관화 (4) | 2024.05.14 |
|---|---|
| [오늘의 일기] vscode 오류 잡으려고 난리 부르쓰 (3) | 2022.08.11 |
- Java 컴파일러 동작 원리
- flex box
- Java Compile time
- CPU execution time
- 코딩부트캠프
- JVM 실행원리
- flex align
- 컴퓨터 성능 지표
- flex vertical align
- Hotspot Compiler
- flex 수직정렬
- 자바 동적로딩
- JVM Runtime Data Areas
- 백엔드 데브코스
- string pool
- JVM ClassLoader
- 가변객체
- Java 실행원리
- 클라우드 기반 백엔드 데브코스
- JVM Execute Engine
- 프로그래머스
- JVM Memory Areas
- vscode 오류
- 프로그래머스 데브코스
- Dynamic Loading
- JVM
- wsl2 오류
- extension 다운 안됨
- JIT Compiler
- Runtime Constant Pool
- Total
- Today
- Yesterday