프로덕트

아티클

전체 보기
유채우

유채우

추운 겨울이라고 불이 안 뜨겁지 않을 텐데

@ Server in PARD, Log #4

그 많은 시간 동안 겁먹고 틀어박혀 살던 제가 "다시 한 번" 문을 열었습니다. 이번 PARD 활동은, 제가 학교에서 불타오를 수 있는 마지막 기회입니다. 다음 학기 졸업할 확률이 높거든요. 오늘 갔다 온 PARD 2기 OT는 그러기 위해, 문을 열고 한 발짝 내딘 때가 되길, 다시 뒷걸음질 치고 문을 잠군 때로 기억되지 않길 바랍니다. "이제는 정말로" 그 한 발짝을 내밀고 다시 돌아가지 않게 문을 닫는 때로 기억되길 바랍니다. 밀어주는/받쳐주는 PARD라는 손에서 제 자신이 나가떨어지지 않고 "날아오르길" 바랍니다. - 작성자 본인, PARD 2기 OT를 다녀온 뒤 Disquiet에 쓴 글에서. 어우 이불 걷어차고 싶다

시간은 흐르고 흘러, 저 글을 쓰고 거의 5달이 되었습니다. PARD 1기 활동 시기에 있던 사전설명회와 데모데이를 참석하며 '나도 이렇게 해볼 수 있을까' 하는 생각을 가졌던 제가, 롱커톤을 거쳐 마침내 PARD 2기로써 17주 동안의 프로그램을 모두 완료했습니다. 지금 제가 여기까지 왔다는 게 놀라울 따름입니다. 위에서 말한 대로, 지금의 전 날아오르진 않더라도 활주로를 달리고 있지 다시 방으로 돌아가 문을 잠구진 않은 거 같거든요.

"협업 아무리 잘하는 방법 찾아보고 해도 결국 직접 해보고 부딪히면서 경험을 쌓아야 비로소 협업을 잘 하게 될 거다." - PARD 2기 회장 송예찬, 2023-09-22, 서핑데이 1일차 일정 종료 후 경주에서.

드디어 롱커톤을 진행하게 되었습니다. 이미 15시간의 숏커톤을 통해 경험이 쌓였지만, 개발자들 뿐만 아니라 디자이너, 기획자들과의 '협업' 경험이 없던 제 입장에서 그 쌓인 경험도 여기선 충분하지 않았죠. 아니, 오히려 숏커톤 때 한 실수를 여기서도 똑같이 저질렀습니다. 이번에는 더 길게요.

Logging Events:

  • 롱커톤(Long-kathon) (2023-12-18 11:00 ~ 2024-01-06 17:30)



롱커톤(Long-kathon)

롱커톤은 PARD 사람들 끼리 3주 동안 진행하는 해커톤입니다(이전에 진행했던 15시간의 숏커톤에 비해 3주라는 긴 기간을 잡고 하기에 '롱'이 붙었습니다). 롱커톤에 대해 리스트 형식으로 설명하면 다음과 같습니다:

  • 시작 2주 전에 아이디어 발표 및 팀 빌딩 진행(웹 프로덕트 3개, 앱 프로덕트 2개)

  • 기간 중, 매주 7일 중 휴일 2일을 제외하고 매일 6시간씩 의무적으로 코어타임을 가져 팀원들과 모여 프로젝트를 진행

  • 기간 중 4번, 현직자와 멘토링 세션 진행

  • 기간 마지막 날(3주차 토요일) 데모데이 진행: 프로덕트 발표 및 부스 체험

  • 데모데이 때 심사위원들의 (프로덕트 발표 및 부스에서의 소개에 대한) 평가로 (대략적인) 팀 순위 결정

제가 있는 학교의 전산전자공학부에선 캡스톤 프로젝트를 1년 동안 진행합니다. 제게 있어 롱커톤은 이 캡스톤을 3주 동안 압축해서 하는 거죠.


팀 '순찌'의 EXIT

"우리 팀 보면 순두부찌개가 생각나요. 다들 순해 보여서요." - 최영준, 프로젝트 매니저

제가 속한 팀은 앱 프로덕트를 만드는 팀으로,

  • 디자이너 2명

  • 기획자 2명(디자이너 1명이 프로젝트 매니저로써 기획을 겸함)

  • iOS 프론트엔드 개발자 3명

  • 백엔드 개발자 1명(본인)

-으로 이루어져 있습니다.

팀 이름은 '순찌'('순두부찌개'의 줄임말), 프로젝트 매니저가 팀원들을 보고 떠오른 걸 팀원들이 팀명으로 그대로 가져갔습니다.

앱 이름은 'EXIT'. 원래는 'Sabotage'였습니다. 스마트폰을 사용하며 더 자극적인 무언가를 찾는 무한 스크롤에서 벗어나 자신에게 도움이 될 만한 활동들을 하게 도와주는 프로덕트를 만드는 것을 목표로 하였죠. 앱이 사람의 그러한 일상을 '막는'(Sabotage) 것에서 사람이 그러한 일상에서 '탈출하는'(EXIT) 걸로 관점이 바뀐 걸로 해석할 수 있겠네요.


롱커톤 전반기: 길어도 너무 길었던 생각

'이 앱에 서버가 필요할까?'

롱커톤을 시작하면서 가진 고민입니다. 위에서 말씀드렸던 것 처럼 EXIT은 스크린 타임 앱, 그러니까 스마트폰의 사용 기록을 확인하고 그에 맞는 조치(앱 사용 시간 제한 등)를 취하는 앱의 종류에 속합니다. 기기 자체에서 하는 일들은 많을지 몰라도, 서버를 사용할 만한 기능이 떠오르지 않더라구요. 롱커톤 시작 전 첫 팀 모임에서도 이 부분을 팀원들에게 말했습니다. 근데 이걸 제가 너무 진지하게 말했었는지, 롱커톤 운영진에게까지 이 이야기가 올라갔다고 합니다. 기껏 팀으로 배정시킨 백엔드 개발자가 서버리스를 생각하고 있었으니 말이죠. 다행히도(?) 팀원들은 서버를 사용하는 기능을 진지하게 고려해주었습니다.

그렇게 롱커톤이 시작되었는데... 3주 중 앞쪽 절반은 아무것도 안 하고 시간을 보냈습니다. 말 그대로 아무것도 안 한 건 아니고, 열심히 생각하고 고민한다고 시간을 보냈습니다. 그 이외의 어떤 것도 하지 않고요. "기능이 어느정도 확정되고 나면 ERD 작성도 API Call 목록 작성도 해볼 수 있을 거야"라며 (의도치 않게) 기획에게 (제가 개발을) 시작하지 않는 탓을 돌리기도 했습니다. 베짱이 같은 행동이죠.
같은 팀의 iOS 쪽 팀원들은 이야기가 전혀 달랐습니다. iOS에서 사용자의 앱 사용 기록을 가져올 수 있게 해 주는 Screen Time API를 찾았는데, WWDC 21에서 등장한 얼마 안 된 API라 레퍼런스가 많지 않았고, 설상가상으로 PARD 2기 활동 기간 동안 배운 것과 다른 프레임워크를 사용하였기 때문에 프론트엔드 쪽에 과부하가 걸렸습니다. 이렇다 보니 제가 생각하고 있던 서버 기능들 중 일부를 구현하지 않기로 하였습니다. '이건 넣어야 튼튼한 서버라고 할 수 있어!'라고 생각한 기능들이었는데 iOS 쪽에서 그 기능까지 고려해서 개발하기엔 너무 바빠서 못 넣는다니, 제 입장에선 속상했었어요.

그렇게 배부른 생각을 계속 느긋하게 가졌습니다. 그런 상황은 다행히도 2주차 목요일에 해결되었습니다. 당사자인 제가 얼마나 일이 잘못 흘러가고 있는지 깨달았거든요.


자극

2주차 목요일 19시. 이전 서핑데이 때 하기로 한 MBTI(MovBie Together In PARD) 행사, 즉 영화의 밤 행사를 진행하기 1시간 전이었습니다. 서버 파트장과 부파트장이 저를 갑자기 방으로 불러서 개발 진행 상황이 어떻게 되는지를 물었습니다. 롱커톤 시작 전에 각 팀 별로 프론트엔드/백엔드 Repository를 생성하여 여기에 진행하고 있는 프로젝트의 코드를 올리게 했는데, 다른 팀 백엔드 개발자들은 서버 구현하고 클라우드에 올려서 트러블슈팅하고 있다는데 왜 형 쪽 Repository엔 올라온 게 없냐고, 무슨 일이 있는지 물어보았었죠. 덤으로, iOS 개발을 담당하던 (팀의) 개발 팀장이 제가 서버 쪽에서 진전을 안 내고 것에 대해 초조함을 털어놓았었다고 합니다.
당시 뭐하지 뭐하지 생각만 주구장창 하다 겨우 코드 없는 스켈레톤 파일 몇 개 만든 게 전부였던 전 왜 안 만들고 있었는지, 무슨 생각이었는지 등등을 이실직고하였습니다. 그 이야기를 듣고 부파트장은 이렇게 이야기하였습니다:

"한 분야에 대해 A와 B라는 회사가 있었어요. A라는 회사는 그 분야에 바로 뛰어들었는데, 개발자들이 전문가였던 건 아니었지만 출시한 프로덕트를 사람들이 많이 사용하게 되었어요. B라는 회사는 개발자들에게 전문성이 있었지만 그 분야에서 성공을 못 했어요. 왠지 알아요? B가 분야에 뛰어들려고 한 땐 이미 A가 그 분야에서 큰 성공을 이룬 지 오래된 뒤라 들어갈 틈이 없었거든요.
형도 그래요. 모든 프로젝트를 완벽하게 생각하고 시작할 수 없어요. 완벽하지 않아도 해보면서 부딪히고 해봐야 하는 거에요. 지금은 안 될 거 같은 건 과감하게 버리고 빨리 시작해야 해요."

