빌드봇이 뭐죠?

윤아 2020-12-05

안녕하세요, POCU 아카데미 수강생 여러분! 윤아입니다 ^0^/

POCU 아카데미의 자랑 **자동 채점 시스템(a.k.a. 빌드봇)**을 아시나요!? 바로 밤이나 낮이나 새벽이나 아무 때나 불러내 내 실습/과제 코드를 채점해달라고 괴롭힐 수 있는 채점 시스템입니다. (하지만 채점 후 괴롭혀지는 건 항상 나… 또륵)

오늘은 빌드봇에 대해 조금 더 자세히 설명해드리도록 하겠습니다. 빌드봇 활용 꿀팁은 덤!

빌드봇이란?

빌드봇 상상도
빌드봇 상상도 (fergcd님 웹툰)

하하.. 많은 분들이 빌드봇에게 시달린 경험이 있으셔서 그런지 저런 묘사도 나오는군요. 하지만 우리의 빌드봇은 꽤나 귀여운 녀석이랍니다!

빌드봇

빌드봇은 여러분이 슬랙 명렁어를 통해 제출한 코드를 빌드(build)해 명세서에 나온 요구와 비교하여 자동으로 채점을 하는 시스템입니다.

먼저 간단한 사용법을 알려드릴게요.

빌드봇에게 내릴 수 있는 명령은 세 가지입니다.
아무 채널에서 아래 명령어를 치면 빌드봇이 알아서 검사해줄거예요 :)

  • /build assignment 1 (과제 1을 채점해줘!)

  • /build lab 1 (실습 1을 채점해줘!)

  • /build status (현재 빌드봇의 상태를 알려줘!)

저는 빌드봇에게 과제 1을 검사받아볼 거예요.

slack-2

이렇게 명령어를 치고 기다리면

slack-3

단 몇 분만에 채점 결과를 알려줍니다. 참 쉽죠?

빌드봇이 하는 일

빌드봇은 크게 두 가지 일을 합니다.

1. 로직 검사

로직 검사는 명세서에 나온 설계대로 기능이 정상 작동하는지 검사할 뿐만 아니라 상속 구조는 올바른지, 메모리를 올바로 사용하는지(예: 메모리 누수, 필요없는 메모리 사용, 잘못된 메모리 접근 등), 시간 복잡도(예: O(n) 등)이 적절한지 모두 체크한답니다. (그 방법은 영업 비밀… 쉿)

예시

여기에 실습에 1%를 맞은 참담한 코드가 있습니다. (절대 제 코드 아닙니다!)

slack-4

슬랙 메시지에서 간략한 정보를 알 수 있어요. 몇 개의 테스트 중 몇 개를 통과했고, 오류(error)나 경고(warning)는 몇 개인지, 실패한 테스트는 무엇인지 등등을 말이죠.

테스트 - 1 / 56 통과라고 링크가 걸려있는 메시지를 클릭하면 더 상세한 페이지로 넘어갑니다.

slack-5

상세 페이지에서는 틀린 테스트를 전부 확인할 수 있고 간혹 빌드봇이 힌트를 주기도 한답니다. 각 테스트에 대한 더 자세한 힌트는 위키 페이지에서 알 수 있죠 ^-^)

참고로 아래는 각각 크래시와 시간 초과로 검사 자체를 하지 못 할 때 받는 메시지입니다.

slack-6

slack-7

2. 코딩 스타일 검사

협업 시 중요한 덕목 중에 하나가 공통된 규약 하에 알아보기 쉬운 코드를 짜는 것이죠. 간결한 코드보다는 타이핑을 더 하더라도 가독성이 높은 코드가 좋은 경우가 많다고 해요. 가독성 뿐만 아니라 실수를 저지르면 문제가 생기는 부분도 코딩 스탠다드로 막을 수 있답니다. 때문에 공통된 코딩 스탠다드를 지키며 코딩하는 습관을 길러주는 것 또한 빌드봇의 역할!

예시

slack-8

아아~ 테스트는 모두 통과했지만 코딩 스타일에 걸려 100점을 맞지 못한 빌드네요 T^T)

마찬가지로 코딩 스타일 - 1줄 위반 링크를 클릭하면 더 상세한 메시지를 확인하실 수 있어요!

slack-9

slack-10

쿨타임

빌드봇에게 한번 검사를 받은 후에는 다음 검사까지 쿨타임이 있답니다. 이는 통과하는 이유를 이해 못한채 아무거나 바꾸면서 운 좋게 통과하는 일을 막기 위해서입니다.

빌드봇에 의존하여 코드를 작성하기보다, 빌드봇의 오류 메시지를 토대로 문제의 원인을 고민해 이런저런 가정을 세워보고 그 가정이 맞는지 로컬 환경에서 충분한 테스트를 해야 하죠. 테스트를 많이 할수록 버그가 적어진다는 사실, 잘 아시죠? ’-^

slack-11

과제

30분에 한 번 채점할 수 있습니다. 단, 스타일 에러만으로 점수가 깎였으면 다음 채점 요청까지의 쿨다운은 10분입니다.

실습

실습의 경우에는 5분에 한 번만 채점할 수 있습니다.

업적과 도움

빌드봇에게 한 번만에 100점을 맞을 경우 ‘원샷 원킬’ 업적1shot1kill을 얻으실 수 있습니다. 하지만 그게 그리 쉬운 일은 아니지요…후후

slack-12

수많은 시도 끝에 100점을 얻는 일은 흔한 일이죠. 특히 과제는 며칠을 고민하며 이것저것 고치면서 결국 밤을 새워야 하는 일도 있을 수 있습니다. (과제는 미리미리 ^^) 그렇게 수많은 시도를 거치면 어느새 코딩에 대한 자신감이 쑥쑥  ⋌༼ •̀ ⌂ •́ ༽⋋  

또한 빌드봇이 주는 빌드번호로 조교, 직원분이 도움을 줄 수 있어요. 하지만 남용하면 오히려 본인에게 손해! 스스로 고민해 답을 찾아가는 과정에서 실력이 느는 거랍니다 :)

아래는 실제 학생과 조교와의 대화입니다. (어째 하나는 아닌거 같은데 말이죠)

slack-13

slack-14

slack-15

마무리

지금까지 빌드봇에 대해 알아봤습니다. 빌드봇은 때로는 아주 든든한 우리의 지원군으로, 때로는 깐깐하고 야속한 상사로 느껴지실 겁니다. 하지만 빌드봇과 함께 코딩을 하다 보면 어느새 몰라보게 발전한 자신의 실력을 발견하게 될 거라구요!

samll-buildbot 빌드봇 : 겁먹지 말고 나와 함께 즐거운 코딩 하자구!!

img

TOP 1% 프로그래머 되기 | 제대로 대우받는 개발자 | 수업료는 최저시급, 난 최고연봉

최저시급도 안 되는 수업료를 내고 최고연봉을 받는 프로그래머가 되세요! POCU 아카데미가 올해 연봉협상을 책임지겠습니다!