크래프톤 정글 5주차 WIL

제이미명언·2024년 2월 7일

C언어로 RB트리 구현

5주차에는 c언어로 RB트리 구현하는 것이 과제로 나왔다.
5주차역시 팀원들과 하기 때문에 개발환경을 통일해줘야 했는데, Ubuntu 18.04 LTS (x86_64)환경을 사용하라고 했다.
우분투의 최신버전이 아닌 18.4버전을 택한 이유는 나중에 운영체제를 만들 때 최신버전은 오류가 나면 디버그하기 힘들다고 한다.
우리팀은 윈도우노트북 한명에 나를 포함한 맥북노트북 두명이었는데 윈도우는 우분투를 사용하기 위해 WSL 가상머신을 사용하였고 맥북은 Docker 컨테이너를 사용하였다.

가상머신 vs 컨테이너

컨테이너중 Docker를 사용한 이유는 vscode에서 연동이 잘 되어있기에 리눅스의 vi를 사용하지 않고도 기존에 사용하던 컴파일러를 사용할 수 있었다.

그리고 우리팀은 RB트리를 각자 전부 구현해보고 마지막날 각자의 좋았던 코드를 채택하여 최종 제출하기로 하였다. 파트를 나눠서 구현하지 않고 구현한 이유는 RB트리를 직접 구현하여 로직을 이해하고, 내가 고민했던 부분을 팀원은 어떻게 구현했을지 공유하여 이해를 더 빠르게 하기 위함이다.

RB트리를 구현하고 정글에서 만들어준 테스트파일을 실행하여 "Passed all tests!"문구가 떠야 정상적으로 RB트리를 만들었다고 볼 수 있다.

테스트 실행결과

처음에 테스트코드, 기본코드구조에 내 코드를 맞춰서 짠다는 것에 굉장히 불편했지만 (함수 인자에 자료형, 반환값 형식을 맞춰줘야 함) 나중에 코드를 완성하고 팀원들과 코드를 합치는 과정에서 왜 기본 형식을 먼저 작성하고 코드를 짜야 하는 지 이해가 갔다.
만약 코드에 대한 기본형식이 안갖춰져 있다면 팀원들과 내 코드의 함수에 인자와 반환 자료형이 다를것이고, 다른 자료형들을 한 코드에 통일시키려면 정말 골치아픈 일이 될 것이다.
코드 형식을 통일시켰기에 나중에 팀원들과 코드를 합치는 과정에서도 정말 손쉽게 합칠 수 있었다.

초기 코드 뼈대

마지막날 코드를 합치고 github에 push를 하였는데, 나는 전까지 깃허브 사용법에 대해 잘 몰랐는데, 팀원중 한명이 프로젝트 경험이 많아서 깃허브로 협업하는법에 대해 많이 알려주어 많은 도움이 되었다.

C언어에 관한 퀴즈 페이지

도커로 우분투 사용하기

vscode에서 도커 사용하기

RB트리구현 깃허브 주소

profile
c뿌리는 감자

0개의 댓글