저는 그 때 파트장과 부파트장한테 혼나면서 제가 제 자신만 생각했었다는 것을 깨달았습니다. 기획자에겐 "확실하게 어떻게 돌아갈 지 나오면 짜볼 수 있을 거 같아요"라고 이야기한 것도, iOS 개발 팀원들은 새로운 프레임워크 배우면서 기술 검증한다고 힘들어하는데 전 뭐하지 뭐하지 하고 띵가띵가 시간만 보낸 것도, 제 자신만 생각한 이기적인 행동들이었죠. 그런 이기심도 이기심이었지만, 무엇보다 간단하게 데이터만 주고받는 정도에 그칠 정도의 서버를 두고 생각만 주구장창 하고 아무것도 안 하는 모습도, 그런 서버가 되었다고 섭섭해하던 - 탄탄한 서버를 만들고 싶었는데 프론트엔드 때문에 바뀌고 바뀌면서 이렇게까지 되었다고 생각한 - 모습도 참으로 한심했습니다.

그날 밤, 영화의 밤 행사에 제 팀원들 전원은 참석하지 않았습니다. 다들 급한 개발에 착수하였죠. 저는 행사에서 영화를 상영해야 했기에 자리를 뜰 순 없었습니다만, 영화를 프로젝터에 보여주고 제 노트북 화면에선 그 뼈대만 남아있던 파일에 코드들을 하나하나 채워나가기 시작했습니다. 행사가 끝나고 날이 밝아올 때 까지요. ERD도 API Call도 확정되지 않았지만, 그렇다고 개발을 시작하지 않으면, 더 늦으면 안 되었으니까요.
그리고 날이 밝고 찾아온 날 코어타임 때, 일정을 시작하면서 팀원들에게 사과했습니다. 그 동안 저지른 제 근무 태만에 대해서요.


롱커톤 후반기: 추운 날 발등에 불이 떨어지고 나서

그렇게 3주 중 절반이 지난 2주차 목요일 밤부터 서버 개발을 시작했습니다. iOS 개발 팀원하고도 이야기하며 앱과 서버가 데이터를 잘 주고받고 있는지를 점검하고, 각자의 요구사항들을 조율하고 적용해나갔었죠. 전반기에 비해 멘토링 세션에서 멘토님께 여쭈고 싶은 질문들의 깊이가 더 생겼고, 매일 코어타임 때 살펴보는 '할 일' 목록도 조금씩 더 그 완성도를 높여나갔습니다.

롱커톤 후반기의 전 정신이 없었습니다. 카페인이 안 들어가면 정신이 몽롱해지고, 집에 들어가면 늦은 밤에 눈이 알아서 감기던 상황까지 갔죠. 다른 팀원들도 이 때 즈음 되니 모두 컨디션이 떨어져서 프로젝트 매니저가 매일 시작하면서 하던 컨디션 체크를 하지 않고 넘어갔습니다. 생각으로 가득했던 전반기와 달리 이 땐 생각할 틈도 없을 정도로 정신이 없어서, 기억에 남는 일들이 많이 없습니다. 그렇게 시간이 흘러 데모데이가 왔고, 부스 체험도 큰 문제 없이 - 빌려온 장비들 중 일부가 작동하지 않는 등 사소한 문제들이 있었지만 - 진행되었습니다.

부스 체험이 끝나고 시상식에 들어갔는데, 크게 기대하지 않은 상황에서 입상 팀으로 불렸을 때 깜짝 놀랐습니다. 너무 깜짝 놀란 나머지, 하겠다고 나선 수상 소감에서조차 팀원들 언급은 안 하고 제 이야기만 뱉어버렸죠. 사실 최우수상을 받을 수 있었던 건 제 자신을 제외한 나머지 팀원들이 엄청 열심히 한 덕분인데 말입니다. 오히려 제가 가졌던 그 미련함이 프로덕트를, 나아가 팀을 망칠 수도 있었던 걸 생각하면, 제가 정신을 처음부터 제대로 차렸으면 대상을 받을 수 있지 않았을까 하는 생각에 제 자신에게 아쉬움이 많이 남았습니다. 최악은 면했을진 몰라도, 최고를 놓친 거니까요.

수상 소감을 나눌 때 말 못한 감사 인사를 잠시 이 자리를 빌어서...

  • 그런 간단한 서버도 못 만들고 끙끙 앓을 뻔한 상황을 만들지 않게, 잘 하고 있는지 지켜보다 필요한 때 쓴소리를 아끼지 않은 서버 부파트장 현승과 파트장 지성,

  • 사수와 부사수 사이의 관계가 아니고 멘토와 멘티의 관계라며, 개발에 있어 가지고 있는 고민들을 사실 과 선배가 맞지만 과 선배처럼 들어주시고 깊은 조언을 주신 멘토 김민재 선배님,

  • 롱커톤 시작 전에 가진 개별 모임부터 롱커톤 다음 날 종무식 끝나고 나서 가진 현장 회고까지, 팀원 모두를 그 누구도 넘어가지 않고 잘 챙겨준 프로젝트 매니저 영준,

  • 아이디어 제시자가 아님에도 불구하고 데모데이 부스를 준비하며 "우리 부스 짱짱"이란 이야기를 꺼낼 정도로 그 아이디어에 대한 ownership과 애정을 가지고 프로덕트를 성장시킨 프로덕트 매니저 예린,

  • 다른 팀원들이 부탁한 일들을 묵묵하게 수행하며, 다들 피곤할 때 자기가 가져 온 젤리를 나눠주고 이야기하면서 기운을 복돋아준 막내 디자이너 예인,

  • 게을러지지 않게 계속 상황 물어봐주고 필요한 것들 꼼꼼하게 다 챙기면서 iOS 개발자들과 같이 가족처럼 챙겨준 개발 팀장 및 iOS 개발자 하람,

  • 힘들다는 말 안 하고 언제나 일관된 표정과 태도로 롱커톤에 임한, 나보다도 더 어른같은 iOS 개발자 성진,

  • 싫다는 말 안 하고 머리 꽁꽁 싸가며 빽빽한 개발 과정 잘 소화해낸 막내 iOS 개발자 서윤.

이 모두에게 전합니다. 여러분이 있었기에 제가 여기까지 더 나은 모습으로 올 수 있었습니다. 이외에도, 이렇게 올 수 있는 자리를 준비해 준 PARD 운영진들에게도 감사의 인사를 전합니다.

20240106_174941.jpg



글을 마치며

롱커톤이 끝나고 3주가 흘러갔는데, 그 흘러간 3주는 정말 평화로웠습니다. 데모데이 다음 날 종무식에서 팀원들과 못 해본 회고도 해 보고, 이후엔 PARD 사람들끼리 스터디도 - 원래는 롱커톤 기간을 겸해서 하려고 한 거지만 롱커톤이 팀 안 가리고 정신없는 때였기에 스터디원들의 투표로 그 이후에 - 마무리했고, 고뿔도 걸려보구요. 글을 마무리한 오늘 PARD 3기 회장이 2기 동아리원들 중 파도(PARD-O, OB)를 모집하는 공지를 쓴 걸 보면, 벌써 새 학기 시작까지 많지 않은 시간이 남았다는 게 느껴집니다.

저는 이제 '학기'라는 단어를 거의 안 쓰게 될 겁니다. 가끔씩 기분이 어수선합니다. 군대에서 제대하는 기분 같아요. 원래 있던 세상을 떠나 새로운 세상으로 가는 게 말이죠. 그래도 이렇게 가기 전에 '백엔드'를 비롯하여 '디자인', '기획', '프론트엔드'라고 하는 새로운 분야들을 알아갈 수 있었음에, 새로운 사람들을 만나 새로운 경험을 할 수 있었음에, 그러면서 제가 가진 문제점들을 실감하고 그걸 해결하기 위한 생각들을 해볼 수 있었음에 감사합니다. 약 반년, 그런 경험들을 만들어준 모든 사람들에게 감사드립니다.


이 글을 읽으신 분들이 새로운 경험을 두려워하지 않고 해보실 수 있길, 그래서 작더라도 남길 만한 무언가를 만드실 수 있길 바랍니다.

미리 설 연휴 잘 보내세요!

EXIT

무한 스크롤의 늪에서 탈출시켜줄 행동심리 기반 스크린타임 서비스

9
3
유채우

유채우

갈 길은 멀지만 돌아가기엔 너무 멀리 온

@ Server In PARD, Log #3

대학교를 다니면서, 한 학기가 끝나면 새 학기가 오길 바랐고, 새 학기가 시작하면 그 학기가 빨리 끝나길 바랬습니다. 끝날 때가 되면 시간이 정말 빨리 갔다는 느낌을 제법 느끼곤 했는데, 이번 학기도 그렇게 된 거 같네요. 강의를 듣고 있는 건 아니지만, 학기 시작 전에 PARD 지원을 고민하고 있던 때로부터 16주가 넘는 시간이 벌써 지나, 한 힉기가 끝나가고, 어느새 롱커톤 시작을 앞두고 있는 상황이 되었습니다.

서버 파트에서의 세미나는 끝났습니다. 서버 파트에서는 숏커톤 시작 전에 지금까지 했던 것들을 정리하는 시간을 가졌고, 그 이후부터는 다른 파트 사람들과 같이 세미나를 진행하였습니다. 이번 로그는 서버 파트로써 동아리에서 겪은 일 보단 PARD의 동아리원으로써 겪은 일에 대한 기록입니다.

롱커톤이 끝나고 적게 될 네번째 로그가 PARD에서의 (높은 확률로) 마지막 로그가 될 거 같네요.


Logging Events:

  • [기획 + 디자인 + 개발] 연합 세미나 #2: Lightning Decision Jam(LDJ) (2023-11-11 13:00 ~ 2023-11-11 15:30)

  • 개발 연합 세미나 (2023-11-18 15:00 ~ 2023-11-18 16:30)

  • 숏커톤(Short-kathon) (2023-11-25 19:00 ~ 2023-11-26 13:00)

  • 롱커톤(Long-kathon) 팀 빌딩 (2023-12-02 11:50 ~ 2023-12-02 17:30)

  • PARD 종강총회 (2023-12-09 13:00 ~ 2023-12-09 15:00)



Lightning Decision Jam(LDJ)

Lightning Decision Jam

