hello

우리가 알던 고전적 소프트웨어 엔지니어링은 죽었다

image

Product Engineering 시대와 AI 개발 패러다임 변화

1. 패러다임 변화: 코드 작성의 목적이 달라졌다

1972년 Dennis Ritchie가 C 언어를 발표한 이후, 소프트웨어 산업은 오랫동안 다음 요소에 집중해 왔다.

  • 코드 효율성 (시간·공간 복잡도)
  • 코드 길이 및 생산성
  • 가독성과 유지보수성

그러나 AI 시대가 시작되면서 기존 패러다임이 근본적으로 변하고 있음.

John Carmack은 “최고의 개발 도구는 곧 핸드코딩이 아닌 AI 코딩이 될 것”이라고 말했으며, 이는 개발자가 더 이상 코드 작성에 시간을 쓰기보다:

  • 제품 역량에 집중하고
  • 제품을 이해하고
  • AI를 통해 최고의 개발 환경을 구성하는 것

이 더 중요한 시대가 도래했음을 의미한다.

➡️ 이로써 전통적 소프트웨어 엔지니어링의 시대가 저물고, Product Engineering 시대가 시작됨.


2. Product Engineer란?

Product Engineer(PE) 는 _제품 관리자_와 _풀스택 엔지니어_의 특성을 결합한 역할이다. 제품 생명주기를 처음부터 끝까지 책임지고, 스스로 제품 성장을 만들어가는 사람이기도 하다.

주요 특징

  • AI 네이티브 AI/LLM을 보조가 아닌 기본 개발 도구로 사용.
  • T자형(육각형) 인재 강한 엔지니어링 역량 + 제품, 디자인, 데이터 전반의 폭넓은 이해.
  • 결과 중심 유지율, 전환율, 활성 사용자 등 핵심 KPI를 직접 책임.
  • 높은 자율성 아이디어 → 기획 → 설계 → 개발 → 배포를 거의 독립적으로 수행.

3. Product Team 구조

전통적인 방식에서는 프론트엔드·백엔드·인프라 등 기술 스택 중심 분업이었다. 그러나 Product Engineering 팀은 완전히 다르다.

Product Team의 특징

  • 스택이 아니라 제품·기능 단위(feature squad) 로 팀 구성
  • 한 명의 PE가 한 기능(온보딩/결제/알림 등)을 처음부터 끝까지 책임
  • 팀원 간 역할 이동이 자유롭고 극도로 린(Lean)한 팀 운영 가능
  • 팀은 크게 두 파트로 구성됨:
    • Product 파트: 제품 방향·전략·디자인·시장 이해
    • Engineer 파트: 실제 구현 및 기술적 실행

4. Product Engineer의 역할

4.1 Product 파트 역할

AI가 전사적으로 활용되는 시대에서 Product Engineer는 PM, 기획자, 마케터 역할까지 수행한다.

주요 Product 역량

  • 제품 아이디어 발굴 핵심 기능·가치·사용자를 정의
  • 마인드맵 작성 및 브레인스토밍
  • 디스커버리(Discovery) 고객 니즈 탐색, 시장 기회 조사
  • 기능 우선순위 결정
  • 시장 분석 & 사용자 리서치
  • 제품 디자인(UI/UX) 인터랙션 설계 및 사용자 테스트 포함

AI의 역할:

  • 인간의 창의성은 대체 불가
  • 대신 AI는 "이미 존재하는 문제 패턴 분석"과 "반복적 아이디어 개선"에 강함
  • 인간이 제품 비전을 정의하고, AI는 그 비전을 구체화하는 구조가 최선

4.2 Engineer 파트 역할

Engineer 영역은 AI 활용 비중이 가장 큰 분야이다. 목표는 Simple, Lovable, Complete 제품을 만드는 것.

