본문 바로가기

Development methods2

[Agile] Agile? 그게 도대체 뭘까? 2020년의 경영 키워드로 뽑히기도 했던 Agile, 비단 소프트웨어 분야뿐 아니라 산업이나 경영에 관심이 있다면 한 번쯤 들어봤을 법한 용어이다. 그러나 무슨 뜻인지도 잘 모르겠고, 응애 나 아기 학부생 ~ 이란 마인드인 사람들을 위해 (사실 내가 그렇다) 간략하게나마 정리해봤다. 우선 Agile은 프레임워크나 프로그램 같은 게 아니다. 내가 제일 헷갈렸던 부분. 무슨 프로그램 언어인지, 자바 스프링같은 프레임워크인지 잘 이해가 안 갔었다. Agile이라는 단어의 뜻은 "민첩함과 기민함"인데, 단어의 뜻 그대로 조직의 생산효율과 속도를 극대화하기 위한 철학이라고 생각하면 된다. 후술하겠지만 1990년대 후반까지 소프트웨어 분야는 여느 다른 공학분야처럼 waterfall 방식으로 개발하였다. 그러나 이는.. 2022. 6. 10.
[TDD] Test Driven Development - python unittest 모듈을 사용하며 거창하게 쓰기 보다는 기록하기... TDD는 개발 기법으로, 말 그대로 '테스트에 기반한 개발 방법' 이라고 한다. Agile한 개발 방법과도 굉장히 적합하다. 크게 다섯 단계로 나눌 수 있다: Add a test : 테스트 코드부터 짠다. 프로그램이 갖춰야 할 기능을 테스트 코드로 작성해서 검증한다고 생각하면 된다. Run all tests and see if the new test fails : TDD 싸이클이 첫 번째가 아니라면, 당연히 이전까지의 테스트는 모두 통과해야 한다. 거기에 더불어 1단계에서 추가한 테스트에서는 반드시 Fail이 되어야 한다. 이게 통과되면 이미 프로그램은 해당 기능을 갖추고 있다는 뜻으로, 프로그램을 개발하고 발전시키기 위한 테스터가 잘못되었다는 뜻이다. Write th.. 2022. 6. 10.