이름에 나와있는 것처럼, 번개같이 짧은 시간에 문제점과 그에 대한 해결책을 찾고 선택하는 기법입니다. 이번 LDJ 세션은 "맥도날드 앱"을 주제로 진행하였는데,

  1. 팀 형성 후 2주 동안 앱을 사용해보면서 불편한 부분들 탐색

  2. 앱을 사용하면서 느꼈던 불편한 부분들을 각자의 - 디자인 쪽, 기획 쪽, 개발 쪽 - 측면에서 제시

  3. 1에서 제시한 문제점들 중 어떤 걸 우선적으로 해결해야 할지 선택 후 우선순위 선정

  4. 2에서 선택한 문제점들을 어떻게 해결해나가면 좋을지 각자 제시

  5. 3에서 제시한 해결책들 중 어떤 걸 우선적으로 해결해야 할지 선택 후 우선순위 선정

-의 (대략적인) 순서로 진행되었습니다. 모든 걸 시간을 정해두고 하다 보니 항상 시간에 쫓겼는데, 신기하게도 제가 있던 조에선 사람들이 자신의 의견을 고집하지 않았습니다. 한 사람은 자신이 낸 의견을 스스로 까내리며 걸러내는 행동을 보이기도 했습니다. 의견 충돌이 거의 없는 상황에서 위의 과정들을 순조롭게 소화하면서 마무리할 수 있었죠.

근데 "의견 충돌 없이 잘 진행되었다"는 걸 좋게 생각해야 할지 안 좋게 생각해야 할 지 모르겠습니다. 좋게 보면 서로가 양보하며 의견을 나눈 게 되는데, 나쁘게 보면 "싸우기 싫어서" 그런 충돌을 만들지 않은 게 아닌가 하는 생각이 듭니다. 토론, 토의를 하다 보면 의견 충돌이 일어나기 마련이고 그에 따라 서로 얼굴을 붉히거나 무시되는 의견이 생길 수 있는데, 그러더라도 생산적인 방향에선 의견이 새로 나오거나 다듬어질 수도 있거든요. 근데 이런 충돌이 없었다는 건... 좋게 봐야 하는 걸까요, 나쁘게 봐야 하는 걸까요, 아니면 둘 다로 봐야 하는 걸까요?

...

LDJ 세션이 끝나고 나서는 각 파트별로 학교 선배님과 온라인 QnA 세션을 진행하였습니다. 숏커톤 시작 전인 그 다음 주차에선 개발 파트(웹, iOS, 서버) 연합으로 세미나를 진행하며, 숏커톤에 대비하여 우리가 팀에서 기획과 디자인 파트, 그리고 다른 개발 파트 간에 소통할 때 가져야 할 자세 등을 다뤘습니다. 개발 파트장님의 "개발자들 기획자 디자이너들에 기죽지 마요"라는 말과, 서버 파트장님의 "내가 숏커톤 할 때는 기획 디자인 쪽을 전혀 생각하지 않고 개발만 생각했었는데 그런 게 후회되었다"란 말이 기억에 남네요.


숏커톤(Short-kathon)

image.png

JetBrains YouTrack Commercial: 해커톤을 겪어본 경험이 없는 입장에서 생각했던 해커톤의 모습

이전 LDJ 세션 때 맺어진 팀이 숏커톤에서도 이어지게 되었습니다. LDJ 세션이 끝나고 2주 동안... 숏커톤 시작 전에 각자에 대한 소개를 다시 한번 하고, 각자 숏커톤 때 어떻게 해볼지 청사진을 그려보기도 했습니다.

이번 숏커톤 주제는 "Connect", "연결"이었는데, 제가 속한 팀은 "가족 간의 연결"을 아이디어로 한 iOS 앱을 만들어보는 시간을 가졌습니다. 주제가 숏커톤이 시작될 때 공개되었기 때문에 그냥 이렇게 이렇게 해보자 하는 생각만 가지고 있다가... LDJ처럼 - 보다는 긴 시간이지만 그래도 15시간이라는 짧은 시간 동안 - 시간에 쫓기며 일정을 진행했는데, 제가 생각했던 이상적인 모습과 현실의 그것이 많이 다름을 느꼈습니다. 그 느낌에 대한 자세한 내용은 제가 숏커톤을 회고하며 쓴 글을 보시면 될 거 같아요.

숏커톤이 끝나고 나서 다시 모임을 가져 어떤 걸 잘 했고 어떤 걸 못 했는지 나누는 시간도 가졌는데, 기억 저편에서 남아있는 건 "소통이 많지 않았다"였던 것 같습니다. 정확히는, 기획 단계가 아니라 개발 단계에서 서로 간의 소통이 많이 없었다로 기억해요.


Obsidian 스터디 마무리

Obsidian Expectation and Reality

Obsidian이라는 노트 앱에 대한 유튜브 영상들을 예전에 접했었습니다. 노트 간에 링크가 모이고 모여 뇌 모양의 그래프가 되는 것이 인상적이었는데, 써 볼까 하고 생각만 하다가 조용히 묻혔습니다.

그랬는데, 갑자기 동아리원 중 한 명이 Obsidian에 대해 알아가보는 스터디를 모집하기에, 참여하게 되었습니다. 그렇게 시작한 게 지금 시점으로부터 7주 전이었고, 마무리를 지은 게 2주 전이었으니... 5주 동안 한 게 되었네요.

Obsidian을 사용하는 방법에 대해 같이 배우고, Zettelkasten 기법에 익숙해지기 위해 노트를 주 마다 3개 이상(하루에 노트를 몰아서 쓰지 않게 제한하며) 쓰게 하여 노트를 쓰는 습관을 들이게 했습니다. 매주 목요일 20시 30분에 모여서 노트 작성에 대한 소감도 이야기하고, Obsidian 커뮤니티 플러그인 중 사용할만한 것들이 있다면 공유하는 것도 진행했었구요.

강제성이 없었기에 - 의무적인 활동이 아니어서 - 노트 작성을 소홀히 한 것도 있긴 하지만, 그래도 남는 것이 있던 스터디였습니다. 쓸 노트 앱이 생겼으니까요! 이전엔 Visual Studio Code나 메모장을 사용하다 보니 노트들을 여기저기 저장해서 관리가 안 됐는데, Obsidian을 사용하면서 특정한 곳에 모아둘 수 있게 됐어요. 그러면서 생각으로만 남기지 않고 기록으로 남기게 되는 것들이 쌓여가는 것도 보기 좋았습니다. JavaScript나 CSS를 잘 사용할 줄 안다면 커뮤니티 플러그인이나 CSS 스니펫 등을 사용하여 이 앱을 더 잘 쓸 수 있을 것 같구요.

다만 조금 아쉬운 부분들도 있었습니다. 돈을 지불하여 동기화를 하지 않을 거라면 다른 (비교적 귀찮은) 방식을 사용해야 한다는 부분과과, 아직 도움말(Obsidian Help)에서 한글을 지원하지 않는 부분 - 한 분이 한글 번역본을 작성하셨는데 그걸 도입하는 PR이 승인이 안 되었더라구요 - 이 있었습니다. 부가적으로는... 개발자에게 정말 친근한 나머지 개발자가 아닌 사람들에겐 능숙한 활용에 제한이 걸릴 수 있겠다는 생각이 있었죠.

한번 열심히 노트 만들어서

Obsidian Graph View

-와 같은 그래프를 보고 싶습니다. 아, 이 글도 Obsidian에서 쓰고 올린 거에요! 바로 착! 하고 옮길 수 있으면 좋겠지만 포맷팅을 위해선 좀 다듬어야 하는 건 있어요... 그래도 이렇게 다듬으면서 글 다시 볼 수 있기도 하고 좋죠.


롱커톤(Long-kathon) 팀 빌딩

숨이 막히고 답답한 하루였습니다. 숏커톤이 바로 전 주에 있었는데, 바로 롱커톤 팀을 만든다는 것도 숨이 막혔지만, 일정 내내 속이 답답한 일들이 많았습니다.

PARD에는 iOS 파트가 있고 웹 파트가 있는데, 그에 맞게 iOS 앱 서비스와 웹 서비스가 각각 3개/4개가 나왔습니다. 이 중 각 파트에서 1개씩이 탈락되어, 5개의 팀이 만들어져야 했었죠. 여기서 어떤 아이디어를 살려야 하는가에 대한 첫 고민이 있었습니다.

그렇게 프로덕트들이 선정되고 나서 팀 빌딩이 진행되었는데, 어떤 프로덕트 팀에 들어갈 것인가에 대한 두번째 고민이 있었습니다. 저는 서버 파디였기에 웹이나 앱을 가리지 않고 선택할 수 있었는데, 오히려 그게 고민을 키운 것 같습니다. 거기에 더해, 팀 빌딩을 각 파트에 순서를 매겨서 진행했는데, 서버 파트가 제일 마지막에 팀을 선택하게 되었습니다. 다른 파트들은 다 각자 팀에 들어가서 이야기를 나누는데, 저희만 처음 모여 있던 강의실에 계속 앉아서 같은 파트원들끼리 눈치싸움을 해야 했었죠. PARD 활동 하면서 '제발 시간 좀 빨리 가라' 하고 생각한 경우가 거의 없었는데 그 때가 거의 유일했던 것 같습니다.

그렇게... 저는 팀 Sabotage(구) 순찌에 들어가게 되었습니다. 스마트폰(iPhone)을 사용하는 시간과 관련된 걸 다루는 iOS 앱을 만드는 팀인데, 팀장이 팀원들을 보더니 '두부'가 생각이 난다고 해서, '순두부찌개'를 줄여 만든 팀명이랍니다.


종강총회

오는 주가 기말고사가 있는 16주차라 15주차 토요일에 PARD 종강총회를 가졌습니다. 간단하게...

  • 학기 끝나고 있을 롱커톤에 대한 설명을 다시 듣고,

  • 동아리에서 진행한 각종 스터디(이산수학, Git, Figma, Obsidian) 소감을 나누고,

  • 저번 주에 있던 팀 빌딩의 결과값(팀 이름, 팀 구성원)을 발표하고,

  • 총회에 참석한 사람들끼리 단체 사진을 찍고,

  • 파트 안에서 개인마다 받게 될 멘토링의 일정을 정하고,

...를 거쳤습니다. 끝나니 14시를 넘긴 정도였습니다. 시험 기간이라 빠르게 끝난 것도 있는 거 같아요.



글을 마치며

