[{"data":1,"prerenderedAt":780},["ShallowReactive",2],{"post-document:\u002Fdevops\u002Fagile\u002F2026\u002F08\u002F26\u002FAgile1\u002F":3},{"id":4,"title":5,"body":6,"categories":766,"date":768,"description":16,"extension":769,"image":770,"key_concepts":770,"last_modified_at":770,"legacyPath":771,"meta":772,"navigation":774,"part":770,"path":775,"published":774,"robots":770,"seo":776,"series":770,"stem":777,"strengths":770,"summary":770,"tags":778,"tradeoffs":770,"__hash__":779},"posts\u002Fposts\u002FDevOps\u002FAgile\u002FAgile1.md","Agile 개요, 왜 필요한가?",{"type":7,"value":8,"toc":741},"minimark",[9,13,17,25,30,33,44,47,50,60,64,69,83,89,92,96,148,151,160,163,166,174,178,261,265,269,350,354,360,415,419,469,473,476,481,484,488,526,530,536,540,578,582,585,589,664,667,671,717,724,728,735],[10,11,5],"h1",{"id":12},"agile-개요-왜-필요한가",[14,15,16],"p",{},"AI 서비스가 어떻게 준비되고, 그게 사용자에게 제공되는지 알아야 한다.",[14,18,19,20,24],{},"소프트웨어는 결국 이해관계자에게 필요한 기능과 가치를 제공해야 한다. 그냥 기술을 구현하는 것에서 끝나는 게 아니라, ",[21,22,23],"strong",{},"누구의 어떤 문제를 해결하는지","가 먼저 잡혀 있어야 한다.",[26,27,29],"h2",{"id":28},"_1-ai-서비스와-agile","1. AI 서비스와 Agile",[14,31,32],{},"중요한 것은 이미 데이터에 다 있다. 근데 데이터가 각각 떨어져 있기만 하면 의미를 찾기 어렵다.",[34,35,41],"pre",{"className":36,"code":38,"language":39,"meta":40},[37],"language-text","A 업무 데이터\n    ↓\nB 업무 데이터\n    ↓\nC 업무 데이터\n    ↓\n패턴 분석과 예측\n","text","",[42,43,38],"code",{"__ignoreMap":40},[14,45,46],{},"우리가 만들어야 할 것은 단순한 AI 모델이 아니라, 실제 업무와 연결되어 동작하는 AI 프로그램이다.",[14,48,49],{},"서비스에 따라 생성형 AI와 예측형 AI를 따로 사용하거나 함께 사용할 수 있다. 다만 시장과 서비스마다 필요한 AI의 형태는 다르다.",[51,52,53,57],"ul",{},[54,55,56],"li",{},"생성형 AI",[54,58,59],{},"예측형 AI",[26,61,63],{"id":62},"_2-agile-방법론","2. Agile 방법론",[65,66,68],"h3",{"id":67},"agile이-필요한-이유","Agile이 필요한 이유",[51,70,71,74,77,80],{},[54,72,73],{},"시장과 고객 요구가 빠르게 변하기 때문에 초기에 요구사항을 100% 확정하기 어렵다.",[54,75,76],{},"Waterfall은 후반 단계에서 결함이나 변경 사항을 발견하면 수정 비용이 매우 커진다.",[54,78,79],{},"짧은 주기로 동작하는 제품을 검증하면서 리스크를 조기에 낮출 필요가 있다.",[54,81,82],{},"고객과 이해관계자의 피드백을 개발 중간에도 계속 반영할 수 있어야 한다.",[84,85,86],"blockquote",{},[14,87,88],{},"변화하는 요구사항을 짧은 사이클 안에서 반영하는 것이 Agile 방법론이다.",[14,90,91],{},"금융이나 제조처럼 초기에 분석과 검증을 충분히 끝내야 하는 분야에서는 모든 작업에 Agile이 적합한 것은 아니다. 구현 도중 계속 요구사항이 바뀌면 오히려 비효율적일 수 있기 때문이다.",[65,93,95],{"id":94},"agile이-잘-맞는-상황","Agile이 잘 맞는 상황",[97,98,99,112],"table",{},[100,101,102],"thead",{},[103,104,105,109],"tr",{},[106,107,108],"th",{},"상황",[106,110,111],{},"설명",[113,114,115,124,132,140],"tbody",{},[103,116,117,121],{},[118,119,120],"td",{},"요구사항 변동성이 큼",[118,122,123],{},"시장과 고객 요구가 계속 바뀌는 신규 서비스, 스타트업형 프로젝트",[103,125,126,129],{},[118,127,128],{},"빠른 피드백이 중요",[118,130,131],{},"출시 후 사용자 반응을 보며 방향을 조정해야 하는 제품",[103,133,134,137],{},[118,135,136],{},"점진적 가치 전달이 가능",[118,138,139],{},"기능을 작은 단위로 나누어 순차적으로 릴리즈할 수 있는 구조",[103,141,142,145],{},[118,143,144],{},"협업 밀도가 높은 소규모 팀",[118,146,147],{},"PO와 개발팀이 계속 소통할 수 있는 환경",[14,149,150],{},"Agile을 시작하기 전에 다음 내용을 먼저 정해야 한다.",[84,152,153],{},[14,154,155,156,159],{},"어떤 이해관계자에게 어떤 가치를 제공할 것인가?",[157,158],"br",{},"\n어떤 인력이, 어느 정도의 시간 안에 구현할 것인가?",[14,161,162],{},"방법론이 없으면 일정과 우선순위를 관리하기 어렵다. 업무와 개발 경험도 기본적인 셋업이 잘 이루어져야 한다.",[14,164,165],{},"특히 AI 서비스는 이해관계자에게 어떤 가치를 줄 것인지가 중요하다.",[51,167,168,171],{},[54,169,170],{},"Pain Point를 먼저 정확하게 정의해야 한다.",[54,172,173],{},"이미 잘 돌아가는 업무를 굳이 건드릴 필요는 없다. 다만 해결해야 할 Pain Point가 무엇인지는 분명해야 한다.",[65,175,177],{"id":176},"waterfall과-agile-비교","Waterfall과 Agile 비교",[97,179,180,193],{},[100,181,182],{},[103,183,184,187,190],{},[106,185,186],{},"구분",[106,188,189],{},"Waterfall",[106,191,192],{},"Agile",[113,194,195,206,217,228,239,250],{},[103,196,197,200,203],{},[118,198,199],{},"개발 방식",[118,201,202],{},"설계, 개발, 테스트를 순차적으로 진행",[118,204,205],{},"짧은 Sprint 단위로 반복적, 점진적으로 진행",[103,207,208,211,214],{},[118,209,210],{},"요구사항",[118,212,213],{},"초기에 상세히 확정하고 변경을 최소화",[118,215,216],{},"지속적으로 수집하고 Backlog의 우선순위를 조정",[103,218,219,222,225],{},[118,220,221],{},"고객 피드백",[118,223,224],{},"프로젝트 종료 시점에 주로 확인",[118,226,227],{},"매 Sprint Review에서 확인",[103,229,230,233,236],{},[118,231,232],{},"산출물 확인 시점",[118,234,235],{},"최종 단계에서 통합 결과물 확인",[118,237,238],{},"매 Sprint에서 동작하는 Increment 확인",[103,240,241,244,247],{},[118,242,243],{},"변경 대응",[118,245,246],{},"변경 비용이 크고 절차가 무거움",[118,248,249],{},"변경을 전제로 유연하게 재계획",[103,251,252,255,258],{},[118,253,254],{},"팀 구조",[118,256,257],{},"역할별 분업, 문서 기반 전달",[118,259,260],{},"교차기능팀, 상시 협업, 짧은 피드백 루프",[26,262,264],{"id":263},"_3-핵심-단어-정의","3. 핵심 단어 정의",[65,266,268],{"id":267},"agile-기본-용어","Agile 기본 용어",[97,270,271,284],{},[100,272,273],{},[103,274,275,278,281],{},[106,276,277],{},"단어",[106,279,280],{},"쉬운 정의",[106,282,283],{},"간단한 예시",[113,285,286,296,306,317,328,339],{},[103,287,288,290,293],{},[118,289,192],{},[118,291,292],{},"완성된 결과물을 한 번에 만드는 것이 아니라, 작은 단위로 만들고 피드백을 반영하며 반복적으로 개선하는 방법론",[118,294,295],{},"로그인 기능을 먼저 완성하고 사용자 피드백을 받은 뒤 추천 기능 추가",[103,297,298,300,303],{},[118,299,189],{},[118,301,302],{},"요구사항 분석, 설계, 개발, 테스트를 정해진 순서대로 진행하는 방법론",[118,304,305],{},"전체 요구사항과 설계를 확정한 뒤 개발 시작",[103,307,308,311,314],{},[118,309,310],{},"이해관계자, Stakeholder",[118,312,313],{},"서비스의 개발이나 사용 결과에 영향을 주거나 영향을 받는 사람과 조직",[118,315,316],{},"사용자, 고객사, 운영자, 개발팀",[103,318,319,322,325],{},[118,320,321],{},"Pain Point",[118,323,324],{},"사용자가 현재 업무나 서비스를 이용하면서 겪는 구체적인 불편함과 문제",[118,326,327],{},"교육생마다 어떤 강의를 추천해야 하는지 판단하기 어려움",[103,329,330,333,336],{},[118,331,332],{},"MVP",[118,334,335],{},"사용자에게 핵심 가치를 전달할 수 있는 최소한의 기능으로 만든 제품",[118,337,338],{},"로그인, 상품 조회, 신청 기능만 먼저 구현",[103,340,341,344,347],{},[118,342,343],{},"MSA",[118,345,346],{},"하나의 큰 애플리케이션을 역할별로 작은 서비스로 나누어 개발하고 운영하는 구조",[118,348,349],{},"사용자 서비스, 결제 서비스, 추천 서비스를 각각 분리",[26,351,353],{"id":352},"_4-agile-도입-순서","4. Agile 도입 순서",[14,355,356,357,359],{},"처음부터 모든 기능을 만들려고 하면 안 된다. 먼저 사용자에게 핵심 가치를 전달할 수 있는 ",[21,358,332],{},"를 만들어야 한다.",[97,361,362,373],{},[100,363,364],{},[103,365,366,370],{},[106,367,369],{"align":368},"right","단계",[106,371,372],{},"해야 할 일",[113,374,375,383,391,399,407],{},[103,376,377,380],{},[118,378,379],{"align":368},"1. 현황 진단",[118,381,382],{},"기존 프로세스와 조직 문화를 점검하고 병목 구간을 찾는다.",[103,384,385,388],{},[118,386,387],{"align":368},"2. 파일럿팀 선정",[118,389,390],{},"자발적으로 참여할 의사가 있는 1~2개의 소규모 팀부터 시작한다.",[103,392,393,396],{},[118,394,395],{"align":368},"3. Sprint 0 준비",[118,397,398],{},"Backlog 초안을 만들고, 역할과 Definition of Done을 합의한다.",[103,400,401,404],{},[118,402,403],{"align":368},"4. 첫 Sprint 실행",[118,405,406],{},"1~2주의 짧은 Sprint를 실제로 운영하고 Retrospective에서 바로 보정한다.",[103,408,409,412],{},[118,410,411],{"align":368},"5. 확산과 정착",[118,413,414],{},"성공 사례를 공유하고 다른 팀으로 점진적으로 확산한다.",[65,416,418],{"id":417},"단계별-체크리스트","단계별 체크리스트",[97,420,421,434],{},[100,422,423],{},[103,424,425,428,431],{},[106,426,427],{},"Sprint 0 이전",[106,429,430],{},"Sprint 0",[106,432,433],{},"첫 Sprint 종료 후",[113,435,436,447,458],{},[103,437,438,441,444],{},[118,439,440],{},"PO, SM, Dev 역할을 명확히 정했는가?",[118,442,443],{},"Sprint Goal을 한 문장으로 정의했는가?",[118,445,446],{},"Retrospective를 진행하고 다음에 개선할 일을 정했는가?",[103,448,449,452,455],{},[118,450,451],{},"Definition of Done 초안을 팀과 합의했는가?",[118,453,454],{},"Product Backlog에 최소 10~15개 항목을 확보했는가?",[118,456,457],{},"팀이 완료한 작업량을 기록했는가?",[103,459,460,463,466],{},[118,461,462],{},"Sprint Board를 준비했는가?",[118,464,465],{},"Sprint Backlog를 Task 단위로 구성했는가?",[118,467,468],{},"개선 사항을 다음 Sprint 계획에 반영했는가?",[26,470,472],{"id":471},"_5-agile-공정-scrum이란","5. Agile 공정, Scrum이란?",[14,474,475],{},"Scrum을 처음 들으면 날마다 회의하면서 머리를 싸매야 하는 것으로 느껴질 수 있다. 근데 핵심은 복잡하지 않다.",[84,477,478],{},[14,479,480],{},"필요한 기능과 문제를 짧게 공유하고, 팀이 논의하면서 방향을 맞춰가는 것",[14,482,483],{},"다만 Scrum 회의는 그냥 자유롭게 이야기하는 시간이 아니다. 역할, 시간, 확인할 내용이 정해져 있다.",[65,485,487],{"id":486},"scrum의-역할","Scrum의 역할",[97,489,490,500],{},[100,491,492],{},[103,493,494,497],{},[106,495,496],{},"역할",[106,498,499],{},"담당 업무",[113,501,502,510,518],{},[103,503,504,507],{},[118,505,506],{},"Product Owner, PO",[118,508,509],{},"Product Backlog 관리, 우선순위 결정, 제품 가치 극대화",[103,511,512,515],{},[118,513,514],{},"Scrum Master, SM",[118,516,517],{},"Scrum 프로세스 촉진, 장애물 제거, 팀 보호",[103,519,520,523],{},[118,521,522],{},"Development Team",[118,524,525],{},"기능 설계, 구현, 테스트를 수행하고 Increment 완성",[65,527,529],{"id":528},"sprint-프로세스","Sprint 프로세스",[34,531,534],{"className":532,"code":533,"language":39,"meta":40},[37],"Sprint Planning\n    ↓\nDaily Scrum\n    ↓\nSprint Review\n    ↓\nRetrospective\n    ↓\n다음 Sprint에 개선 사항 반영\n",[42,535,533],{"__ignoreMap":40},[65,537,539],{"id":538},"scrum-산출물","Scrum 산출물",[97,541,542,552],{},[100,543,544],{},[103,545,546,549],{},[106,547,548],{},"산출물",[106,550,551],{},"의미",[113,553,554,562,570],{},[103,555,556,559],{},[118,557,558],{},"Product Backlog",[118,560,561],{},"제품에 필요한 모든 요구사항을 우선순위에 따라 정리한 목록이다. PO가 관리하며 계속 다듬는다.",[103,563,564,567],{},[118,565,566],{},"Sprint Backlog",[118,568,569],{},"이번 Sprint에서 완료하기로 선택한 Backlog 항목과 이를 구현하기 위한 Task 계획이다.",[103,571,572,575],{},[118,573,574],{},"Increment",[118,576,577],{},"Sprint 종료 시점까지 완료된 Backlog 항목의 합이다. Done 기준을 충족해야 한다.",[65,579,581],{"id":580},"definition-of-done-완료의-정의","Definition of Done, 완료의 정의",[14,583,584],{},"Definition of Done은 Increment가 완료된 것으로 인정받기 위한 팀 공통 기준이다. 팀별 모의 프로젝트에서도 실습을 시작하기 전에 먼저 합의해야 한다.",[65,586,588],{"id":587},"이벤트별-실전-진행-가이드","이벤트별 실전 진행 가이드",[97,590,591,607],{},[100,592,593],{},[103,594,595,598,601,604],{},[106,596,597],{},"이벤트",[106,599,600],{"align":368},"권장 소요 시간",[106,602,603],{},"참석자",[106,605,606],{},"핵심 안건",[113,608,609,623,637,651],{},[103,610,611,614,617,620],{},[118,612,613],{},"Sprint Planning",[118,615,616],{"align":368},"2시간, 2주 Sprint 기준",[118,618,619],{},"전체 팀",[118,621,622],{},"Sprint Goal 합의, Backlog 선택, Task 분할",[103,624,625,628,631,634],{},[118,626,627],{},"Daily Scrum",[118,629,630],{"align":368},"15분",[118,632,633],{},"Development Team, Scrum Master",[118,635,636],{},"어제 한 일, 오늘 할 일, 장애물 공유",[103,638,639,642,645,648],{},[118,640,641],{},"Sprint Review",[118,643,644],{"align":368},"1시간",[118,646,647],{},"전체 팀, 이해관계자",[118,649,650],{},"동작하는 결과물 Demo, 피드백 수집",[103,652,653,656,659,661],{},[118,654,655],{},"Retrospective",[118,657,658],{"align":368},"45분",[118,660,619],{},[118,662,663],{},"Keep, Problem, Try 회고",[14,665,666],{},"회의 시간을 정하고 지키는 것이 중요하다. 논의가 길어지면 별도 회의로 분리한다.",[26,668,670],{"id":669},"_6-실행-시나리오-2주-sprint-캘린더-예시","6. 실행 시나리오, 2주 Sprint 캘린더 예시",[97,672,673,683],{},[100,674,675],{},[103,676,677,680],{},[106,678,679],{},"기간",[106,681,682],{},"진행 내용",[113,684,685,693,701,709],{},[103,686,687,690],{},[118,688,689],{},"Day 1",[118,691,692],{},"Sprint Goal 설정, Backlog에서 Task 선정, 담당자와 우선순위 결정",[103,694,695,698],{},[118,696,697],{},"Day 2~8",[118,699,700],{},"Task 개발, Daily Scrum, 장애물 공유, 필요한 경우 Backlog 정리",[103,702,703,706],{},[118,704,705],{},"Day 9",[118,707,708],{},"개발 마무리, 테스트, 오류 수정, Sprint Review 준비",[103,710,711,714],{},[118,712,713],{},"Day 10",[118,715,716],{},"Sprint Review, 결과물 Demo, Retrospective, 다음 Sprint의 개선 항목 결정",[14,718,719,720,723],{},"핵심은 2주 동안 개발만 진행하는 것이 아니다. ",[21,721,722],{},"계획 → 개발과 점검 → 결과 공유 → 회고와 개선","의 흐름을 반복하는 것이다.",[26,725,727],{"id":726},"핵심-정리","핵심 정리",[14,729,730,731,734],{},"Agile에서 가장 중요한 것은 회의 횟수나 도구가 아니다. ",[21,732,733],{},"누구에게 어떤 가치를 전달할 것인지 정의하고, 작은 결과물을 빠르게 검증하는 것","이다.",[34,736,739],{"className":737,"code":738,"language":39,"meta":40},[37],"가치 정의\n    ↓\nMVP 선정\n    ↓\n짧은 Sprint 실행\n    ↓\n동작하는 결과물 확인\n    ↓\n피드백과 개선\n",[42,740,738],{"__ignoreMap":40},{"title":40,"searchDepth":742,"depth":742,"links":743},2,[744,745,751,754,757,764,765],{"id":28,"depth":742,"text":29},{"id":62,"depth":742,"text":63,"children":746},[747,749,750],{"id":67,"depth":748,"text":68},3,{"id":94,"depth":748,"text":95},{"id":176,"depth":748,"text":177},{"id":263,"depth":742,"text":264,"children":752},[753],{"id":267,"depth":748,"text":268},{"id":352,"depth":742,"text":353,"children":755},[756],{"id":417,"depth":748,"text":418},{"id":471,"depth":742,"text":472,"children":758},[759,760,761,762,763],{"id":486,"depth":748,"text":487},{"id":528,"depth":748,"text":529},{"id":538,"depth":748,"text":539},{"id":580,"depth":748,"text":581},{"id":587,"depth":748,"text":588},{"id":669,"depth":742,"text":670},{"id":726,"depth":742,"text":727},[767,192],"DevOps","2026-08-26 14:08:02 +0900","md",null,"\u002Fdevops\u002Fagile\u002F2026\u002F08\u002F26\u002FAgile1\u002F",{"layout":773},"post",true,"\u002Fposts\u002Fdevops\u002Fagile\u002Fagile1",{"title":5,"description":16},"posts\u002FDevOps\u002FAgile\u002FAgile1",[],"nqqf34bUCgUlB1fTcpteXljzzsfzQrRp5onCpbtxrpY",1788744789466]