알려요~

이노베이션 아카데미와 CUBRID의 산학협력

by 민준 posted Feb 22, 2022

이노베이션 아카데미 (42서울)

42SEOUL(42서울)은 아키텍트급 소프트웨어 인재를 양성하는 것을 목적으로 하는 교육 과정이며, 프랑스에서 시작된 에꼴42의 교육 방식 및 인프라를 수입하여 운영하는 형태를 띈다. 에꼴42(Ecole 42)는 프랑스의 대형 통신사 CEO이기도 한 자비에 니엘(Xavier Niel)이라는 억만장자가 프랑스에서 2013년에 설립했다. 설립 당시에도 자기주도 학습 및 동료 평가를 내세운 무료 소프트웨어 교육 기관이라는 점으로 주목받았다. 현재는 브라질, 미국, 일본 등 세계 여러 곳에도 42 캠퍼스가 있다. 2019년에 대한민국 서울에도 42 서울 캠퍼스가 들어왔다. 42의 특징 중 하나로, 자기주도적 학습을 지향하기에 교재나 교수가 따로 없고 모든 것은 스스로 인터넷 또는 각종 도서 등을 통하거나 동료들과의 협업 및 교류를 통해 학습을 하게끔 유도한다. 교육생들 스스로 방법을 찾아 나아가라는 의도이며, 정해진 교재 및 교수가 없기 때문에 필연적으로 많은 삽질과 불분명한 요구사항을 맞닥뜨리게 된다. 심지어 문제를 풀어야 하는데, 뭘 배우고 공부해야 하는지 조차도 제대로 알려주지 않는다. 이는 소프트웨어 현장을 그대로 모방하여 실전 경험을 길러주기 위함이다. 따라서 소프트웨어 인재를 길러내는데에 초점이 맞춰져 있다. 누군가의 결과물을 평가하는 과정도 교육생들끼리 평가를 봐주게끔 되어 있다. 42가 채택한 Peer Evaluation, 또는 Peer Assessment (동료 평가)라고 불리는 이 과정은 서로 가르치고 배우는 과정에서 서로에게 도움이 된다는 이론이다. 에꼴42가 대한민국 서울에 들어온 것이 바로 42서울이다. 물론 대한민국의 42서울의 운영 주체는 에꼴42가 아니라 이노베이션 아카데미 재단이며, 에꼴42와는 일종의 제휴 관계에 있다고 할 수 있다.

 

CUBRID 교육 과정

카뎃(42 본과정 교육생을 가리키는 단어)들의 교육은 2021/11/08(월) ~ 2022/01/28(금)까지 3달간 진행되었으며, 커리큘럼은 다음과 같이 총 3단계로 진행되었다.

 

* 1단계 (2주) - 시작하세요! 큐브리드 교재 교육

* 2단계 (8주) - CUBRID Storage Manager 코드 분석

* 1조 - Disk Manager

* 2조 - Double-Write-Buffer (DWB)

* 3단계 (2주) - CUBRID 개발 프로세스 경험 및 컨트리뷰션, 최종 발표

 

사내 멘토단으로는 민준 수석연구원과 김명규 선임연구원이 참여하였으며, 교육 방식은 코로나 시기와 맞물려 주로 온라인으로 진행되었다. 잘 짜여진 교육 계획 아래 슬랙을 통해 개별적인 멘토링이 진행되었으며, 매주 금요일 마다 담당 파트에 대한 온라인 세미나를 개최하였다.

 

스크린샷 2022-02-22 오후 3.17.00.png

 

< 슬랙을 통한 개별 멘토링 >

 

 

스크린샷 2022-01-03 오후 2.11.23.jpg

 

< 온라인 세미나 및 멘토링 >

 

1단계 교육

1단계 교육에서는 '시작하세요! 큐브리드' 교재를 통해 기본적인 CUBRID 구조와 트랜잭션 및 잠금, 백업/복구 개념 등을 학습하였다. 일반적으로 대학 학부 시절 데이터베이스를 접해봤던 학생들 조차도 주로 간단한 SQL 작성을 통해 DB 사용자로서의 경험만 가지고 있기 때문에 쉽게 이해할 수 있을지 걱정하였지만 카뎃 간 협력 시스템, 예제 실습 등을 통해 기본적인 개념들을 잘 이해하였고, 이를 통해 카뎃들의 교육에 대한 열의를 느낄 수 있었으며, 다음 단계 교육을 잘 소화할 수 있을지에 대한 우려를 날려버릴 수 있었다.

 

