2026-01-16
1일 1아티클
Addy Osmani (구글 엔지니어)
소프트웨어 엔지니어링의 변화 (1)
배경
- AI 코딩 도구의 진화 (단순 자동 완성 제공 → 자율적 개발 작업 실행 가능한 에이전트)
- 기업의 효율성 추구 원칙으로의 변화
- 수익성 > 성장
- 경력 > 신입
- 더 나은 도구를 갖춘 소규모 팀 선호
- 주니어/시니어 개발자, 스킬, 역할, 전문가/일반 전문가, 교육 5가지 핵심 영역 대응 전략 제시
주니어/시니어 개발자
- 두 가지 미래 예측
- AI의 초급 수준 작업 자동화 → 주니어 개발자 필요성 급감 (비관적 시나리오)
- 소프트웨어의 모든 산업 확산 → 반등 가능성 (낙관적 시나리오)
- 비관적 시나리오의 장기적 위험성
- 오늘의 주니어 엔지니어는, 내일의 시니어 엔지니어 및 기술 리더임
- 현재 주니어 엔지니어 양성 시스템의 차단 → 5~10년 안에 리더십 공백 발생
서서히 붕괴하는 현상: 후계자 양성을 중단하는 생태계
- 대응 전략
- 주니어 개발자
- AI 활용 능력 및 다재다능함 키우기 (주니어 개발자 1명과 AI가 소규모 팀 수준의 결과물을 낼 수준이 된다는 것을 보이기)
- AI 에이전트 기반 더 큰 기능 개발하되, 가능한 모든 코드 라인을 이해 및 설명 가능해야 함
- AI가 쉽게 대체할 수 없는 역량에 집중 (소통 능력, 문제 분석 능력, 도메인 지식)
- QA, DevRel, 데이터 분석 등 관련 직무를 진입점으로 고려
- 시니어 개발자
- 주니어 개발자의 감소 → 단순 반복 작업 처리 필요, 반복 작업은 자동화 활용
- 본인의 코드뿐만 아니라, 팀 전체의 생산성 향상을 고려해야 함
- 주니어 개발자
스킬
- 두 가지 미래 예측
- AI가 대부분의 코드 작성 → 핵심 프로그래밍 기술 퇴보
- 인간 개발자들의 감독 집중 → 중요성 증가
- 개발자의 84%가 AI 지원 정기적으로 사용
- 필요한 기술 : 알고리즘 구현 → AI에게 올바른 질문을 주고 결과를 검증하는 능력
- AI가 80%의 일상 업무 처리 동안, 인간은 가장 어려운 20%에 집중
- 아키텍처 설계, 복잡한 통합, 창의적 디자인, 예외 상항 처리, etc.
- AI의 보편화 → 심층적 지식의 무효화가 아님, 오히려 인간의 전문성을 중요하게 함
- 대응 전략
- 주니어 개발자
- AI를 학습 도구로 활용할 것, 의존 X
- AI 코딩 에이전트가 제안하는 작동 원리에서 약점 파악 (비판적 시각)
- AI 도우미 비활성화 후 가끔 핵심 알고리즘 A-Z 직접 작성 → AI가 작성한 코드와 비교
- 엄격한 테스트 습관 (단위 테스트 작성, 스택 트레이스 읽기, 디버거 익숙해지기)
- AI가 따라할 수 없는 보완적 기술 심화 (시스템 설계, 사용자 경험에 대한 직관, 동시성 추론)
- 시니어 개발자
- 품질과 복잡성의 수호자로서의 역할 수행
- AI 생성 코드 취약점 관련 최신 정보 지속적 파악
- AI 사용의 허용 영역 / 수동 검토 필수 영역 명확한 정의
- 소프트 스킬, 다양한 도메인 지식 투자
- 주니어 개발자
역할
- 두 가지 미래 예측
- 제한적인 감사 (AI 생성 코드 감독) 로 축소 → 개발자의 창의적 책임 축소
- AI 기반 시스템 설계 및 관리하는 핵심 조정자 역할로 확장 → 기술적, 전략적, 윤리적 책임 결합한 고도의 조정자로 진화
- 기업들이 AI를 어떻게 통합하는가에 달린 문제
- AI를 노동력 대체 수단으로 봄 → 개발팀 규모 축소, 자동화 시스템 운영 수준
- AI를 팀 역량 강화 수단으로 봄 → 개발팀 규모 유지, 각 엔지니어에게 더 확장된 프로젝트 부여
- 대응 전략
- 주니어 개발자
- 코딩 외의, 감시/관리자 역할에 필요한 다양한 기회 탐색 (TC 작성, CI 파이프라인, 모니터링, etc.)
- 시스템적 사고방식 향상 (구성 요소들의 상호작용, 잘 설계된 API, etc.)
- 선배들에게 ‘제 코드가 제대로 작동하나요?’ 가 아닌, ‘제가 고려해야 할 사항들을 제대로 고려했나요?’ 라고 질문하기
- 시니어 개발자
- 리더십, 아키텍처 책임에 적극 참여
- AI 및 주니어 팀 구성원이 따라야 하는 표준, 프레임워크 정립
- 다른 사람 및 시스템의 코드를 신속하게 평가하는 능력, 핵심적 피드백 제공 능력 연마
- 프로토타입 제작, 해커톤 참여, 신기술 연구 → 창의성 향상 → 코더를 넘어 시스템 운영을 이끄는 지휘자로 성장
- 주니어 개발자
오늘 배운 것
- 역할 분담 완료
- 초기 설정, 엔티티 개발
내일 할 일
- 사용자 정보 RUD