활동 후기

멋쟁이 사자처럼 연합해커톤 (2021.10.30 ~ 2021.11.06)

문과 해달 2021. 11. 11. 03:27

 많은 학점의 수업을 듣느라 2학기에는 별다른 대외활동이 없었다. 원래 멋사의 2학기에는 많은 학교들이 한 곳에 모여

개발을 하는 전체 해커톤 행사가 있는데. 코로나 때문에 이 해커톤이 상당히 제한적으로 이루어지게 되었다.

고맙게도 우리 학교의 운영진분들이 다른 학교들과의 연합 해커톤을 잡아 오셔서, 일정이 많았지만 참여하기로 했다.

 이번 연합 해커톤의 이름은 '단풍톤'으로서 덕성여대, 동덕여대, 상명대, 외대 그리고 그 외 학교의 참여자들이 섞여서 팀을 구성했고, 주제는 거의 자유였다.

포스터

 팀을 배정받았고, 두 분이 프론트 한 분이 백엔드를 이미 희망하셔서 django에 대한 자신은 없었지만 백을 해보기로 했다. 우리 팀은 회의를 통해 자신에 대한 위키(사전)을 만드는 서비스를 만들어 보기로 했다. 회의 과정에서 인상깊었던 점은 학교마다의 기획 방식 차이였다. 다른 학교 멋사에는 기획에 관련된 일련의 세션이 있었는지, 와이어프레임을 짜거나 데이터를 정의하는 정의서를 작성하는 것이 자연스러워 보였다. 효율적인 기획과 개발을 위해 도움이 되겠다고 생각해 어깨 너머로 최대한 방식을 배워보려고 했다. 연합 해커톤이기에 가지는 장점이라고 생각한다.

정의서
와이어프레임

 갑자기 결말로 뛰자면, 결과는 많이 아쉬웠다. 교내에서 했던 해커톤은 정해진 시간에만 만나서 개발을 했는데, 이번 해커톤은 정해진 기간동안 자유롭게 개발하는 형식이었다. 다만 우리 팀은 그 전에 시간을 맞추기가 어려워 당일 전에 그렇게 진척을 내지 못한게 다시 생각해보면 아쉽다. 개발 당일에도 원래 기획대로 구현하지 못했고, 급하게 노선을 바꿨다가 시간이 부족해 노력에 비해 너무도 부족한 결과물을 선보이게 된 것 같다. 팀원들에게도 여러모로 미안했고 내 자신의 부족함 역시 많이 느낀 것 같다. 그래서 이번 해커톤은 어렵고 아쉬웠던 점들을 정리하는 식으로 회고하려 한다.

 

 

 

1) 동적 페이지 (폼 추가)

 

프론트와 훨씬 관련이 큰 이슈긴 했지만, 이번 해커톤 내내 우리 팀을 괴롭힌 부분이다.

기획 때 input을 버튼을 통해 동적으로 추가할 수 있게 얘기하시길래, js의 영역인데 할 수 있으실지를 물었다.

js는 다뤄본 적 없지만 공부해서 해보시겠다 말하셔서 그렇게 해보기로 했다.

생각해보니 백엔드에서도 model을 짜는 방법과 데이터를 받는 방법이 달라져야 했다.

정적일 때는 Profile 클래스의 필드로서 들어갔어야 할 항목들이 모두 개수가 가변적이 되면서

별도의 클래스로 선언되어 Profile을 foriegn key로 받아야 했다.

    profile_object=get_object_or_404(Profile, pk=id)
    new_history = History()
    new_history.profile = profile_object
    new_history.date = timezone.now()
    new_history.writer = req.user
    new_history.save()

 

view 함수를 작성할 때도, 업데이트 시 프론트에서 넘어오는 데이터를 다루는 방식도 달라져야 했다. 보통 동적인 폼에선 일괄적으로 리스트에 담겨 넘어 온다는 것을 찾게 되었다. 그에 맞춰 데이터를 처리해주는 view함수를 작성했다.

뭐 결국 프론트에서 데이터를 넘겨주시지 못해, 사용될 일은 없었다.

 

 

2) forms.py

 

멋사에서는 model을 통해 손수 데이터를 넘겨받는 방법을 배웠다.

다만 많은 장고 프로젝트에서 이를 대신해 forms.py를 사용한다는 것을 알게 되었다.

프론트에서도 동적 페이지를 구현하시면서 이에 대해 언급을 하셨는데, 나와 다른 백엔드분 모두 forms.py를 사용해 본 적이 없어서 굳이 필요한 것이 아니라면 쓰지 말자고 의견이 모여졌었다.

 

그런데 지금 소프트웨어 공학 수업에서 진행 중인 웹 개발에서도 내가 비슷한 파트를 담당하게 되었다.

어떻게 각각 input의 이름을 받아올까 몰라 질문을 한 결과, forms.py를 사용해 보시라는 조언을 받았다.

그래서 forms.py에 대한 공부를 해볼 것인데, 어쩌면 forms.py를 사용했더라면 해커톤에서도 

동적으로 생성된 데이터들을 받아오는게 가능했을지도 모르겠다는 생각이 들었다.

 

이에 대해서는 공부를 해본 후 다시 알아보려 한다.

 

 

3) 뒤늦은 방향 전환

 

마음이 아프나 이번 개발이 성공적이지 못했던 가장 큰 이유를 찾자면,

개발 마지막 3시간 전까지 동적 페이지를 고수하다 결국 구현치 못하고 코드들을 갈아엎은 것일 것이다.

그리고 이에 대한 기획은 모두가 같이 한 것이기에, 나에게도 똑같은 책임이 있다.

 

내가 프론트엔드 적인 소양이 더 깊었다면, 좀 더 강하게 의견을 말할 수 있었을 것이다.

없더라도 마지막 날, 좀 더 빠르게 방향을 돌리도록 말했어야 했던 것 같다.

지식도 부족했고, 의견의 많을 부분을 팀장님에게 전가한 경향도 있다.

 

나 혼자 '~~지 않나'라는 생각을 팀원들에게 표출할 수 있도록

실력과 소통 방식을 모두 정진해야겠다.

 

 

 

아쉬웠던 점들만 줄줄 읊었긴 하지만, 개인적으로 많은 자극(=무력함)을 얻을 수 있었고

협업에도 조금 더 익숙해질 수 있었다. django는 이번에도 어려웠으니 당연히 연습이 됐을 것이다.

새로운 사람들을 만나 작업해 볼 기회는 당연히 소중했고, 그 와중에 그들의 방식을 두루 배울 수도 있었다.

같이 고생했던 팀원들에게 고생했다는 말을 하고 싶다.

 

메인 페이지