천생 문과가 컴공으로 전과하면/우당쾅콱! 대학 팀플 현실

4탄. 컴공 조별과제 현실 - 코딩으로 약 자판기 만들기

Buang 2023. 1. 12. 18:35
반응형

 

 

3탄. 컴공 팀플 현실 - 코딩으로 약 자판기 만들기

2탄. 공대생의 '와르르맨션' 대학 팀플 일화 - 약 자판기 편 1탄. 공대생의 '와르르맨션' 대학 팀플 일화 - 약 자판기 편 1. 난 팀플이 좋다. 난 팀플을 사랑한다. 난 팀플을....에라잇! 대학 생활 3년

studywithowl.tistory.com

지난화 이야기

 

3탄에선 프로젝트를

엎고, 엎고, 엎은 끝에

약 자판기가 결정됐음을 이야기했다.

 

이제 고생은 끝인 줄 알았다.

 

하지만 개발에 들어가고 나서야

나는 진짜 고생이 시작됐음을

뒤늦게 알게 된다.


 

1. 코드 한 줄도

 

"아직 코드 한 줄도 작성하지 않았습니다."

 

첫 회의 이후 4일 뒤 팀원들과 만났다.

 

다른 팀원분들은 상황 진척이 꽤 됐는데

한 팀원분께서 아직 코드 한 줄 작성하지 않았단 이야기를 해주셨다.

 

코드를 한 줄도 작성하지 않았다는 게 무슨 말인가 하면

카레 30인분 주문이 들어온 지도 벌써 1시간이 지났는데

쌀을 현미를 쓸지, 백미를 쓸지 고민하느라 

밥을 아예 짓지 않고 있었단 이야기였다.

 

어디서부터 잘못된 걸까?

 

지금 돌이켜서 생각해 보면

내가 크게 실수했던 부분이 하나 있었는데

바로 '중간공유 및 피드백'이었다.

 

 

 

2. Q. 팀플할 때 '중간공유'를 해야 하나요?

     A. 네, 무조건, 반드시, 꼬오오오오옥!

 

 

팀플을 할 때 가장 중요한 건 뭘까?

꼭 한 개를 뽑아야 한다면

난 '중간과정 공유 및 피드백'이라고 생각한다.

 

중간과정 공유에 대해 설명하기 전에

상황을 하나 설정하고자 한다.

 

예를 들어서 팀플 한 개가 주어졌고, 당신이 팀장이며

팀원분들께 역할배분을 했다고 가정해 보자.

 

교수님께서 8월 1일에 과제를 내주셨고,

마감기한을 8월 31일로 지정해 두셨다.

 

그럼 마감 당일인 8월 31일에 팀장이 팀원분들께

'각자 맡은 부분은 잘 해오셨을까요?'라고 물으면 어떻게 될까? 

 

큰 일 나는 것이다.

 

모든 팀원이 성실히 다 해올 수 있지만 그럴 확률은 낮다.

미완성이거나 아예 하나도 하지 않는 상황이 충분히 발생할 수 있다.

 

그래서 2~3일 간격으로 '중간과정 공유 및 피드백'을 꼭 거쳐야 하는데

나는 그 중요한 과정을 생략해 버렸다.

 

'중간과정 공유 및 피드백'을 거치지 않으면 어떻게 될까?

 

위에서 언급했다시피 며칠이란 시간이 있었음에도 불구하고

팀원분께서 코드 한 줄을 작성하지 않은,

그러니까 아무것도 하지 않았단 이야기를 들을 수 있다.

 

적어도 2~3일에 한 번씩 팀원들끼리 모여서

현재까지 진행된 상황을 이야기하고 막히는 부분이 있다면

함께 해결해 나가는 시간을 마련하는 게 좋다.

 

그래야 '저 아무것도 하지 않았습니다.'와 같은 대답 듣는 걸 피할 수 있다.

 

다음부턴 중간 공유 과정을 꼭, 꼭 거치자고 다짐하며

팀플이 진행했다.

 

 

3. 카레를 만들어야 하는데

    카레 가루 없이 만들어야 한다고 한다.

 

이번 약 자판기 프로그램을 만들면서

내가 개발, 즉 만들어야 했던 부분은 크게 두 가지였다.

 

 