"'걱정'을 갖고 있다는 건 '기대'하는 것이 있기 때문이다. '걱정'하는 마음은 무언가를 하고자 하는 생각이 되는데, 난 너의 '걱정'이 나쁜 게 아니라 좋은 것으로 본다. 그런 부정적인 것을 긍정적인 것으로 바꿔보자." - 순찌 팀장 최영준, 롱커톤 시작 전 개별 만남에서.

"운전을 하는데 한 차가 내 앞에 끼어들더니 차들 사이사이를 가로지르며 지나가는 걸 봤다고 하자. 당황스럽고 화가 날 수 있지만, '이 차 안에 위급상황이 생긴 거구나! 그래서 저렇게 급하게 움직이고 있는 거구나!' 하고 생각하면 화가 안 나지 않을까?" - 김창준 작가님, "함께 자라기" 연합 세미나에서.

저는 "시작"이 두렵습니다. 그래서 머릿 속에 수만가지 생각을 해보곤 합니다.

PARD에 지원할 때도 두려웠습니다. 일정 소화를 잘 할 수 있을지, 내용을 잘 따라갈 수 있을지 등등의 고민이 있었죠. 지금 와서는, 곧 진행할 롱커톤이 두렵습니다. 팀원들과 친해질 수 있을까, 내가 맡은 부분을 잘 해낼 수 있을까, 내가 팀에 많은 도움을 줄 수 있을까. 다른 팀원들은 기말고사 때문에 이런 생각을 할 겨를이 없을 텐데, 오히려 바쁜 게 없어서 무료해지니 오만가지 생각이 나네요.

이 글을 쓰는 것도 두려웠습니다. 무슨 일이 있었는지 기억을 잘 해낼 수 있을까, 어떻게 글을 시작해야 할까, 어떻게 해야 여기 Disquiet에 올린 다른 사람들처럼 글을 잘 쓸 수 있을까. 그렇게 글 쓰기 시작한 게 1주일 가까이 되어가는 것 같습니다.

...

근데, 시작이 반이라고 하잖아요. 걱정이 있다면, 적어도 그걸 해보고 싶다는 생각이 있다는 거니... 그 '기대'를 위해서라도 무언가를 해내야 하겠죠.

PARD에 지원할 때도 여러 걱정들이 많았지만, 결국 지원해서 이렇게 되었고, 오는 월요일부터 공식적으로 롱커톤을 시작해야 하는 상황입니다. 글도 결국 올려야 했습니다. 저는 학기 초반에 대충 5주 간격으로 PARD 활동에 대한 기록을 남길 생각이 있었거든요. 그래서 여러분은 지금 이 글을 보실 수 있었던 거구요.

걱정만 주구장창 하며 가만히 있어선 달라지는 게 없으니, 결국 뭐라도 해내야 하죠. 적어도 그렇게 내딛은 발걸음 덕에 이번 학기를 헛되지 않게 보낼 수 있었던 것 같습니다. 할까 말까 고민 중인 게 있었다면, 잠깐이라도 미친 척 하고 용기를 가지고 뭔가를 해보면 좋지 않을까 싶습니다. 고백도 미친 척 해 보고 0 고백 n 차임보단 n 고백 n 차임이 좋잖아요, 지원도 미친 척 해 보고 - 붙으면 좋은 거니까요 - 그러는 거죠.

이 글을 끝까지 봐주셨다면, 정말 감사드립니다! 남은 12월, 남은 2023년 잘 마무리하시길 바랄게요 Orz

11
2
유채우

유채우

"숏커톤은 실패하라고 하는 거래요"

Review on Short-kathon @ PARD, 2023-11-25

TL;DR: 500 Internal Server Error

500 Internal Server Error는 제가 자주 보는(그리고 자주 보면 안 될) 메세지이지만, 제 숏커톤 경험을 한 줄로 요약하기 좋은 표현입니다.

두려워서 걱정이던 그 숏커톤을 마무리하였습니다. 마참내! 저는 이번 PARD 숏커톤에서 FT I Land 팀의 백엔드 개발자로 참가하였습니다. 당일 19시부터 대략 15시간 동안의 (밤을 새는) 일정을 소화하였고, 이 글을 쓰기 시작한 시점(2023-12-02 00:00)으로부터 3시간 전에, 팀원들이 한 자리에 다시 모여 각자 회고를 공유하였습니다.

팀원 모두가 웃으며 숏커톤을 마무리하였고, 모두가 웃으며 다시 만나 웃으며 이야기를 할 수 있었습니다. 하지만 웃음 뒤에 숨겨야 하는 아픔이 컸을 지도 모릅니다. 전 이번 숏커톤이 인생에서 겪어 본 첫 해커톤이었고, 그래서 (그 자체의) 시간이 짧았던 것에 반비례하여 많은 것을 느낀 것 같습니다. 아래는 제가 이번 숏커톤을 거치며 느낀 것을 적은 것입니다:

유의 사항: 사진이 없어서 죄송합니다. 가독성이 떨어진다면 말씀해주시면 감사하겠습니다 Orz




1. 이상

꿈에선 나도 10점 만점에 100점을 받지

이번 숏커톤은 그 팀이 행사 당일 짜여진 것이 아닙니다(숏커톤 주제는 당일에 나왔습니다). 4주 전 파드 공지를 통하여 팀이 형성되었고, 숏커톤 이전에 몇 번 모임을 가지며 팀에서의 네트워크를 구축한 상태였습니다.

팀도 팀이지만, 제가 담당하는 서버 파트 쪽에서도 공식적인 세미나 일정이 모두 마무리되어, 지금까지 했던 것들을 다시 돌아보며 자기만의 '구조'를 갖춰보라는 과제를 받은 상황이었습니다. 지금까지 한 것만 잘 하면 문제가 없을 것이라고 생각했습니다.

파드 내 개발자 연합 세미나를 통해서도 다른 파트(기획과 프론트엔드 쪽)와 어떻게 협업해야 하는지 배우며 숏커톤에 대한 대비 의지(?)를 쌓았습니다.

저는...

  • 기획자, 디자이너 못지 않게 아이디어 회의에도 적극적으로 참여하는,

  • 데이터 설계부터 API 명세서까지 빠르게 마무리하고 프론트엔드 개발자를 도와주는,

  • API 명세서를 잘 짜서 프론트엔드 개발자가 명세서에서 대부분의 질문을 해결할 수 있게 하는,

  • 프론트엔드(앱) 개발자와 자주 소통하며 서로가 서로를 검증하게 하는,

  • 내가 맡은 부분은 꼼꼼하게 점검하며 이상이 없음을 확실하게 하는,

... 그런 개발자의 모습을 숏커톤에서 보여줄 수 있을 거라고 생각했습니다. 어떤 프로젝트가 되었든지 간에, 그 코어를 잘 지어낼 수 있을 거라고 생각했습니다.



2. 이상과 현실

현실이 꿈과 같으면 얼마나 좋을까? 적어도 꿈에 가깝기라도 하면 얼마나 좋을까?

저는... 그런 이상적인 개발자가 될 수 있을 거라고 생각했습니다.

Unfinished Horse Drawing / Flaming Horse Rating | Know Your Meme

"누구나 그럴싸한 계획을 가지고 있다. 쳐맞기 전까진 주둥이를 맞기 전까진." - 마이크 타이슨

... 왜 그런 말 가끔 들어보셨잖아요. 이상과 현실이 너무나도 달랐습니다. 안 좋은 방향으로요. 팀은 좋았습니다. 제가 차이를 많이 느끼고 정말 불만이었던 건 제 개인 영역이었습니다. 아무래도 15시간이라는 시간 제약에서 오는 수많은 부분들을 고려하지 못한 게 크지 않을까 싶습니다.


2-1. 잘?했던 점

  • 2-1-A. "기획자야 나 열심히 하고 있어"

...를 직접 말한 건 아니고, 기획자(동원)가 제게 느낀 부분이라고 합니다. 좀 더 정확한 워딩을 사용하자면, "시키지 않아도 할 걸 알아서 잘 하고 있었다"고 했었습니다.

  • 2-1-B. 모두가 의견을 진지하게 수용하였다

모두가 아이디어 결정에 적극적으로 참여하였고, 아닌 것 같은 부분들도 지적하며 모두가 서로에 대해 개방적인 자세를 취했습니다. 개발 단계에 들어가서도 소통 중 나온 의견들에 마찰을 가지지 않고 이야기를 잘 했던 것으로 기억합니다.


2-2. 못한 점

  • 2-2-A. "기획자야 나 열심히 하고 있어"

잘했던 부분에 올라갔는데 여기에도 왜 있냐면, 기획자와 소통이 거의 없었기 때문입니다. "알아서 잘 하겠다"란 말이 크게 좋아 보이지 않은 게, 기획자한테 물어가면서 잘 되고 있는지 확인을 받고 피드백을 받아가며 개발을 해야 잘 한다고 생각하지, 말도 안 하고 잘 하는 게 어디 있을까 싶었습니다. 그나마 기획자가 주기적으로 상황 확인을 해 줘서 다행이었지 아니었으면 알게 모르게 진행 방향이 기획자가 의도한 것과 계속해서 틀어졌을 겁니다.

  • 2-2-B. 모두가 의견을 진지하게 수용하였다

... 이건 잘했을 수도 있지만 오히려 잘못했을 수 있는 부분입니다(기획자가 그러더라구요). 중간에 파드 헤더진으로부터 총 2+번의 피드백을 받았는데, 이 때 받은 피드백은... "이 아이디어는 실용성이 없다", "이 아이디어가 다른 것들과 뭐가 다른지 모르겠다" 등등 부정적인 피드백이 대다수였습니다. 그리고, 아이디어를 구체화하는 방향보다, 다른 아이디어를 찾아보는 방향으로 피드백이 이루어졌습니다.

저를 포함한 팀원들은 이걸 너무 진지하게 수용했던 것 같습니다. 그래서, 기획 중인 아이디어가 2번 뒤집어졌고, 그에 따라 개발을 시작하는 시간이 늦어졌습니다. 고집을 가지고 원래 기획하던 아이디어를 그대로 끌고 갔다면 이 시간을 아낄 수 있었을지도 모릅니다. 몇몇 파트장들로부터 들은 이야기인데, "PARD 숏커톤 프로젝트는 거창한 게 아니라 일단 구현 가능한 걸 만드는 데에 초점을 둬야 한다"고 하더라구요.

  • 2-2-C. 준비가 너무 부실하였다

