
소프트웨어 공학의 시작과 AI 시대까지소프트웨어가 왜 실패했는지, 어떻게 극복했는지,그리고 AI 시대에 소프트웨어 공학이 어떤 역할을 해야 하는지 배우는 과목소프트웨어는 어떻게 발전해 왔는가왜 소프트웨어 공학이 필요해졌는가AI 시대, 소프트웨어 공학의 역할하드웨어 중심

소프트웨어 개발 생명 주기기획부터 유지보수까지의 전 과정체계적인 개발을 위한 표준적인 절차즉, 소프트웨어를 어떻게 만들고, 어떻게 관리할 것인가를 정리한 틀진행 과정장점과 한계장점유지보수나 인수인계 관점에서 특히 강점을 가지는 방식일정과 예산 관리가 중요한 프로젝트에
예전 소프트웨어 개발 → 철저한 계획 중시 현대 소프트웨어 개발 → 기민한 대응 중시 > 폭포수 모델의 결함 시작부터 변화라는 가능성을 아예 차단하고 있음 변화가 심한 현대 비즈니스 환경에서, 경직된 폭포수 모델을 고집하는 것은 매우 위험한 것 애자일 모델 > 애자

우리가 코드를 쓰면 옆에서 오타를 찾아주거나, 다음 단어를 추천사람이 명확한 설계도를 주면 AI는 주니어 개발자의 역할을 수행하며, 전체 기능을 스스로 만들어줌사람의 역할은 <span style="background-color: >인간의 역할배포 승인AI의 역할기

AI가 최적의 결과물을 내놓도록 입력값(명령어)을 설계하고 다듬는 기술단순히 질문하는 것이 아닌 맥락(Context)을 설계하는 것P(Persona)역할 부여"너는 10년차 시니어 보안 전문가야"C(Context)맥락 제공"이 기능은 금융 앱의 로그인 화면에 들어갈거야

Vibe Coding > Vibe의 의미 개발자가 머릿속에 그린 의도(Intent), 맥락(context), 사용자 경험(UX)의 느낌을 의미함 > 정의(Defination) 전통적인 코딩이 어떻게(How) 구현할지 컴퓨터의 문법으로 명령하는 것이었다면, 바이브 코딩은

Git과 GitHub Git 내 컴퓨터에서 코드의 시간을 되돌리거나, 특정 시점을 기록하는 버전 관리 도구 인터넷 불필요 Working Directory Local Repository GitHub 타임머신을 타고 온 코드들이 모여 다른 사람들과 협업하는 클라우드 저장

여러 명이 동시에 작업할 때 발생하는 충돌(Merge Conflict)을 최소화개발 중인 불안정한 코드가 사용자에게 노출되는 것을 막아줌코드가 이동하는 교통 신호 체계를 만듦메인 코드에 영향을 주지 않고 작업을 할 수 있는 '안전한 작업실'기본 원칙메인(Main)에서
작업의 최소 단위를 티켓으로 만들어서 프로젝트를 관리하는 방식제목(title)작업의 성격과 핵심 내용을 한눈에 파악할 수 있도록 <span style="background-color: 배경 및 맥락(Context/Description)소스 코드만으로는 알 수 없는

