오늘은 학교 교내에서 진행했던, 해커톤인 Lucky-thon에 대해 후기에 대해 작성하려고 한다.
일단 결론부터 말하자면, 대상을 탔다. 근데 정말로 대상을 탈 줄 몰랐기 때문에 더욱 놀랐던 거 같다. 이와 관련해서 무슨 일이 있었는지 처음에 팀 구성부터 시작해서 어떻게 하게 되었는지 자세하게 얘기해 보겠다.
팀 빌딩
팀원은 3명에서 4명이 모이기로 했는데 여기서 고민을 했다. 팀원을 어떻게 구성해야 좋을까 라는 생각을 했었다. 개발 기간이 긴 편이지만, 중간고사 시험기간이 겹쳐 있었기 때문에 고민을 해본다면 '개발 기간을 어느 정도로 가져가야 할 것인가'다. 일단, 당장 나는 시험을 보지는 않지만, 다른 프로젝트를 진행하고 있는 상황이어서 시간을 많이 쏟기는 어려울 거라고 생각했다. 그래서 시간을 많이 쏟지 않으며 프로그램을 어느 정도 만들 줄 아는 사람들로 구성해야겠다고 생각해서 당장 생각나는 2명을 구했다.
- A : 발표 및 기획을 잘하는 팀원
- 이 친구는 개발에 대해서 어느 정도 알고 있지만 발표실력이 매우 좋아서 같이 하자고 했다. 사실 해커톤은 프로그램의 완성도보다는 프로그램을 만들게 된 이유, 비즈니스 모델(수익화), 지속가능성 등등을 잘 설명해야 하며, 심사위원의 질문에 능숙하게 대처해야하기 때문에 이 친구를 섭외하게 되었다.
- B : 웹 개발을 잘하는 팀원
- 이 친구는 웹 개발은 잘하고 있다. 그리고 시키는 것은 매우 잘 해내기 때문에 데려오게 되었다. 개발 디자인 하는 것도 좋아하며, 특히 짧은 시간 내에 간단한 웹사이트 구현 및 배포를 다 할 줄 안다고 생각하기에 섭외하게 되었다.
여기까지 2명을 구했고 나머지 1명이 고민이었다. 개발에서 중요한 4가지 중에 3가지를 완료했다. AI(나), 기획 및 발표(A), 프론트(B)와 백엔드다. 여기서 나는 백엔드를 해보고 싶어서 여기서 3명 + 개발에 대해 배워보고 싶은 사람 한 명이 있다고 해서 그 사람을 데려오려고 했다. 하지만 그 친구는 연구실 + 졸업작품 + 학생회 생활로 도저히 시간이 낼 수 없어서 한 명을 고민하고 있었다. 그러다가 그냥 백엔드는 잘하는 사람 데려오자라고 결론이 났다. 그래서 백엔드를 잘하는 친구(C)를 데려왓다.
- C : 백엔드 개발을 잘하는 팀원
- 그냥 잘함.
그렇게 팀원 4명(나, A, B, C)가 빌딩이 되었다. 여기서 팀원 4명은 모두 4학년이다. 이 대회가 1학년 ~ 4학년 모두 참가할 수 있는 대회인데, 4명 학년합이 16이니까 진짜 무조건 상을 타야했을 것이다. 왜냐하면, 그래도 4학년 4명인데...
팀 이름은 최대한 단순하게 지었다. 나(한화 팬), A(LG 팬), B(SSG 팬) 이렇게 있고 C는 야구를 잘 안보기 때문에 다음과 같이 팀 이름을 짓게 되었다.
아이디어 빌딩
주제가 나오고 나서 개발을 시작하기로 했다. 주제는 '어울림'이었다.
첫 번째 아이디어
처음에 팀명이 '야구 좀 그만봐' 였기에 야구 + 어울림을 생각해서 야구팬들의 어울림을 고민했다. 하지만, 럭키톤을 진행하는 날짜는 이미 야구 시즌이 끝난 시기였기에 사람들의 이목을 받지는 못 할 것이라고 판단되어 접었다.
두 번째 아이디어
쿠팡 와우 공구 시스템이었다. 간단하게 말하면, 쿠팡와우 멤버십을 빌려줘 공구를 통해 수수료를 챙기는 시스템을 생각했다. 여기서 기숙사 생들의 어울림을 이끌어 내는 것이 었다. 하지만, 해커톤에 참가하는 사람들은 기숙사생이 적었을 것이며, 심사위원들은 이미 직장인이므로 이거 역시 사람들의 이목을 이끌어내지 못 할 것이라고 판단되어 아이디어를 다시 생각하게 되었다.
세 번째 아이디어
유학생 매칭 프로그램을 만들면 좋을 것 같다는 생각이 들어서 이것을 만들게 되었다. 우리학교는 졸업요건에 토익 또는 그 외 다양한 언어 점수를 필요로 하므로 이 프로그램이 괜찮을 것이라고 판단했다. 현재 학교에서 진행하는 유학생 프로그램은 매칭 시스템이라기보다는 지정 시스템이므로 원하는 않는 외국사람이 걸릴 수 있고 생활패턴, 동성과 이성 등등 문제점이 많을 것이라고 판단하여 이 아이디어는 많은 이목을 끌 수 있을 것이라고 생각하여 개발하게 되었다.
개발
파트는 한 번 더 설명하면 다음과 같다.
- 나 : AI (Chat GPT-4o)
- A : 기획(피그마) 및 발표
- B : 프론트엔드(웹) (React)
- C : 백엔드 (Javaspring)
이 부분에서 다른 파트의 기술 스택에 대해 문외한이라서 그냥 보기만 했으며, 나는 내 ChatGPT를 이용하여 배포를 진행했으며, 이에 대해서만 얘기 해보려고 한다.
나는 배포를 FastAPI를 이용하여 API를 만들고 AWS를 통해 배포를 했다. 이에 대해 관심은 없을 테니 GPT 프롬프트 작성에 대해서만 간단하게 얘기해보려고 한다.
sys_prompt =
"""
지금부터 너는 번역기야
1. 입력된 텍스트의 언어를 자동으로 탐지합니다.
2. 입력된 텍스트가 불쾌함을 유발하는 텍스트인 경우 False 를 출력합니다.
3. 입력된 텍스트와 번역 목표 언어가 동일하거면 None 을 출력합니다.
4. 입력된 텍스트와 번역 목표 언어가 다를 경우, 해당 텍스트를 목표 언어로 번역합니다.
5. 입력 텍스트와 번역 결과는 최대한 자연스럽게 변환되어야 합니다.
6. 번역 과정에서는 문법 및 어투를 적절히 유지하며, 입력된 문장의 의미가 왜곡되지 않도록 주의합니다.
예시는 다음과 같다.
번역 예시 1
입력된 문장: {안녕하세요}
목표 언어: {kr}
결과: None
번역 예시 2
입력된 문장 : hello
목표 언어: {CN}
결과: 你好
"""
usr_prompt =
"""
입력이 주어지면, 예시를 참고해서 결과만 출력해줘
입력된 문장 : {text}
목표 언어 : {target_language}
결과 :
"""
여기서 여러가지 프롬프트 기법이 사용되었으며 명칭과 어떻게 사용하는지에 대해 설명하려고 한다.
- 역할 부여 : GPT에게 번역기라고 역할을 부여한다.
- 예시 제공 : 번역 예시를 제공하여 응답하는 방법에 대해 추론하도록 한다.
- 포멧팅 : 원하는 방식으로 출력하도록 지시한다.
- 단계별로 행동하도록 지시 : 번호를 매겨 단계별로 실행하는 지침에 대해 수행한다.
다음과 같이 GPT를 이용한 ChatBot을 만들었다. 이를 통해서 내 AI파트는 끝났다. 코드에 대해서 궁금하다면 여기를 눌러 참고하기 바란다.
발표
발표는 총 2번에 걸쳐서 진행된다. 1차 발표는 2분만에 발표를 끝내야 하므로 최대한 압축해야한다. 그리고 2차 발표는 7분 동안 진행하므로 1차에서 발표했던 내용 + 디테일한 내용에 대해서 발표한다. 그래서 우리는 미리 7분짜리 PPT를 만들고 여기서 가장 핵심적인 부분을 추려서 2분짜리 PPT를 만들기로 했다.
발표시간대는 사진에 보는 것과 같이 05시와 09시다. (참고로 밤을 새웠다.) 1차 발표 평가는 상호평가, 2차 발표는 심사위원 평가이다. 근데 여기서 중요하게 알아야 할 점은 밤을 새웠다는 것이므로 절대 지루하게 해서는 안된다. 새벽 5시는 피곤에 쩔어있는 시간대이므로 무조건 관심을 끌어야 한다는 것을 알고 있었다. 그래서 언어 유희와 애드립을 넣었다.
최대한 간결하게 인트로를 시작했다. 덕분에 사람들의 이목을 끌 수 있었다.
근데 진짜 멘트는 기가막힌다.
수상
다들 일정이 있어서 시상식은 나만 참가하게 되어서 혼자 수상을 했고 사진을 보내줬더니 격렬하게 반응하는 팀원들의 모습이다. 이후에 같이 모여서 사진을 찍고 마무리했다.
정보대 학생회분들 덕분에 좋은 경험을 할 수 있어서 감사했습니다. 단대장 류씨를 포함해 모두 감사합니다.
'기타 > 일상' 카테고리의 다른 글
2024년 멋쟁이 사자처럼 해커톤 (0) | 2024.11.14 |
---|---|
2024 INU CODE FESTIVAL (0) | 2024.11.10 |
[일기] 레오폴드 FC900R PD 적축 청소(기계식 키보드 청소) (1) | 2023.12.25 |