제가 제일 못했다고 생각하는 부분이며, 이상과 현실 간의 차이를 많이 느낀 부분이며, 그렇기에 제가 이번 숏커톤에서 제일 크게 경험하고 느낀 부분입니다. 위의 "이상"에서 제가 생각했던 이상적인 모습을 갖추려면 그에 따른 철저한 준비가 있어야 했습니다. 지금까지 서버 파트 세미나에서 했던 프로젝트들도 다시 보고, API 명세서 작성도 연습해 보고, 아이디어/프로젝트에 필요한 데이터들과, 서비스에서 오가는 정보, 백엔드에다 요청할 듯한 행동 등등을 고려해보는 연습도 해보고... 적어도 서버 파트 세미나에서 했던 것들은 확실하게 되짚어보고 가야 했습니다.

그런데 그러지 못했죠.

숏커톤 일정 중에 서버 개발을 하면서 경험했던 문제들은 다음과 같습니다:

  • 시간 내에 할 수 있는 기능을 해내야 하다 보니, 원래 생각하고 있던 기능들에서 빠진 것들이 정말 많았습니다. 보안 쪽에 문제가 발생하여 의도했던 로그인(과 로그인 하여 사용할 수 있는 서비스 제한) 기능을 진행하지 못하였고. 이미지 업로드 기능은 그 방법을 생각해내지 못하여 결국 구현 계획에서 제외되었습니다. 시간 제약이 있었기에 예상했을 법한 것이지만, 시간 안에 그걸 다 구현해낼 능력이 없음을 느꼈습니다.

  • 팀원이 6명(백엔드 1명, 프론트엔드(앱) 3명, 디자이너 2명, 기획자 1명)인데, 기획자와 프론트엔드 1명하고만 주로 이야기를 했지 나머지 프론트엔드 2명과 디자이너들과는 아이디어 생성 시기를 제외하고 소통이 거의 없다시피 했습니다.

  • API 명세서를 작성하고 프론트엔드 개발자에게 건넸는데, 제가 서버와 주고받을 Request/Response과 그 세부 데이터 변수명을 그 이후에도 자주 변경하였습니다. 실제로 프론트엔드 개발자가 API Call에서 오류를 겪고 있길래 살펴보니 바뀌기 전의 변수명을 사용하고 있었기에 발생한 일이었습니다. 이런 사소한 변경을 최소화해야 하지 않았을까, 적어도 바뀌었을 때 제가 이야기를 바로 해줘야 하지 않았을까 합니다.

  • 뼈대를 꾸미고 거기에 살을 붙이는 데에만 정신이 팔려 자가점검을 하지 않았습니다. 코드를 채워넣은 건 좋았는데, 이게 제대로 작동하는지 확인도 하지 않고 (시간에 쫓겨) 완료되자마자 프론트엔드 개발자에게 API 명세서를 보여줬던 게 기억납니다. 이후에 뒤늦게 테스트를 하며 오류를 발견하였고 디버깅에 상당한 시간을 소비하였음에도 불구하고, 제대로 된 원인을 찾지 못하여 - Log도 제대로 하지 않았었거든요 - 결국 서버 쪽에서의 작동이 불완전한 상태로 마감시한을 맞이하였습니다. 500 Internal Server Error가 (자주) 떴을 때 제 기분은 날개에 구멍이 뚫려 하늘에서 떨어지는 기분이었습니다.



3. 이상과 현실과 미래

롱커톤 때는 (숏커톤 때보다 더) 잘 해내야지

글을 쓰기 시작한 시점으로부터 약 2.5주 뒤에 PARD 롱커톤 공식 일정이 시작됩니다. 롱커톤 팀은 글을 쓰기 시작한 시점으로부터 18시간 이내에 구성될 거구요. 롱커톤은 숏커톤의 15시간을 훌쩍 넘기는 3주란 기간을 가집니다. 이에 따른 특성들도 분명 달라질 겁니다. 하지만, 롱커톤에도 (숏커톤을 통해 배운) 적용할만한 부분들이 분명 있습니다.


3-1. (롱커톤을 거치며) 해볼 점

  • 3-1-A. 내가 배운 파트는 보완하고, 좀 더 일반적으로 사용할 법한 부분들을 보강하자

서버 파트 세미나 일정이 종료되었지만, "야! 나도 백엔드 개발자다!"라고 하기엔 부족한 부분들이 많습니다. OAuth 인증을 사용한 보안 방식을 적용해보고, 유닛/통합 테스트 코드를 추가하여 이런 점검을 자동화해보고, 이미지나 영상 같은 미디어 파일을 저장하고 불러오는 것도 해 보고... 그 이외에도 더 할 게 있을 겁니다. 롱커톤 기간 동안에는 이런 부분들이 필요할 거니까요.

... 근데 그것보다 이 때까지 한 것들을 다시 되돌아보며 확실하게 내 것으로 만드는 게 더 중요하지 않을까 싶습니다. 그것도 안 하고 새로운 것들을 배우는 건 깨진 둑에 물 붓는 격이 아닐까 싶어요.

  • 3-1-B. 피드백에 너무 휘둘리지 말자

의견은 중요합니다. 좋은 의견이든 나쁜 의견이든, 건설적인 의견은 중요합니다. 하지만, 그런 의견들도 일부는 무시해야 할 수 있습니다. 귀를 틀어막자는 건 아닙니다. 숏커톤처럼 시간이 촉박한 상황에서 이리 치이고 저리 치이다가 원래 생각하던 걸 완전히 뒤엎고 새로운 걸 찾는 것 보단, 어느정도 고집을 가지고 가지고 있는 생각을 밀어붙이는 것도 필요하다고 생각합니다. 선택과 집중이 필요한 시기도 있어야 하겠죠.

  • 3-1-C. 협업 툴을 배워보자

이건 숏커톤 때는 하는 것이 쉽지 않았다고 생각합니다. 모두가 '협업 툴'을 써본 경험이 다를 것이며(없는 사람부터 능숙한 사람까지. 저는 없는 쪽입니다), 그걸 배워보려고 시간을 소비하는 것이 어쩌면 '낭비'일 수 있다는 - 숏커톤 시작 전에 서로 이야기해보고 배웠으면 몰라도 시작하고 나서는 시간에 쫓기니까 안 되는 - 생각이 들었습니다.

  • 3-1-D. 기존의 완성도를 높여나가자

시간이 긴 만큼 어떤 기능들을 추가할 가능성이 숏커톤 때보다 더 높을 겁니다. 그것에 대한 지식을 습득하고 코드로 옮겨 구현해보고 하겠지만, 그 전에 지금 하고 있는 게 잘 돌아가는지 꼭 점검하고 확인해야 더 안정적인 개발을 할 수 있지 않을까 싶습니다. Swagger를 통한 API 명세서 작성 및 테스트 방법도 살펴보고, 로그도 자주 남겨서 점검을 수월하게 하고, API 명세서도 꼼꼼하게 기록하고 하면서 최대한 원래 있는 것들을 확실하게 끝내놓고 기능 추가를 시작해야 할 것 같습니다.


3-2. 글을 마치며

2023년도 벌써 그 마지막 달이 왔으며, 바닥에 한기가 도는 겨울이 왔습니다. 학기도 벌써 14주차 끝과 그 자체의 끝으로 달려가고 있습니다. 숏커톤은 끝이 났지만, 롱커톤은 조만간 시작입니다.

숏커톤 당시, 저희 팀이 입상하진 못했지만... 모두가 웃으면서 끝냈다는 게 상당히 놀라웠습니다. 뭔가 제대로 하지도 못 하고 입상도 못 해보면 엄청나게 스트레스를 받으며 기분이 추욱 처질 줄 알았는데, 제 자신이 그걸 비교적 무덤덤하게 받아들이고, 앞으로 보완해야 할 일들을 생각하며 마음을 다져가는 게 신기하더라구요. 서버 파트 친구가 저한테 와서 "우리 서버 파트 안에서 스터디를 가져보자"고 한 것도 기억이 납니다. 하지만 슬프게도 곧 기말고사가 다가오기 때문에 스터디를 할 시간이 없을 겁니다. 지금도 이야기만 꺼냈지 감감무소식인 걸 보면 그런 것 같아 보입니다. 저희 팀을 떠나서, 다른 팀들도 입상한 팀들은 그걸 소중히 하고, 입상하지 못한 팀들도 못 받았다고 슬퍼하거나 힘들어하는 게 아니라 더 나은 내일을 기약하는 모습들이 정말 놀라웠습니다. 모두가 롱커톤을 염두에 둔 것 같아 보였습니다.

파드 헤더진들이 이야기하기를

파드 숏커톤은 실패하라고 하는 거에요

라고 합니다. 그 짧은 시간 동안 모든 걸 잘 해낼 순 없을 거라며, 지금까지 배운 걸 최대한 활용하고, 그 때 얻은 경험을 가지고 해커톤에 임하게 할 수 있는 예방주사 같은 게 될 거라고요. 그러니, 입상 못했다고 주저앉지 말고, 롱커톤을 위해 다시 준비하고 준비해야겠죠.

우리 팀원들, 세진, 민, 신원, 동원, 예인, 서윤아. 팀으로 만나서 정말 반가웠고, 나이 차가 엄청났을 텐데도 잘 끼워줘서 정말 고마웠고 팀으로 같이 숏커톤까지 한다고 고생 많았다. 웃으면서 마무리할 수 있어서 정말 좋았어. 이번 숏커톤에서 각자 얻은 것들 잘 끌어안고 롱커톤에서 각자의 위치에서 빛을 내길 바랄게 :)




...

짧고 거친 파도가 지나갔지만, 커다란 해일이 멀리서 오고 있으니.

13
5
유채우

유채우

"생각은 적당히"

@ Server, In PARD Log #2

