1. SeukSak – Powerful Build Management
1. 프로젝트의 목적 및 소개
A. ‘슥(소스)’ 던지고 ‘삭(결과)’ 받는다.
i. “SeukSak”은 학생들을 위한 지속적 통합관리 툴이다. 현재 대학생들은 졸업 프
로젝트를 포함한 설계 과목과 다른 강의에서 다양한 팀 프로젝트를 진행하고 있
다. 팀 프로젝트는 성인이 된 대학생들 여럿 모여서 서로 협업하는 방식도 알아
가고 나아가서 사회생활에서 있을 팀 별 과제에 대해 미리 연습해보는 중요한
부문이다. 하지만 현재 대학생들은 Github을 통한 소스 관리가 이루어지고 있기
는 하나 조금의 수정사항이라도 발생 시 불편하게 빌드를 매번 하여 결과물을
보거나 에러를 확인하고 있다. 그렇게 되면 규모가 조금 큰 프로젝트의 경우 빌
드 과정에서 많은 시간을 소모하기 쉽다. 그러므로 우리는 전 세계에서 현직 개
발자들이 사용중인 “Jenkins”라는 CI 툴의 아이디어에서 착안하여 미래에 개발자
가 될 대학생들이 쉽게 사용하고 자동으로 빌드 후 결과물에 대해 쉽게 분석할
수 있는 “SeukSak”을 개발하였다.
ii. 이 툴은 학생들에게 친숙한 UI를 통해 불편함 없이 다가가며 가장 필수적인 요
소만 추가하여 처음 툴을 접하더라도 툴 내에서 혼선을 빚지 않도록 한다.
Github 연동을 통해 Github에서 소스 관리를 하고 새로운 commit이 발생할 때,
혹은 개인이 설정해 놓은 주기마다 빌드를 하여 결과물에 대한 관리를 한다. 빌
드가 성공하였을 때는 결과물과 빌드 정보를, 실패하였을 때는 실패에 대한 에
러정보를 사용자에게 나타낸다. CI 개념을 이용하여 주기적인 빌드를 하는 것이
핵심 기술이 될 것이며, 다른 툴들과는 차별적으로 결과에 대한 History를 관리
하여 팀원 간 효율적인 작업을 돕는다.
2. 2. 프로젝트 아키텍쳐
A. 그림을 통한 전체적 구조 설명
B. 프로젝트 운영 환경
i. AWS Hosting을 통한 서버 구축
1. EC2 : 확장성이 좋은 클라우드 컴퓨팅 환경에서 Node.js를 통한 웹 서버 구
축
A. Express Framework : Node.js를 이용한 고성능 Framework라 Build가 핵
심 목적인 우리의 프로젝트에 맞다고 생각하여 사용하였다.
2. RDS : DB instance를 통해 mysql을 더욱 쉽게 운영 및 확장 할 수 있도록 한
다. EC2 instance로 들어온 요청에 대한 Database 정보를 보내준다.
ii. 다양한 빌드 툴을 통한 여러 언어에 대한 소스관리
1. 쉘 스크립트를 이용하여 여러 빌드, 테스트 툴 실행을 돕는다.
A. CMake - cppTest
B. Ant - JUnit