1번. 학생의 이름, 학번, 학생이 선택한 약 정보를 저장할 수 있는 공간을 만드세요.
2번. 학생들이 하루에 최대 3개 이하의 약만 구매할 수 있도록 만드세요.



1번과 2번에 대해 추가 설명하자면

부앙이라는 학생이 타이X놀을 구매하기 위해

약 자판기에서 타이X놀을 선택했다면
부앙이란 학생이 타이X놀을 선택했다는 기록이 저장되어야 하고

저장이 되려면 저장공간이란 걸 만들어 줘야 한다.

 

마치 우리가 컴퓨터로 문서를 작성한 후 저장할 때

USB 혹은 클라우드같은 저장공간에 저장하는 것처럼

기록이 저장되는 공간을 만들어야 하는데

그 공간 만드는 게 어려웠다.


그리고 부앙이가 선택한 약이 3개 이상인지 체크하고

3개 이상 구매하려고 한다면 구매를 못하도록 막아야 했다.


약 과다 복용을 방지 및 자판기 안에는 한정된 수량의 약만 들어가서
한 사람이 여러 개를 많이 사버리면 다른 사람이 정말로 약이 필요할 때
구매하지 못하는 사태를 방지하기 위해서였다.

머리카락을 부여잡고, 이리저리 뜯어가며
일단 학생이 어떤 약을 구매하면

A란 학생이 어떤 약을 구매했다란 정보가 저장되는 것 까진 만들었다.

 

하지만 학생이 하루에 3개 이하의 약만 구매할 수 있도록 하는 건 만들지 못했다.

아무리 생각해도 하루에 3개 이하의 약만 구매할 수 있도록 하는 건

파이썬이 아니라 MySQL을 이용해서 만들 수 있는 걸로 보였다.

 

갑자기 MySQL은 또 무슨 외계어인가 싶을 수 있으나

이 글에선 중요한 단어가 아니다.

 

그저 지금 상황이 카레를 만들어야 하는데

카레가루(MySQL) 없이 당근(파이썬)으로만

카레를 만들어야 하는 상황과 비슷하다고 보면 된다.

 

최대한 파이썬(당근)으로 내가 만들 수 있는 부분까지 만들었고

프로그램이 오류 없이 돌아가는 걸 보면서
이 맛에 개발하구나 싶다가도

이런 생각이 들기도 했다.

 


"야....김부엉이. 이게, 이게 최선이야?
이게 정말 최선이냐고!"

 

카레도 좀 맛있어 보이게 만들면 

다른 사람 보기에도 좋지 않은가?

 

그런데 내가 만든 카레(코드)는 

전혀 맛있어 보이지 않았다.

 

'내가 만들었지만 이건 좀 아니지 않나.'란 생각이 들다가도

'이렇게 부딪쳐 가면서 성장하는 거지 뭐!'라고 생각하고 있다.

 

아래 링크는 우리 팀이 만든 약 자판기 프로그램에 대해 소개한 글이다.

코드와 프로그램 실행 이미지를 같이 올렸다.

 

 

[Python] 약 자판기 프로그램 코드

1. 약 자판기 코드 모교 기숙사에서 사용할 수 있는 약 자판기 프로그램을 파이썬으로 만들었다. 코드는 깃허브에 올려뒀고, 아래는 해당 링크다. https://github.com/minji9988/School_Medicine_Vending_Machine Gi

studywithowl.tistory.com

 

'컴퓨터 공학과 대학교 1학년 수업에선 이런 프로그램 만듭니다~'

하는 느낌으로 올린거라 궁금하신 분들께선 참고하시면 좋을 거 같다.

 

 

그렇게 프로그램은 우여곡절 끝에 다 만들었고,

마지막 최종 발표가 남았다.

 

이번 프로젝트 발표는 내가 맡기로 해서

앞에 나가 발표를 했는데 질의응답 시간에

'아니 이걸 지금 질문한다고? 의대생인가?' 싶었던 질문 하나가 있었다.

 

그 질문은 5탄에서!

 

 

 

5탄. 약 자판기를 통한 약 판매를 찬성하는 이유

약 자판기를 통한 약 판매를 찬성하는 이유는 글 하단에 있는 '4. 예상질문' 부분에 작성되어 있습니다. 1. 질문 난이도 조절 부탁드립니다. 이번 약 자판기 발표를 준비하면서 당연히 예상 질문

studywithowl.tistory.com

 

반응형