수정: 전에는 링크만 올려서 이렇게 영상이 올라갔었는데 너무 오래 안 써서 그런지 [장기하 - 해 / 할건지말건지](https://www.youtube.com/watch?v=5xciSoXLk98)처럼 썼다가 구문이 그대로 나오고 그러길래 바꿨습니다.

안 지는 몇 달 안 된 곡들입니다(두 곡이 한 영상에 들어가 있습니다). 이 곡의 가사와 영상에서 나오는 답답함이 저를 채찍질하게 만드는데, 듣다 보면 제 자신에게 많이 미안합니다. 이렇게 미루고 미룬 게 몇 개나 쌓여 있으며 얼마 동안이나 그러고 있는지 생각이 나서요. 저와 비슷하게 할지 말지 생각만 많은 그런 분들께 이 노래를 추천하고 싶습니다.


"생각을 너무 많이 하다가 과제 기한을 놓쳤습니다"

Code Variable Name Memes

어제까지 완료해야 했던 과제가 하나 있었습니다. Spring Boot를 사용하여, 쉬운 주제를 골라 DB와 연동하는 것을 연습할 수 있는 프로젝트를 만들어야 했었는데, 7일이란 시간 중 생각을 6일 동안, 구현을 1일 동안 했었습니다. 생각을 너무 많이 했어요.

  1. 어쩌면 이 시간 중 '생각하는' 시간을 줄이고 '구현하는' 시간을 늘렸으면 완성도를 더 끌어올릴 수 있었을 겁니다.

  2. '생각하는' 시간 중 물리적인/시각적인 형태로 끄적여 부산물을 만들어 놨다면 '구현하는' 시간에 진척도를 더 빠르게 끌어올릴 수 있었을 겁니다.

  3. '생각하는' 시간 중 '아 몰라 나중에 다시 생각해보자'하는 생각을 줄였다면 '생각하는' 시간을 더 효율적으로 보낼 수 있었을 겁니다.

어느 쪽이든 '생각하는' 시간이 불필요하게 많았다는 것이 제일 큰 문제였습니다. 결국 구현하면서 (마블 유니버스의 하이드라 처럼) 하나를 해결하면 둘을 더 해결해야 하는 상황을 맞이하게 되었고, 그 사이에 과제 제출기한을 넘겨버렸죠. '더 일찍 구현을 시작했으면' 하는 후회가 몰려왔습니다. 조만간 숏커톤이 있을 거라고 했는데. 지금 이런 상황이 지속된다면 하루 종일 생각만 하다가 남은 한 시간 동안 쫓기듯이 코드를 짜게 될 겁니다.

... 이외에도 이렇게 생각만 하다가 머릿 속 어딘가에 처박혀 있는 아이디어들이 많은데, 끄집어내고 하면서 정리할 수 있으면 좋겠습니다. 아니면 적어도, "내가 뭘 하는데 얼마나 시간을 보내는지" 알 수 있다면, 쓸데없이 시간을 보내는 일을 줄일 수 있지 않을까 싶어요.

(알림: 아래는 PARD에서 했던 세미나들에 대한 회고이니 제목을 보고 찾아오신 분들은 여기서 글 읽는 것을 멈추셔도 좋습니다.)




PARD 서버 파트에서의 1차 로그를 썼던 게 추석, (학교 기준) 5주차였네요. 2차 로그를 쓰는 지금은 11월이 넘어간, (학교 기준) 10주차입니다(월요일이 되었으니 11차라고 하는 게 맞을 거 같아요). 저번 1차 로그를 쓰고 나서 많은 시간이 흘렀습니다. 더워서 선풍기가 없으면 잘 수 없었던 그 때와 비교하면, 지금은 그 이불 두께를 늘린 상황이고, PARD 사람들은 (파트 밖에서의) 스터디 등을 통하여 다른 파트의 사람들과 네트워크를 구축하기 시작했으며, 저는 서버 파트 세미나를 통해 할 수 있을 것 같은 프로젝트의 수준이 더 높아졌습니다. 생각으로만요... 실제로는 모르지만요

제가 있는 학교는 보통 10주차에 축제 기간을 가집니다. 축제를 즐기는 사람들도 많지만, 축제 기간을 (쉬는 쪽으로) 활용하기 위해 집에 가는 사람들도 많습니다. PARD는 어제 토요일에 세미나를 했습니다. 오프라인으로요. (중간고사 기간인 7~8주차는 쉬었습니다.)


Logging Events:

  • 서버 3차 세미나 (2023-10-03 21:00 ~ 2023-10-04 00:00)

  • [기획 + 디자인 + 개발] 연합 세미나 #1: "함께 자라기" (2023-10-07 13:00 ~ 2023-10-07 17:30)

  • 서버 4차 세미나 (2023-10-28 13:00 ~ 2023-10-28 17:00(아마도) + 2023-10-29 18:00 ~ 2023-10-29 19:00)

  • 서버 5차 세미나 (2023-11-04 13:00 ~ 2023-11-04 17:00)


서버 3~5차 세미나 회고

"데이터베이스"

Oops I dropped the wrong DB. Probably one of the worst fears of any… | by  Praddyum Verma | Medium

3~4차 세미나의 핵심이 아니었을까 싶습니다. 서버 2차 세미나 때 실습으로 CRUD 기능을 수행하는 프로젝트 하나를 만들면서 그 프로젝트에 지적한 한 가지가 어떤 거였냐면, "데이터가 프로그램이 종료되면 같이 사라진다"는 휘발성이었어요. 근데, 데이터베이스를 사용하여 이러한 휘발성을 없애는 걸 해 보았습니다.

3차 세미나에선 이런 데이터베이스를 Spring Boot에서 사용할 수 있게 SQL 프로그램을 설치하고 설정하여 이걸 사용하는 프로젝트를 만드는 실습(데이터베이스 활용 입문)을 하였고, 4차 세미나에선 데이터베이스에서 Entity 간에 가질 수 있는 여러 관계도와 그걸 Spring Boot를 통해 실습(데이터베이스 활용 심화)하는 시간을 가졌습니다. 추가로 4차 세미나에선 Swagger (OpenAPI)라는, 프로젝트 내 다른 구성원과 다른 사람들이 쉽게 내가 작성한 API를 이해하고 사용할 수 있게 해 주는 문서 제작 툴을 사용하는 것도 다루어 보았죠.

5차는 이걸 넘어서서, 요새 수많은 서비스들이 이용하는 "로그인" 기능과 관련하여, 로그인 상태를 유지할 수 있는 방법에 대해 이야기하고, 이 중 JWT(JSON Web Token)을 사용하여 로그인 상태를 확인해보는 프로젝트를 만들어보는 실습 시간을 가졌습니다.

Thanks, Mom! : r/ProgrammerHumor

저는 세미나를 진행하며 사용해보라고 했던 IntelliJ + MySQL 조합에서 벗어나 VSCode + MariaDB 조합을 사용하게 되었습니다. IntelliJ를 쓰며 "아니 뭔 IDE가 램을 혼자서 4GB를 넘게 먹냐"라고 한 뒤 VSCode로 넘어간 게 한 달이 넘었네요. 그런데 사용하면서 IntelliJ에서 어렵지 않게 사용할 수 있는 기능들 중에 VSCode에는 찾아봐야 사용할 수 있는, 부러운 부분들이 추가로 생겼습니다. 연결한 데이터베이스에서 데이터를 바로바로 확인하는 거나, 그 데이터베이스의 ERD를 시각적으로 볼 수 있게 하는 기능 말이죠. 데이터베이스에 연결해서 들어가 있는 자료를 확인할 수 있는 확장은 찾아서 써보고 있긴 합니다. ERD를 시각적으로 확인해볼 수 있는 확장은... 아직 찾아보고 있어요.


"함께 자라기" 연합 세미나 회고

김창준 작가님의 "함께 자라기" 책을 읽고 진행한 연합 세미나였습니다. 작가님이 오시기 전에, 책을 읽고 자신이 생각한 것들을 (책에서 특정 주제를 맡아가지고) 정해진 조 안에서 발표하며 조원들끼리 책의 이해도를 높인 다음, 작가님에게 저희가 올린 질문들 중 많이 공감하는 질문들을 몇개 뽑아서 여쭈는 QnA 시간을 가지고, 이후에는 작가님이 상황 - 마감 기한이 얼마 안 남은 상황에서 조원들과 소통하여 프로젝트 초안을 작성하여 제출하는 활동 - 을 하나를 만드셔서 저희가 책에서 습득한 것들을 제대로 자신의 것으로 만들었는지를 체크해보게 하시기도 했습니다. 질문에 대답하실 때, 질문을 한 사람에게 추가 질문을 하시며 더 높은 정확도/이해도를 가진 답변을 주시려고 했던 것이 기억납니다.

제가 생각하는 '특강'같은 경우 보통 강사가 청중들을 향해 지속적으로 이야기하였습니다. 근데 이번 특강은, 청중들이 '듣는' 것 이외에도 다른 활동들을 통하여 책에서 본 것을 내 것으로 하는 데에 더 좋은 방법을 사용한 특강이었다고 생각합니다. 여러모로 신선했던 특강이었어요.

작가님은 또 하나 좋은 '생각의 전환'을 주셨습니다. 난폭운전을 하는 차가 내 옆을 다이나믹하게 지나가면, '저 차 왜 저래?' 하고 혀를 차는 게 아니라, '아 지금 안에 응급상황이 생겼구나!' 하고 생각하는 것 등등 말이죠. 자신에게 어떤 상황이 생긴다면, 이런 '생각의 전환'을 통해 나쁜 생각들은 오래 끙끙 앓지 않고 넘길 수 있는 방법을 알려주셨습니다.




글을 마치며

중간고사가 겹쳐 있었기에 생각보다 기간 동안 많은 일이 일어나진 않았습니다. 비공식적으로 사람들과 교류하는 일들은 몇몇 있었습니다. 같이 바다를 보러 나가서 사진도 찍고 이야기도 하고, Obsidian이란 노트 앱을 같이 배우기 위한 스터디 그룹에 참여하기도 하고 말이죠. 어제 세미나 때 회장님이 "이렇게 자주 모이고 이야기하고 하면서 서로 심리적 안정감을 심어주는 모습이 보기 좋습니다"라고 말씀하셨던 거 같은 기억이 납니다.

이 때까지 세미나에서 실습이나 과제로 만들었던 프로젝트들을 리팩토링(?)하며 하나하나 돌아보고 있긴 한데... 아직은 많이 어렵지만(원리 등을 자세하게 파고들고 한다기보단 '이렇게 하면 이렇게 되는구나' 하는 생각으로 따라왔었거든요) 막 구글링해보고 하면서 많은 것들을 배우는 것이 (시간은 많이 걸리더라도) 정말 좋았습니다. 확실히... 이 Spring Boot를 배우면서, "우리가 찾아보고 배워야 할" 부분이 많은 것 같습니다. 그런 생각에 (아까 이야기한 못 끝낸 과제 하는데) 코드에 집중이 되고 그러더라구요. 근데 그 때가 과제 제출 기한 30분 전이었습니다.

한 달보다 짧은 시기 안에, 조만간 숏커톤이 진행된다고 합니다. 들은 바로는, 저녁부터 시작해서 아침에 제출하는 약 18시간 동안 (밤을 새면서) 진행된다고 하는데... 걱정이 됩니다.

...

그것과는 별개로, Disquiet에 글을 쓰는 게 고민이 된다고 하는 사람들을 위해 @최현종 님이 적어주신 글이 있었는데, 덕분에 "글을 쓸 생각"을 하게 되었고 이렇게 글을 마무리할 수 있었습니다, 정말 감사합니다.

모두 건강 챙기시고 감기 조심하세요!

17
11
유채우

유채우

나는 놀았다. IntelliJ에서, MVC에서, 사람들 속에서, 경주에서.

@ Server, In PARD Log #1

Watch This Award-Winning USAFE F-15 Eagle Squadron Hone Their Exceptional  Skills

제가 군에서 복무할 때 활주로에서 자주 본 전투기입니다. 밤에 이렇게 애프터버너를 키고 이륙하는 걸 보면 정말 멋있습니다. 대신 귀를 잘 막아야 합니다. 컨테이너가 드드드드 흔들릴 정도로 굉장히 시끄럽습니다. PARD의 모든 과정을 완료한 제 모습이 이렇게 날아오를 수 있는 모습일 거라고 희망...합니다.

Logging Events:

  • 서버 1차 세미나 (2023-09-16 13:00 ~ 2023-09-16 16:30)

  • 서핑 데이(Surfing Day) (2023-09-22 17:30 ~ 2023-09-23 15:30)

  • 서버 2차 세미나 (2023-09-24 15:00 ~ 2023-09-24 17:30)

GitHub에서 README.md에 내용 작성하던 때를 제외하고 Markdown을 잘 안 썼었기 때문에, 조금씩 익숙해지고 있습니다. 해시태그도 익숙해져볼까 합니다. VSCode에서 쓰다가 여기로 옮겨쓰니 스타일 포맷들이 많이 날아가서 다시 채워넣는 겸 확인해보고 있는데, 돌아보면서 오타 같은 것들도 체크할 수 있고 하니 좋네요.


"Push. Advance. Rise. Dare."에서 추가하고 싶었던 내용들?

개인 소개?

안녕하세요, 저는 한동대학교 전산전자공학부에서 [컴퓨터공학 + 전자공학] 복수전공 과정을 수료한 15학번 유채우입니다. 네, 졸업생은 아니고 아직은 수료생입니다.

다들 MBTI 이야기를 해서 저도 꺼내보면... ISFP입니다. 근데 자주 바뀌었어요. 1학년 입학하면서는 ENTP, 군 제대 후엔 INFP였다가 올해 들어서 ISFP로 바뀐 거 같거든요. I나 P는 75% 전후 이상의 경향성을 보이지만, I가 아닌 E가 중간에 튀어나올 수도 있으며, 중간의 S와 F는 다른 성향과 큰 편향성을 가지고 있지 않습니다. 말이 길었는데, 결국 "P는 맞는데 나머지는 상황마다 달라요"라고 말하고 싶었습니다.

좋아하는 게 여럿 있는데, 밀리터리물(전차, 항공기)도 있지만, 저는 컴퓨터 관련된 것들을 다수 좋아합니다. 컴퓨터 부품에 대해서 이야기하는 것도, 컴퓨터를 조립하는 것도, 컴퓨터를 분해하는 것도, 컴퓨터로 게임하는 것도, 컴퓨터로 코딩하는 것도, 컴퓨터로 명령어 넣으면서 시간 보내기도 말이죠. 컴퓨터 청소는 시간이 오래 걸려서 좋아하지 않습니다.

Example Screenshot

-같이 바탕화면 꾸미기 같은 것도 시도하고는 있습니다. 정작 3년 전에 만들어놨는데 생각만 쌓여있다가 아무 진전도 없는 상태입니다. 그래서 다시 재개발을 시도하고 있습니다.

"컴퓨터와 좋은 관계를 가져라."

학교 수업에서 교수님께서 하신 말씀입니다(정확한 워딩은 아니겠지만 그런 의미긴 합니다). 이 말씀을 새겨들으며 열심히 친하게 지내고 있습니다. 처음 컴퓨터 만졌던 때 생각하면 22년 ~ 23년 째 사귀고 있는 같이 지내는 중이겠네요. 근데 컴퓨터랑 너무 오래 친하게 지낸 나머지, 행동하고 말하는 것도 컴퓨터처럼 하게 되고, 생각도 컴퓨터처럼 하려는 거 같아 보입니다. 컴퓨터와 일체화되고 있는 건가 싶어요. 그래서 사람과 친하게 지내는 걸 많이 까먹었습니다. 뭔가 그런 - 사람보다 컴퓨터가 더 좋은 - 오오라를 제가 풍기고 있는 거 같은데... 저도 사람 좋아합니다. 그래서 사람들과 쉽게 친해지려는 방법을 지속적으로 찾고 있습니다. 전에도 말씀드렸지만, 저는 겁과 걱정이 많은 편입니다. 그래서 섣부르게 먼저 나서는 경우가 잘 없어요. 자도 친해지려 노력하겠지만, 먼저 다가와주시면... 저는 정말 감사함니다 Orz

지원 동기

"학번이 높은 만큼 수많은 프로젝트에 참여하셨을 것 같습니다. ..."

PARD 면접 당시 받은 질문에서 추출한 이야기인데, 이 질문에서 전 뼈를 맞은 듯 머리가 까매졌습니다. 정말 학교에서 제가 뭘 한 게 없었거든요. GitHub에 가서 제가 만든 Repository들을 훑어보면 "나 이거 해냈다!"라고 할 만한 프로젝트가 없었습니다.

그래서 안 해도 되던 캡스톤도 - 17학번부터 필수였기 때문에 전 해당사항이 없었습니다 - 했는데, 결과물을 보니 "내가 열심히 한 걸까?" 하는 생각이 많았습니다. 1년이란 긴 시간을 거쳐 나온 것은 맞지만, 되돌아보면... 열심히 한 걸까 후회되는 순간들이 많았거든요.

아무튼 캡스톤이 끝나고 힘들었나 봅니다. 1년 동안 아무것도 하지 않고 집에 틀어박혀 살았습니다. 아무것도 하기 싫고, 아무것도 생각이 안 났었어요. 그러다가 제가 속해있던 동아리 후배 - PARD 1기로 들어갔던 친구입니다 - 가 자기가 한 프로젝트를 보러 오라고 이야기했었습니다.

그렇게 찾아간 PARD 1기의 Deep Dive 데모데이 때 봤던 프로젝트들은, 제가 캡스톤 때 했던 것 아니, 어쩌면 일반적인 캡스톤 기간동안 만들어낼 만한 것들에 준할 정도로, 혹은 그보다 더욱 더 잘 만든 것 같아 보였습니다. '내가 PARD 인원으로 한 학기를 보내면 의미있는 프로젝트를 만들 수 있겠구나!'란 생각이 저를 PARD에 지원하는 것에 동기를 넣어줬다고 볼 수 있겠네요.

하지만 고민이 많았습니다. PARD 활동을 하게 되면 롱커톤까지 필수로 활동해야 한다고 했거든요. 내가 이렇게 짧은 기간 동안에 열심히 무언가를 만들어낼 수 있을까? PARD 지원 준비에서 "겁이 났었'기에 아무것도 준비하지 못했다고 했는데, 이런 필수 활동들을 제대로 소화해낼 수 있을까 하는 것이 큰 걱정이 되었습니다.

그래서 고민을 하다가 지원 마감일에 겨우겨우 서류를 내었고, 면접을 거쳐서 지금 상황까지 이르게 된 겁니다. "면접 마무리하기 전에 하고 싶은 말이나 각오가 있는가?"란 질문에 전 이렇게 이야기했었죠:

졸업 전이지만, 이번 학기라도 시간을 알차게 쓰고 싶었습니다. 아무것도 하지 않고 도태되고 싶진 않았습니다.

면접 당시 지원 동기를 빼먹었다가 맨 마지막에 붙이면서 같이 이야기했던 겁니다. 이 말을 안 꺼냈다면 PARD에서 절 뽑아주지 않았을 겁니다. 제가 "문을 닫고" 들어온 게 아닐까 싶어요.


-를 `Push. Advance. Rise. Dare.`에 추가하고 싶었습니다. '수정'도 가능했지만 고민 끝에 그러지 않기로 하고 여기에 추가하게 됐네요.


서핑 데이 (Surfing Day)

사실 1차 세미나가 먼저 진행됐지만, 2차 세미나와 묶어서 쓰기 위해 일단은 나중으로 미뤘습니다.

Surfing - Wikipedia

다들 "서핑"하면 떠오르는 건 이런 부류일 겁니다. 저도 이걸 생각했었습니다. 실제로 서핑 스터디를 하는 스터디 그룹이 PARD 안에 있다고 해서, 이걸 동반하는 활동은 아닌가, 서핑으로 협업을 배우는 건가 싶은 생각을 했습니다. 근데 보니까...

머드맥스 : 바지락의도로 / MUDMAX : CLAMS ROAD [매드맥스 패러디] - YouTube

포항에서 경주로 가는 길은 대충 이런 느낌이었고,

World record set for most riders on a surfboard

서핑 데이를 보내면서 생각했던 건 이런 느낌일 거 같습니다.

Four Winns | Series | Surf

아 이게 더 맞겠네요.

...

동아리 MT라고 생각하면, (어떤 MT가 되었든 간에) 제가 MT를 안 간 지 1년이 되었더라구요. 보통 학교와 가까운 곳으로 가곤 했는데, 경주로 가는 거라 설렘도 기대감도 더 크고 했었습니다. 선글라스를 써야 할 정도로 눈부시게 지는 해와 함께 출발했는데, 차들이 막히기 시작했습니다. 내비게이션은 친절하게도 시내를 가로지르는 경로를 추천해주더라구요. 50분 걸릴 거란 내비게이션의 말과 다르게 가는 데만 80분이란 시간이 걸렸고, "저 6시 20분 전에 도착할 거 같아요!"라고 한 말은 "저 6시 40분 넘어서 도착할 거 같아요!"가 되었습니다. 해가 지고 어째저째 막히는 교통을 뚫고 마침내 목적지에 도착했는데 저녁을 드시고 계시더라구요. 제가 속해있던 조는 저 때문에 저녁을 안 먹고 기다리고 계셨습니다. 차를 도랑에 빠트려서 빠져나온다고 늦었다는 말을 농담으로 건냈는데 조원 분들이 믿으시는 거 같아서 더더욱 죄송했습니다.

동아리 MT 하면 생각나는 게, 신입 기수든 기성 기수든 간에 "서로 친해지는 것"을 주 목적으로 삼는 활동들을 하는 것들일 겁니다. 파드 서핑 데이도 그랬습니다. 차이가 있다면, 서핑 데이는 '워크샵'같은 느낌으로, 서로 친해지는 과정을 가지면서도 동아리의 주 가치관인 '협업'에 대해 생각해볼 수 있는 시간들을 보낼 수 있게 했다는 점이 있었죠. 공식 일정 중 대다수의 시간을 그렇게 사용하였습니다.

...

첫째 날 공식 일정이 끝나고 다음 활동을 고민하던 사람들은 경주 풍경을 느끼러 밖으로 나오게 되었습니다. 광장 같은 곳에서 사람들이 모여 대화를 하는데, 밤이 깊어지면서 안개가 자욱하게 끼는 게 신비한 느낌을 주어서 정말 좋았습니다. 추워서 팔이 부어오르는 것만 빼면 말이죠. 이것저것 이야기하다가 혼자서 안개 낀 사거리를 보고 있더니 몇몇 분들이 오셔서 왜 그러고 있냐고 이야기를 건네오셨습니다. 회장님도 계셨고, 다른 파트의 파트장/부파트장님도 계셨습니다. 회장님은 Disquiet에 제가 올렸던 첫 글을 잘 보았다며, 오늘 프로그램 하면서 문제는 없었는지 등의 안부를 물어오셨습니다. 다른 파트장/부파트장님도 지금 하고 있는 파트가 할만한지 물어오셨죠. 며칠 지난 지금 기억나는 건 이렇습니다:

"협업 아무리 잘하는 방법 찾아보고 해도 결국 직접 해보고 부딪히면서 경험을 쌓아야 비로소 협업을 잘 하게 될 거다."

"파트로 나누어서 만나고 공부하고 있지만, 결국 이후의 롱커톤이나 숏커톤을 생각한다면... 다른 파트의 시선에서 내 파트를 공부/개발하는 것도 필요할 거다."

이외에 갖고 있는 고민에 대해서도 이야기를 나눌 수 있었습니다. 진심을 담은 조언을 해주신 분들, 정말 감사드립니다. 시간이 지나가면서 기억이 조금씩 잊혀져 정확하게 무슨 내용이 오갔는지 기억해내는 게 쉽지 않지만, 생각나는 윗 두 부분만큼은 잊지 않고 활동에 임하겠습니다.

이튿날엔 몸풀기용 레크리에이션 게임과 점심 식사 이후 빠르게 프로그램을 기획해보는 시간을 가져보았습니다. 제가 속해있던 조에서 좋은 방향을 제시하고(다른 사람들과 친해지는 프로그램, 하면서 힘들어지지 않고 에너지를 받아갈 수 있는 프로그램), 거기에 맞게 다양한 아이디어를 쏟아내고, 그걸 잘 정리하여 적어가는 분들...에 저는 묻혀갔지만 - 앞에서 말한 방향 제시, 아이디어 생성, 아이디어 정리 이 세 부분을 각각 한+ 분씩 엄청 잘 해주시더라구요 - 그렇게 나온 아이디어가 1위를 기록하여 이후 파드에서 진행하게 되었습니다. (MBTI: MoBvie Together In PARD 잘 준비하겠습니다.)

돌아보면, 제가 속해있는 서버 파트 뿐만 아니라, 다른 파트 분 사람들하고도 인사하고, 이야기하면서 친해지는 좋은 시간을 보냈던 거 같습니다. 이제야 (OT를 제외하고) 세미나 2개를 소화했으니, 아직 앞이 많이 남아있는 걸 생각하면... 이후엔 어떤 일들이 있을까 기대되기도 걱정되기도 합니다. 더 많은 사람들과 교류할 수 있으면 좋겠네요. 이런 시간을 보낼 수 있게 준비해주신 운영진 분들께 감사의 인사를 드립니다.


서버 1~2차 세미나 회고

PARD 서버 파트에선 Java를 사용하는 Spring Framework 기반 Spring Boot Application들을 만들며 공부합니다. 1차 세미나에선 이런 Java Application을 개발하는 데에 특화되어 있는 IDE(통합 개발 환경, Integrated Development Environment)인 IntelliJ IDEA Ultimate를 처음 사용해보는 것과, 웹에서 사용할 경우 자주 사용한다고 하는 MVC Pattern (Model - View - Controller Pattern)을 처음 사용해보는 시간을 가졌습니다. 2차 세미나에선 개발하면서 시간을 많이 줄여줄 수 있는 Annotation들을 배워보고, MVC Pattern 중 Model / Controller를 더 파고들어, 간단한 CRUD(Create , Read, Update, Delete) 작업을 HTTP Method(GET , POST, etc.)를 사용하여 진행할 수 있는 어플리케이션을 만들어보는 실습 시간을 가져보았습니다.

2차 세미나는 아무래도 서핑 데이가 끝나고 다음 날 모인 거라 전체 모임이 없었지만, 1차 세미나 전의 전체 모임에선 1기 회장님인 최현종 학우님의 이야기를 들었습니다. 왜 PARD를 만들고 싶었는지, PARD가 어떤 동아리가 되길 원하는지, 그리고 그걸 위해 어떻게 하고 있는지. 지금은 Disquiet에 계시지만, 여전히 PARD를 위해 뛰어다니시는 것이 정말 감사했습니다. 그런 분을 생각해서라도 열심히 해서 무언가를 나중에 제가 돌려줄 수 있어야 하겠단 생각이 제 자신을 다시 한번 움직이게 해준 것 같습니다. 이번 서핑 데이를 통해서도 그걸 많이 느꼈구요.

...

"I welcome all of you today. Say each other: You look very handsome. You're very smart."

"You don't have to be afraid. Be patient."

위 두 말들은... OODP(객체지향 디자인 패턴, Object-Oriented Design Pattern) 수업을 들었을 때 교수님께서 거의 매 수업마다 말씀하셨던 겁니다. 서버 1차 세미나에서 MVC Pattern에 발을 담그면서 그 교수님 생각이 많이 나더라구요. 그 때 좀 더 열심히 들을걸...

일단 간단한 CRUD를 사용하는 애플리케이션은 만들어 보았지만, 아직 데이터베이스와 연동하여 CRUD를 사용하는 건 해보지 않았습니다. 다음 세미나 때 한다고 하는데... 미리 찾아볼까 합니다. 그것까지 해 보면 (생각해 뒀던) 프로젝트도 만들어볼 수 있지 않을까 싶어요.

...

저는 Visual Studio Code를 사용합니다. 터미널 사용은 조금 익숙하지만, 아무래도 C/C++, Python 등등 다른 언어들을 개발함에 있어서 여러 툴들을 사용하는 것보다 하나를 사용하는 게 덜 번거롭고 편하다고 생각했거든요. 이번에 IntelliJ IDEA Ultimate를 사용하면서 '와! 정말 편하긴 편하구나'라는 걸 느끼긴 했지만, 언젠가 못 쓸 경우를 대비하여 - IntelliJ IDEA Ultimate는 IntelliJ IDEA Community와 다른 유료 프로그램이지만, 학생 계정으로 인증하여 무료로 사용할 수 있었습니다 - VSCode에서, IntelliJ IDEA Ultimate에서 썼던 것과 최대한 비슷하게 개발할 수 있도록 준비를 해야 할 것 같아 보였습니다. VSCode의 Extension을 조합해보면 분명 가능...하겠죠?


마무리하는 글

저는 제가 직접 디자인하는 걸 정말 못해서 미적 감각이 없어서 그 뒤에서 실질적인 기능을 담당하는 백엔드를 해보고 싶었어요.

PARD 면접에서 왜 서버 파트에 지원하게 되었는가(+ 웹 파트 말고 왜 여기에 지원했는가)란 질문에 내놓은 답변이었습니다. 다르게 보면 "나는 디자인을 신경쓰지 않을 거야!"로 해석되었을 수도 있겠네요. 그래서 PARD에서 (같은 파트 사람들끼리만 친해지지 말고) 다른 파트 사람들하고도 친해져보라고 거듭 강조했던 거 같습니다. "내가 안 맡는 부분의 사람들"이니 그 사람들과 같이 프로젝트를 할 수 있게 네트워크를 구축해야 하는 표면적인 이유(?)도 있겠지만, 그것보단... 다른 파트 소속 사람들의 이야기를 들으며, 그들의 관점에서 제가 맡은 백엔드를 돌아보고 업데이트할 수 있는 이유도 있지 않을까 싶습니다. 그러니까, '협업'하는 걸 (혼자 놀기로(?)) 연습해보는 거죠. 나중에는 정말로 (숏커톤, 롱커톤 등으로) 하겠지만요.

가을 학기의 1/4이 지나가고, 이제 추석이 옵니다/왔습니다. 1주일 가까이 되는 추석 연휴가 끝나면 6주차의 반이 사라집니다. 저는 0학점을 들어서 크게 느껴지는 게 없지만 다른 분들은 벌써 걱정을 하시더라구요. PARD는 그래서 심심하지 않게 읽을 책과 만들 과제를 주었습니다. 그렇게 저는 큰 집에 노트북을 갖고 갈 명분을 만들 수 있었습니다. 연휴 기간에도 컴퓨터와 행복하게 지낼 시간이 많을 거 같네요.

모두 즐거운 한가위 보내시길 바랄게요!

13
8

포스트

아직 포스트가 없습니다.