주요 기술 역할

  • 소프트웨어 아키텍처 구조적 선택, 패턴 결정 등 미래 비용을 좌우하는 결정 수행
  • 시스템 설계 (System Design)
  • 프론트엔드 개발
  • 백엔드 개발
  • 데이터 모델링 및 DB 설계
  • 품질(테스트/모니터링/장애 대응)

5. Planning: AI를 잘 쓰기 위한 핵심 단계

AI가 제대로 동작하려면 컨텍스트(요구사항·의도)가 명확해야 한다. 즉, AI에게 전달할 명세서를 잘 만드는 것이 개발 생산성을 좌우한다.

예시(“Cline” 프로젝트 가이드라인 형태)

# 프로젝트 가이드라인

## 문서화 요구사항
- 기능 수정 시 /docs 업데이트
- README.md 최신화
- 변경점은 CHANGELOG.md에 기록

## 아키텍처 결정 기록 (ADR)
- 주요 변경 발생 시 /docs/adr에 ADR 작성
- 템플릿: /docs/adr/template.md

## 코드 스타일
- OpenAPI Generator 사용
- axios 기반 TypeScript 템플릿
- 상속보다 컴포지션
- Repository 패턴 사용
- 에러 핸들링 패턴 통일

## 테스트
- 비즈니스 로직: 단위 테스트
- API: 통합 테스트
- 핵심 사용자 흐름: E2E 테스트

6. Software Architecture

정의

한 번 결정되면 바꾸기 어려운 소프트웨어의 뼈대를 설계하는 일. (아키텍처 패턴, 의존성, 모듈 구조, 프로토콜, 확장 전략 등)

AI의 역할

  • 아키텍처 패턴 비교
  • 시스템 다이어그램 생성(Mermaid 등)
  • ADR 초안 작성
  • 가정에 대한 스트레스 테스트

인간의 역할

  • 도메인 전문성
  • 맥락 기반 판단
  • 트레이드오프 결정

➡️ AI 시대에도 아키텍처 역량은 더욱 인간 중심 기술로 남을 것


7. System Design

AI가 강점을 보이는 영역 중 하나.

System Design 구성 요소

  • API 및 서비스 경계 정의
  • 데이터 모델링
  • 비동기 워크플로우 설계
  • 상태 기계(State Machine) 구성
  • 장애 복구/에러 핸들링
  • 설계 문서 작성
  • 엣지 케이스 시뮬레이션

AI의 장점:

  • 명확한 기능 명세를 주면 설계 초안 생성 가능
  • 복잡한 흐름의 엣지 케이스 탐지
  • 상태 기계·API 인터페이스 설계 보조
  • 반복적 개선에 적합(“AI를 주니어 엔지니어로 활용하라”)

8. Frontend Engineering

AI가 가장 잘하는 영역 중 하나.

AI를 통한 프론트엔드 효율화

  • React/JS/Tailwind 등 풍부한 레퍼런스 기반
  • 브랜드 가이드라인(Figma 캡처 포함)을 AI에게 제공 → 일관된 UI 코드 생성
  • 이후 개발자가 리뷰하며 개선하는 방식 추천

9. Backend Engineering

AI가 잘하는 부분

  • 명확한 요구사항이 있을 때 API·비즈니스 로직 작성
  • 데이터베이스 스키마 설계 및 최적화
  • 반복적 비즈니스 로직 생성

활용 팁

  • Import documentation 프로젝트 문서를 통합하면 환각이 크게 줄어듦
  • Workspaces 활용 프론트+백엔드 전체 맥락을 AI에 제공하면 이해도 상승

10. Product Engineer를 위한 실전 팁

1) 항상 최신 모델을 사용하라

  • 최신 모델일수록 추론력·정확성·맥락 이해도가 높음.

2) Thinking Mode 활용

  • 답변 품질이 눈에 띄게 향상됨.

3) 매우 구체적으로 프롬프트 작성

예:

