강민
Young Developers
안녕하세요! Young Developers 클럽에 오신 것을 환영합니다. 저희 클럽은 창의적이고 열정적인 청소년 개발자들을 위한 독특한 공간입니다. 이곳에서는 프로그래밍, 웹, 디자인, 기획 등 다양한 분야에 관심을 가진 청소년들이 모여 자신의 경험과 인사이트를 공유하고 함께 성장할 수 있습니다.
가이드라인
["상호 존중하며 서로 많은 인사이트를 나누어봐요!"]
허채원
ki hyun Lee
“소프트웨어 개발 커뮤니티에서 소프트웨어 개발 방법론과 이를 구현할 방법이라는 주제보다 더 많은 논쟁을 불러일으키는 주제는 없을 것이다" - 존 소메즈
소프트웨어 개발 방법론은 소프트웨어 제작 절차를 정의한다. 몇 가지 원칙 외에 크게 요구하는 게 없는 가벼운 방법론도 있고, 익스트림 프로그래밍처럼 지켜야 할 규칙이 무척 많은 방법론도 있다. 이번 글에서는 여전히 많은 조직에서 사용하고 있는 폭포수 프로세스와 오늘날 소프트웨어 개발계에서 가장 유행하고 있는, 누구나 하지만 아무도 제대로 하지 않는 애자일 개발 모델에 대해 살펴볼 예정이다. 마지막으로는 소메즈가 가장 중요하다고 생각하는 애자일 개발 방법론 세 가지를 소개하겠다.
전통적인 폭포수 개발
소메즈가 처음 개발을 배울 무렵에는 모두가 전통적인 폭포수 프로세스를 썻다고 한다. 폭포수라는 이름조차 없었고 이 방법을 비웃는 사람도 없을 정도로 당연하게 사용되는 방법론이었다.
폭포수 개발은 이름 그대로 바닥에 닿을 때까지 한 단계가 끝나면 다음 단계로 내려가며 소프트웨어를 한 번에 한 단계씩 만들어가는 방식이다. 폭포수 개발 방법론에는 소프트웨어 개발 생명주기(SDLC)가 포함되어 있다. 사실 폭포수 개발은 SDLC를 점진적으로 따라갈 뿐이라고 보아도 무방하다.
SDLC를 반대하는가?
소메즈는 SDLC를 반대한다고 한다. SDLC는 소프트웨어를 개발하기 위해 요구사항 분석부터 시작해 설계, 구현, 테스트, 배포, 유지 보수로 끝나는 일련의 과정을 가리킨다. 한 번에 한 단계씩 앞으로 전진하고 절대로 뒤로 가지는 않는다고 한다.
요구사항 분석
개발할 소프트웨어에 필요한 요구사항을 전부 알아내는 단계다. 고객이나 이해 당사자와 대화를 하면서 알아내기도 하고 그냥 직접 생각해내기도 한다. 어떤 방법을 쓰든 제작에 들어가기 전에 알아야 한다. (하지만 이게 늘 가능하지는 않다는 걸 금세 알게 된다.)
소프트웨어 디자인
전통적인 폭포수 방식에는 보통 방대한 사전 설계라고 알려진 방법을 쓴다. 세부 사항 대부분에 대한 계획을 아주 낮은 수준까지 설계 단계에서 정해두는 걸 가리키는데 현실에서는 요구사항이 바뀌고 예측하지 못한 일들이 일어나므로 이런 방식을 고수하기는 어렵다.
구현
간단하다 개발자들을 갈아넣어 멋진 코드를 만들면 그만이다.
테스트
테스터들이 개발자들이 열심히 짜놓은 코드에 일일이 태글을 걸며 버그를 잡는 시간이다. 소메즈의 말에 따르면 몇 번의 논쟁과 속임수를 거친 후에 모두가 다음 단계로 넘어가도 좋다고 동의할 때까지 최대한 많은 버그를 고친다고 한다.
배포
배포란 서버에 코드를 배포하는 작업일 수도 있고, 모든 고객에게 배송할 배포용 표준 CD를 만든다는 뜻일 수도 있다. 오늘날에는 앱 스토어에 앱을 업로드한다는 의미일 수도 있다. 어떤 방식으로든지 자신의 소프트웨어를 고객의 손에 전달하기만 하면 된다.
유지 보수
어떤 책에서 개발자들은 새로운 기능을 개발하는것보다 유지보수하고 문서를 작성하는데 시간을 더 쓴다는 말을 봤던 것 같다. 그만큼 유지보수는 중요하고도 지루한 일이다.
이게 바로 SDLC의 전 단계이다. 요구사항을 알아내고, 소프트웨어를 설계하고 제작하고 테스트한 후 배포해서 회사가 망하기 전까지 유지 보수하는 것이다.
다음 글에서는 폭포수 개발론에는 어떤 문제가 있는지와 애자일 방법론에 대해 살펴보자
윤성용
안녕하세요! 윤성용입니다. 현재 강남디벨로퍼스(주)에서 Tech HR 서비스 태스크네코를 운영하고 있습니다. 또한 제품화된 서비스와 AGI 시대의 업무 방식에 대해서도 고민합니다. 근본적으로는 라이프스타일이 깊게 관여하는 소프트웨어를 만들고 싶습니다. 예를 들어 하루에도 수십번 접속하는 앱 처럼요. 저는 수십개의 인디게임을 개발하고 출시하면서 IT에 대해서 알게 되었습니다. 그러던중 게임 산업에 국한 하지 말라는 조언을 듣게 되었고 IoT 공유 우산을 시작으로 다양한 소프트웨어 기반 창업을 하였습니다. 경남정보대학교에서 시각디자인을 전공 했고, 현재 전남대학교에 재학하면서 전자상거래를 전공하고 있습니다. 초기 스타트업 및 기술 창업에 관심이 많습니다. 스타트업 이외에 사회적 현황에도 관심이 많습니다. 2019년 교육부에서 학생유망창업팀300(중소벤처기업부 도전K스타트업 학생리그)에 학교 밖 청소년은 재학중이지 않다는 이유로 참여를 제한 한것에 대해 공식적으로 시정을 요구 했고 재공고 되었으며 이후 위법적인 참여 제한이 사라졌습니다. 스타트업 창업 생태계 발전을 위해서도 노력 하고 있습니다. 청소년 및 학생 중심의 민간 커뮤니티를 지원하고 있습니다. 기존의 정부와 협회 중심이 아닌 더 개방적이고 투명한 산업 환경을 기대합니다.
이은교
안녕하세요! 개발자를 꿈꾸며 노력하는 학생 이은교입니다!
김민우
안녕하세요. 유니티 게임 개발을 하고 있는 김민우 라고 합니다.
ki hyun Lee
안녕하세요! 인공지능과 블록체인에 관심이 많은 풀스택 개발자 이기현입니다!
왕현빈
운영체제 개발과 취약점 진단 솔루션 개발에 관심이 많고 이것을 목표를 두고 공부하는 왕현빈입니다.
박정빈
네트워크 보안 시뮬레이션, 서버 및 IPS 구축, 웹 해킹 분석 등을 공부하였습니다.
정보 보호 영재 교육원에서 암호학, 네트워크, C언어 등의 지식을 배우고 있습니다.
저의 좌우명은 '쉽게 포기하지 말자!' 입니다.
요즘 Go언어에 흥미를 느껴 배우고 있습니다.
웹을 다루는 것을 좋아하며 새로운 도전을 좋아합니다.
운영체제와 네트워크 지식을 좋아합니다
노가현
안녕하세요 부산소프트웨어마이스터고등학교에 재학 중이고 인공지능 개발자를 꿈꾸고 있는 노가현 이라고 합니다!!