* '시작하세요! 큐브리드' 세미나

03. 시작

05. SQL

06. 트랜잭션과 잠금

07. 백업과 복구

 

2단계 교육

2단계 교육은 'CUBRID 소스코드에 컨트리뷰션을 위한 준비 과정'으로 실제 CUBRID의 Storage Manager(이하 SM) 코드 분석을 수행하였다. 분석 대상 모듈은 SM에서 상대적으로 독립적으로 분석할 수 있는 Disk Manager와 Double-Write-Buffer(이하 DWB) 모듈이 선택되었으며, 2개의 조로 나뉘어 조별 과제로 진행되었다. 관련 모듈에 대한 분석서가 카뎃에게 제공되었고 멘토들의 지원이 있었지만, 시스템 소프트웨어와 DBMS에 대한 배경지식 및 경험이 부족한 상태였기에 분명 쉽지 않은 도전이였다. 이를 증명하듯 13명으로 시작했던 멤버는 2단계 교육을 마쳤을 때 10명으로 줄어들었지만 끝까지 버틴 카뎃들은 C/C++가 실무에서 어떻게 사용되는지, 시스템 소프트웨어는 어떤 것이며, 관련 업종에 종사하게 된다면 무엇을 하게 되는지 등에 대해 이해할 수 있는 소중한 경험을 얻게 되었다.

 

* CUBRID Storage Manager 코드 분석 세미나

* Disk Manager (1차, 2차, 3차, 4차, 5차, 6차, 7차)

* DWB (1차, 2차, 3차, 4차, 5차, 6차, 7차)

 

3단계 교육

3단계 교육은 '실무 체험'과 '2단계 교육의 종합 세미나'로 진행되었다. 우선 실무 체험을 위해 모든 카뎃에게 1개 이상의 개발 이슈가 할당되었으며, 큐브리드 개발 프로세스 교육이 수행되었다. 카뎃들은 교육 받은 개발 프로세스를 준수하며, 할당 받은 이슈를 분석, 구현, 테스트 후 최종 PR까지 수행하였으며, PR 과정에서는 추가적으로 김재은 선임연구원, 김주호 선임연구원이 리뷰어로 배정되어 코드 리뷰가 진행되었다. 카뎃들은 이 과정을 통해 현업에서 어떻게 업무가 수행되며, 오픈소스에 어떤 방식으로 기여할 수 있는지를 직접 경험할 수 있는 귀중한 경험을 얻게 되었다. 또한 총 8주간 분석한 Disk Manager와 DWB에 대한 세미나를 오프라인으로 2주에 걸쳐 진행하였으며, 최종 세미나를 통해 이해가 부족했던 부분에 대해 피드백을 받을 수 있었다. 무엇보다 카뎃들이 자발적으로 분석한 Thread Manager에 대한 추가 세미나는 참여했던 큐브리더들에게도 많은 도움이 되었다.

 

IMG_2667.jpeg

 

< DWB 세미나 중인 카뎃들 >

 

 

IMG_2651.jpeg

 

< Disk Manager 세미나 중인 카뎃들 >

 

교육 후기

코로나 상황과 제한적인 시간 등으로 총 13명의 멤버들을 멘토링하는 것은 생각보다 쉽지 않았지만 카뎃들의 열의와 허광남 멘토님, 오명환 상무님의 든든한 지원을 통해 완주할 수 있었다. 무엇보다 '실무 체험'과 'CUBRID 소스코드에 컨트리뷰션 하기'를 통해 어렵고 막연하게만 느껴졌던 현업에 대해 이해할 수 있었다며 좋아하던 카뎃들의 반응을 보며, 개발자 선배로써 매우 뿌듯하고 의미있는 시간이였다는 생각이 들었다. 단순한 산학협력을 넘어 이를 통해 추후 큐브리드에서 함께하는 동료로 또는 지속적인 컨트리뷰터로써 성장해주길 바란다. 함께한 3달간의 시간이 카뎃들에게 좋은 밑거름이 되길 바라며, 글을 마치도록 하겠다.   

 

참고자료

https://42seoul.kr/seoul42/main/view

https://namu.wiki/w/42SEOUL