SignUp.tsx 폼에서 ‘Submit’를 클릭하면 sign_up_started 이벤트를 
trackEvent() 함수로 호출하고, email domain을 property로 포함하고,
debounce하여 중복 호출 방지하도록 구현해줘.

4) 시각적 맥락 제공

  • 스크린샷, Figma, 에러 로그 이미지 등 활용 → 디버깅 정확도 증가

5) 작은 단위 반복

  • 기본 기능 구현 → 개선 반복

6) 호기심 유지

  • 커뮤니티에서 새로운 AI 활용 팁을 지속적으로 탐색

11. AI 시대 엔지니어가 길러야 할 기술

1) CLI 도구 숙련도 (특히 Git)

  • AI가 생성한 코드 오류를 빠르게 되돌리기 위해 필수

2) 기본 엔지니어링 능력

  • 모듈화, DRY 원칙, 네이밍 센스 등
  • AI가 이를 완전히 대체하지 못함

3) 커뮤니케이션 능력

  • 명확한 프롬프트를 쓰는 능력은 최강의 능력
  • 팀 협업에서도 필수

12. AI 시대의 조직 변화

  • 개발 업무가 저렴하고 범용화될수록 “결과를 전략적으로 전달하는 능력”이 중요해짐
  • PM/엔지니어 구분이 흐려지고 제품 중심 포드 팀 구조가 확산
  • PE + AI 코파일럿으로 구성된 초린(ultra-lean) 팀이 새로운 표준이 될 가능성 높음
  • 전통적인 프론트/백엔드/인프라 팀은 사라지고 제품 기능 중심 구조가 대세

맺음말

AI는 개발 패러다임을 근본적으로 바꾸고 있으며, 이 변화 속에서 Product Engineer는 가장 영향력 있는 역할로 부상하고 있습니다.

  • AI를 잘 활용하는 능력
  • 제품을 처음부터 끝까지 책임지는 역량
  • 전략과 기술을 모두 다루는 능력

이 세 가지가 앞으로의 엔지니어를 결정짓는 핵심이 됩니다.

Read more

TCP 공부하기

TCP(전송 제어 프로토콜) 개요 TCP는 불안정한 네트워크 환경에서도 신뢰성 있고 순서가 보장된 데이터 전송을 가능하게 하는 핵심 인터넷 프로토콜이다. IP가 호스트 간 패킷 전달만을 담당한다면, TCP는 포트 기반 프로세스 간 통신, 오류 복구, 재전송, 순서 제어를 제공한다. 흐름 제어와 혼잡 제어를 통해 TCP는 수신 버퍼와 네트워크 대역폭의 고갈을 방지한다.

By JHL

GitLab에서 제작한 GitOps 초보자 가이드

소개 소프트웨어 애플리케이션의 복잡도가 증가함에 따라 인프라에 대한 요구도도 함께 증가하고 있습니다. 인프라 팀은 다양한 서비스를 빠르고 안정적으로 제공해야 하지만, 인프라 구축은 여전히 수동 프로세스에 의존하는 경우가 많습니다. 이 문제를 해결하기 위한 핵심 접근 방식이 인프라 자동화이며, 그중 하나가 GitOps입니다. 1. 인프라 자동화의 필요성 * 애플리케이션 개발은 CI/CD로 자동화되었지만 인프라

By JHL

Builder.AI 의 몰락

한때 15억 달러의 가치를 인정받으며 AI 혁신의 선두주자로 불렸던 영국 스타트업 Builder.ai가 충격적인 진실과 함께 파산 위기에 직면했습니다. 마이크로소프트와 소프트뱅크 같은 거대 기업들로부터 4억 4,500만 달러라는 천문학적 투자를 받았던 이 회사가 어떻게 이런 상황에 이르게 되었는지, 그리고 그 뒤에 숨겨진 충격적인 진실을 파헤쳐보겠습니다. 화려했던 시작: "AI가 모든

By JHL