1단계: 제품 명세서 작성 prd.md 작성 사람은 AI에게 기초적인 아이디어를 제공 AI는 기초적인 아이디어를 구체화하고, 요구사항을 논리적으로 정의 prd.md 파일을 완성할 수 있도록 상세한 가이드를 제공 2단계: 기술 설계서 작성 techspec.md (

Spec-Kit GitHub에서 공개한 오픈소스 툴킷 SDD를 실천할 때에 필요한 것들을 한 상자에 모아놓은 것 구성 요소 Specify CLI 프로젝트 초기 세팅 도구 프로젝트 폴더 구조 자동 생성 템플릿 모음 명세·계획·작업 표준 양식 명세서는 어떻게 생겨야 하
오늘의 핵심 질문 세션이 중단되고 다시 시작할 때, 매 단계마다 모든 문서를 다시 읽어야 하나? 정답은 필요한 것만 선택적으로 읽기 단, 새로 읽는 파일은 선택적이지만, 이미 읽은 내용은 컨텍스트에 누적됨 AI는 정말 "기억"하는가? AI는 기억하지 않는다 정답은 파일을 AI의 메모리처럼 쓴다 문서 계층과 참조 방향 
Q1. 한 세션에서 단계가 진행될수록, \*\*<span style="background-color: Q2. 세션이 끊기고 새 세션을 시작하면 <span style="background-color: \*\*\*이전 단계에서 진행한 모든 컨텍스트를 다시 읽음.

TechSpec Technical Specification, 기술 설계 문서 정의 기획된 기능을 구현하기 위해 필요한 아키텍처, 데이터 구조, 알고리즘, 인프라 구성 등을 상세히 기록한 문서 PRD에서 정의한 기능들을 실제로 컴퓨터가 이해하고 실행할 수 있도록 기술적

AI 코딩의 컨텍스트 부패를 해결하는 프레임워크01\. 문제컨텍스트 부패와 바이브 코딩의 한계02\. GSD 개념GSD란 무엇이고 어떤 철학으로 만들어졌는가?03\. 3대 메커니즘핵심 매커니즘 3가지가 무엇인가?신선한 컨텍스트, XML, 마크다운 파일04\. 5단계 워

메인 AI가 호출하는 독립된 작업 단위의 AI 인스턴스자기만의 fresh 컨텍스트<span style="background-color: 한 가지 작업에 집중끝나면 결과만 보고다른 서브와 <span style="background-color: - <spa
Git 환경 설정 프롬프트 인베스트(INVEST) 원칙 독립성 (Idependent) 각 티켓은 가급적 다른 티켓에 의존하지 않고 독립적으로 구현 및 배포 가능해야 함 AI가 특정 기능에만 집중하여 병목 현상 없이 코드를 생성할 수 있도록 함 협상가능성 (Neg

과거 개발의 형태는 운영팀과 개발팀이 <span style="background-color: 개발팀(Dev)속도(speed) 운영팀(Ops)안정성(Stability)<span style="background-color: → 서비스 지연 발생개발자의 로컬 환경
CI (Continuous Integratino) 역할 코드 품질 검사 스타일 규칙 위반 보안 취약점 각 함수/모듈 모듈끼리의 연동 4가지 검사 1) 린트 ESLint를 통한 코딩 스타일 검사 2) 보안 npm audit를 통한 보안 취약점 검사 3) 단위 테스트
Job 1.: Docker 빌드 + E2E 테스트Job 2.: GHCR에 이미지 등록Job 3.: GitHub Pages 배포코드 push → 도커 이미지를 빌드해서 E2E 통과→ 컨테이너 레지스트리 (GHCR)에 이미지 올리기→ 정적 파일은 GitHub Pages로

깃허브에서 제공하는 자동화 플랫폼개발자가 코드를 올리거나 변경하는 <span style="background-color: 미리 정의해둔 작업들을 자동으로 실행깃허브 액션을 실행시키는 주요 이벤트 트리거로는, push, pull request, web hook 등이
심슨 가족의 어린이 캐릭터 Ralph Wiggum에서 유래화려한 프롬프트 엔지니어링이나 복잡한 에이전트 구조 없이<span style="background-color: 같은 프롬프트를 반복한다.(PROMPT.md를 그대로 매번)AI는 매번 <span styl

린트가 무엇인지왜 필요한지무엇을 잡는지ESLint 사용법옷에 붙은 보푸라기옷에 붙은 보푸라기처럼 떼어내야 할 <span style="background-color: 코드의 맞춤법 검사기실행하지 않고 <span style="background-color: 1)

왜 보안 도구가 필요한가npm audit 이해하기Trivy 이해하기두 도구 함께 사용하기Log4j자바에서 거의 모든 회사가 쓰던 <span style="background-color: 해당 라이브러리에 해커가 한 줄의 메시지만 보내도 서버를 통째로 빼앗을 수 있는

테스트 종류를 <span style="background-color: 아래로 갈수록 <span style="background-color: 각 계층은 <span style="background-color: 속도와 비용하위 테스트일수록 <span s

마이크로소프트가 개발한 <span style="background-color: 단일 코드 베이스하나의 코드로 모든 브라우저 제어엔진 지원크롬, 파이어폭스, 사파리 완벽 지원다국어 지원TypeScript JavaScript, Python, Java, .NET사용자가

애플리케이션과 <span style="background-color: 하나의 표준 단위(컨테이너)로 묶는 플랫폼컨테이너 = 코드 + 런타임 + 라이브러리 + 시스템 도구 + 설정리눅스 커널의 네임스페이스/cgroup 기술로 프로세스를 격리해 가볍고 빠르게 실행핵심