해커톤을 빙자한 제주도 여행..(feat. 구름톤)

zzarbttoo·2024년 3월 10일
0

좀 늦었지만 써보는 구름톤후기라고하기는뭐하고제주여행 후기
사실 우리 팀이 입상을 한거도 아니고 완성을 다 한 것도 아니기 때문에 그냥 내가 본 것 위주로만 슬 적어보려고 한다
(👀그래서 거의 여행 일지 수준이지만 또 나중에 다시 보면 내가 행복해지지 않을까 해서 적어본다)


어느날 인생이 무료해서(+회사 업무에서 약간의 매너리즘) 아무 생각 없이 신청한 구름톤...
물론 직장인이여서 당첨돼도 포기해야겠다 생각하고 일단 무지성으로 호로록 신청...
했는데 웬걸... (어째서 왜 나에게 이런 일이)

사실 그 전주에 회사 데이터 검증 관련해서 프로토콜 만들어야 한다고 난리 버거지를 피웠으면서(?)
호로록 제주도 가는 것이 눈치 보였지만 또 인생에 몇 없는 당첨 아닌가(?)
밥도 주고 재워주는데 나도 한 번쯤은 길게 여행을 가보고 싶기도 해서...

참가 신청하기 직전까지 엄청 고민하고 이사님 팀장님께 가도 되냐고 15번 정도 여쭤보고
(눈치 안주시는데 걍 내가 눈치를 많이 봄)
동기님께도 여쭤보고 여기저기 여쭤본 끝에 다들 응원해주시고 잘 다녀오라고 해주셔서
호로록 비행기를 끊고 4일 연차를 갈기고(!) 회사 업무도 어느정도 주말내로 다 마무리하여 떠나게 됐다

0일차(해커톤 X, 여행)

혼자 비행기를 타고 갔는데 너무나도 행복했다..

(2년 전 워크샵 이후로 처음 보는 Hello JEJU)

가자마자 전복죽 한사바리 하고
새로운 여행 코스를 개발해보겠다고 나대다가(?)
국제 여객 터미널에 갇히기도 하고(갔는데 갈매기들 사이에서 어떤 분이 을씨년스럽게 기타치고 계셔서 너무 무서웠음)
또 탈출하여 우리 회사 데이터 분석가(보증된 여행 전문가)님이 추천해주신 이호테우 해수욕장도 가고
고등어 회덮밥도 먹고 용두암도 가고
세탁소를 개조한 멋쟁이 카페도 가고 올레길도 착실히 돌아다니다가
게하 룸메 분이랑 수다도 떨고 다음날 고사리 육개장 오픈런도 해서 먹었고 알차게 보냈다
(아래는 먹부림 자랑)


해커톤 1~2일차

첫날은 구름 워크스페이스에서 행사가 진행됐다
미리 작성한 노션 기반으로 자기소개를 하고(양심없게 21살때 사진으로 올림) 및 랜덤으로 뽑아진 팀과 함께 아이스 브레이킹 및 점심 식사가 있었다

이후 구름 GDS/카카오 크렘폴린 수업 중 하나를 택해서 들을 수 있었는데
프론트는 구름 GDS, 백엔드는 카카오 크렘폴린 수업을 듣는다 하여 나는 크렘폴린 수업을 들으러 갔다

(그 당시에는 쉬웠다...^^...진짜로...다들 그렇게 생각했을거다...^^...)

크렘폴린 강의에 이어서 구름 대표님/헌터님/로빈님의 강의도 들을 수 있었다
구름 대표님/헌터님은 비슷한 맥락으로 싸우지 말고 주요 기능 위주로 간단하게 개발해라~ 이런 뉘앙스로 말씀하셨고
로빈님은 이전에 카카오 오픈 세미나 때도 생성형 AI로 강의 해주시는 것을 들었던 적이 있었는데
이번에도 생성형 AI 관련해서 강의를 해주셨다(해커톤 주제가 생성형 AI를 이용한 제주 관광 활성화여서 오셨던 듯 하다)

그날은 한달만에 날이 맑아서 옥상에서 한라산까지 보인다고 하여 다같이 사진도 찍고 저녁 때는 삼겹살 회식도 하고 저녁 바다도 보러 가서 즐거웠다
(뭔가 대학생도 아니고 고등학생 느낌으로 다들 들떠있는 듯 해서 보는 나도 즐거웠다)

그리고 그 날은 아이디어 아이데이션 발표 준비 관련 과제가 있어서
회식 후 숙소에 들어가서 발표 준비를 하고 잤다


해커톤 2~ 4일차(이때부터는 사실 정신 없었어서 기억나는 것 위주로 적어봄..)

2일 차에는 카카오 워크스페이스에서 진행됐는데 코딩돌하르방으로 유명한 곳이었다
길 못찾아서 우연히 누구 따라 건물 내부로 들어갔는데 보안지역이여서 경비 아죠씨께 혼났다 다른 분들은 그러지 마시길
여기서 팀끼리 사진도 찍고 아이데이션 발표 및 팀빌딩이 진행됐다


  1. 아이디어 아이데이션 발표
    나는 사실 아무 생각 없이 왔고(!) 디자인과 기획은 진짜 뭣도 모르기 때문에
    내 것을 굳이 안해도 된다는 생각 + 구현 가능성에 초점을 두고 위와 같이 작성했는데
    (API 를 따서 사용할 수 있는 형태냐가 가장 중요함)
    사람들이 너무 아름다운 기획안들을 가져와서(!) 역시 나는 디자인/기획에 약하구나를 다시 한 번 느낄 수 있던 것 같았다
    글고 밤새 해온 사람들도 많은 것 같아서 열의가 대단하다고 생각했다
    (늙은이는 10시에 자야해서 빨리 하고 잤다고 변명해봅니다....)
  1. 팀 구성, 기획 회의
  • 아이데이션 이후에 팀빌딩이 있었는데 아이데이션 듣고 너무 같이 하고 싶은 주제를 발표한 사람이 있어서 달려갔으나 백엔드 선착순에서 밀려(ㅜㅜ) 나는 따로 새로운 팀으로 들어가게 됐고 그 팀으로 쭉 가게 됐다
  • 놀랍게도 다 여자분 + 제주도민이 3명이나 되었다
    • 그래서 다른 팀들은 다 팀명으로 제주 방언을 사용할 때 우리 팀은 익숙해서인지(?) 그냥 표준어를 사용했다
  • 주제가 선정되지 않아 난항을 겪었으나 한 분이 하고 싶어하시는 주제가 있는 듯 하여(부동산 조각 투자) 거기에 AI + 관광 주제를 접목시키는 방식으로 기획/개발이 진행이 됐다

그리고 이동한 숙소에서 짐을 풀고(3일 합쳐서 3시간 누워있던 듯 하다^^)

이후 비어파티를 하러 갔다

  1. 비어파티
  • 1차 랜덤으로 자리 배정 + 2차 직군별 자리 배정 이렇게 진행이 됐다
  • 거기서 진짜 특이한 사람들 많이 봤는데 너무 존경스러운 사람들이 많았다
    • 여자 군필 선생님도 계셨는데 약간 문화 충격이었다(너무 멋져서 번호 겟함(?))
  • 백엔드 개발 자리에서는 카카오 클라우드 파트에서 재직중인 멘토 선생님이 얘기를 이끌어주셨는데(?) 진짜 개발 좋아하시는게 느껴졌다
    • 나는 대충 어렴풋이만 아는 CS 지식들을 멘토 선생님은 어떻게 그 주제로 연구를 했고 이렇게 응용하면 어떨 것 같아요? 이런 식으로 말씀하시는데 너무 대단하다고 느껴졌다
    • 개발 수다를 그렇게 깊이 있게 오래 할 수 있구나를 처음 알았다(나는 얕기 때문에 금방 뽀록나서 개발 수다 잘 안떪)
    • CS 공부 열심히 해야겠다고 느꼈다

이후 개발과 배포의 연속....

  1. 배포(및 만난 에러들, 명령어들)
  • 카카오 클라우드에서 제공해주는 이미지를 사용해야 하는데 해당 이미지가 존재하지 않아서 에러가 남(근데 도커허브 것도 땡겨올 수 있다는 것을 나중에 알아버림)
  • 맨 처음 프론트엔드에 제공해주기 위해서 백엔드 + nginx 만 배포했는데 nginx에서 프론트 헬스 체크를 하는 바람에 프론트 응답이 오지 않아서 nginx 컨테이너가 죽어버림
  • 백엔드 배포 시 nginx 헬스 체크를 할 수 있는 url을 생성해주지 않아 어플리케이션 파드가 띄워졌음에도 nginx는 해당 api 가 죽어있다고 판단함
    • 백엔드에 alive 체크할 수 있는 엔드포인트를 생성해줌
  • nginx에서 백엔드의 경우 /api/라는 프리픽스를 설정했는데 백엔드에서 이렇게 작성을 안해서 에러남
    • 백엔드에서 api prefix로 /api를 붙여줌
  • 쿠버네티스에서 같은 프로젝트에 대해 배포를 진행해도 계속 다른 pod로 prefix가 붙어서 생성됨
    • 이는 쿠버네티스에서 해당 리소스에 대해 고유한 ID를 가지기 위해 랜덤한 접미사를 지정하기 때문
    • generatorOptions.disableNameSuffixHash를 true 로 설정
  • 그 밖에 잔잔바리 배포 실수들...
    • 빌드한 도커 파일을 제대로 땡겨오지 않음/yml에 해당 도커 이미지 이름 붙이지 않음 등등의 실수..
    • organization에 repository들을 넣었는데 크렘폴린에서는 organization의 레포를 인식하지 못해서 개인 레포로 변경해서 배포함
  • API 카카오 프록시 설정
    • 카카오 배포 환경 자체가 보안이 빡세서 포트도 함부로 뚫을 수 없고(DB를 사용하지 못한 가장 큰 이유) 내부에서 외부 API 요청할 때도 무조건 프록시 서버를 태워야 한다
    • fast api는 생각보다 프록시 서버 태우는 것은 쉬웠다
    • 근데 그럼 카카오는 gui db 툴 같은거 사용안하나..?(무조건 api 를 태운다는건가.. 아님 db서버 들어가서 접속..?)
    • 로컬에서도 컨테이너 기반으로 구축하는 연습을 해야겠다
  • 그 밖에 해결 못한 것들..
  1. API 개발(및 만난 에러들)
  • 이미지 생성과 이미지 편집 부분을 개발함
    • 이미지 편집 시 편집할 부분을 검정색 부분으로 마스킹해서 보내야 하는데 전체 영역이므로 해당 영역 크기의 이미지를 base64 로 생성하여 api 에 함께 전송함
    • 그 외 프롬프트 엔지니어링
  • fast api requestParam 에서 Optional 설정을 하지 않으면 에러남
    • corp_list: Optional[List[str]] = None 이런 식으로 Optional 설정
    • @dataclass_json(letter_case=LetterCase.CAMEL) 쓴다고 camel case 가 snake 로 변경되지는 않는가봄
  • karlo 요청 시에 image 형식 값을 제대로 전달하지 않으면 500에러가 뜨는 현상이 있었음
  • karlo로 받은 이미지를 url 로 받을 수 있었는데 이게 시간이 지나면 410 Gone 에러가 뜨게 됨
    • 이는 url 자체는 유효하나 해당 이미지가 카카오 CDN에서 삭제 되는 듯 했음
    • 실제로 이 에러 나기도 전에 선생님께서 url에 timestamp 찍혀있는데 이거 만료시간 있을 수도 있다고 언급하시긴 했는데 진짜 만료돼서 약간 소름이었음
    • 그래서 url 대신 일단 base64로 이미지 자체를 문자열로 인코딩해서 전달하는 방식을 사용하도록 변경했음(DB를 빠르게 구축할 수 없는 상황이여서 이게 최선이라고 생각했고 실제로도 동일한 이미지 규격을 맞추기 위해 많이 사용되는 방식이여서 그렇게 전달함)
  • CORS..^^...

그리고 날이 밝아 이뤄진 해커톤 발표....

  1. 해커톤 발표(라고 쓰고 발표 응원하기라고 적어본다)

4일차 자유시간 ~ 마지막날(해커톤 X, 여행)

으아 드디어 해방이다미ㅏ읾나어리나ㅓ리나머리ㅏㅁ너리

  • 아무튼 해커톤 끝나자 마자 바로 예약한 숙소로 갔는데 택시에 핸드폰을 두고 내리고 숙소에서 와이파이도 안돼서 멘탈이 나갔는데 거의 3일동안 못자서 너무 피곤해서 체념하고 누워 있었는데 우연의 일치로 옆동 숙소 분이 핸드폰을 찾아주셨다
    (이것이 럭키 포인트 소진..?)
    • 너무 감사해서 치즈케익하고 커피 사다 드렸다

그리고 진짜 여행을 시작했다..
누워서 밥도 먹고(?) 잠도 늘어지게 자고 다음날에 일어나서 섭지코지까지 걸어가는데

이전에 단 한번도 성산일출봉이 멋있다고 생각했던 적이 없었는데 걸어가면서 본 성산 일출봉은 진짜 엄청 크고 너무나도 멋있어서 왜 제주도가 세계적으로 유명한지 생각해볼 수 있었다 (근데 바람이 너무 많이 불어서 돌맞음(?))

이후에 대표님께서 추천해주신 스누피 가든도 가고

계획했던 깃든 카페도 가고 몽글 보리빵도 사오고
돌담길도 걸어다니면서 제주도 여행을 열심히 다녔다

그리고 비행기 타기 전 같은 팀에서 프론트엔드 했던 제주도 친구(라고 하기엔 나이차이가 많이 나지만 아무튼 친구임)와 마지막에 호로록 시간을 보내고 왔다

제주도에서 친구 사귀게 될 줄 몰랐는데 귀한 경험이었던 것 같다

알게된 점과 좋았던 점과 아쉬웠던 점 그리고 요즘 느끼는 점(?)

  1. 알게된 점
  • 제주도 및 제주 사람들에 대해서 많은 것을 알게 됐다(구름톤에 제주도민이 많음)
    • 제주도 친구들은 운전을 잘한다(?)
    • 제주도 사람들은 전부는 아니지만 대부분 감귤을 키운다(?)
    • ⭐ 제주 멜젓에 마늘 + 고추 + 소주(1잔) 을 부어먹어야 한다(존맛)
    • 제주도와 육지 사람(?)은 한글 아래아 읽는 방식이 다르다
    • 제주도 공항은 착륙하는 곳이 하나밖에 없다
    • 제주도 흑돼지는 품종 개량을 해서 저렴하고 맛있다
    • 제주도는 지역마다 바다 색깔이 다르다 등등...
    • 그리고 졸업 팀플로 했던 제주 하수 처리장 관련 내용을 제주 친구한테 실제로 들으니까 너무 신기했다
  • 구름톤 백엔드로는 [배포+외부 api 연동] 혹은 [배포+DB 이용한 CRUD] 할 시간 밖에 없다(택 1하는 것이 좋음)
    • 지난번 해커톤 때 약간 꿀빨았던(?) 경험이 있어서 둘다 가능할 줄 알았는데 그냥 내 자기 객관화가 안된 것 같았다
    • 일단 지난 해커톤 때는 DB나 서버 등을 어느정도 구축하고 시작했어서 편했는데 구름톤은 컨테이너 기반으로 크렘폴린 위에 다시 다 구축해야 해서 컨테이너 초심자라면 시간이 많이 든다 생각하면 된다
    • 외부 API 연동이 필요하면 프론트 쪽에서 하는게 낫고 백엔드는 그냥 CRUD 및 배포에 집중하는 것이 나을 것 같았다(언제나 생각하지만 해커톤에서 백엔드는 크게 중요한 요소는 아니고 배포라도 잘하면 반이라도 감)
  • 요즘 친구들은 카톡 대신 인스타를 사용한다
    • 이것이 세대차이..?
  • 요즘 친구들은 여행을 엄청 자주 다닌다
    • 나는 일만 하느라 몰랐는데 요즘 친구들은 여행도 자주 다니고 영어도 다 잘하는 것 같아서 영어 공부 열심히 해야겠다고 생각했다
  1. 좋았던 점
  • 세상에 예쁜 곳이 참 많다는 것을 알게 됨
    • 내가 왜 반차 위주로 갈기고 살았을까 길게 여행을 갈껄..^^..
  • 세상에 대단하고 멋있고 엄청난 사람들이 많다는 것을 알게 됨
  • 우리 회사 사람들이 상호 존중 기반 커뮤니케이션에 굉장히 능하고 협업을 잘 하는 사람들이라는 것을 알게 되고 존경심을 가지게 됨
    • 확실히 오래 된 사회인들은 대학생들과 달랐다...
  • 회사에서 운영파트를 맡지 않아서 막연하게만 알고 있던 개념들을 직접 배포하면서 어느정도 알게 됨
    • k8s nginx 역할 및 설정 등에 대해서 어느정도 알게 됨
  • 백엔드 선생님들이 칭찬도 많이 해주시고 오랜만에 누구에게 의존적으로 질문하면서 개발할 수 있어서 눈물났음(+ 개발 자체를 너무 사랑하시는게 느껴져서 자극을 많이 받았음)
    • 구름/카카오에서 멘토 선생님들이 상주하시면서 질문 받아주셨는데 진짜 다들 엄청 고수셔서 원인 파악도 바로 해주시고 해결까지(!) 바로 해주심(누가 회사에서도 그렇게 해주시면 좋겠음)
    • 엄청 멋쟁이 카카오 개발자 선생님이 나보고 개고수라고 해주셔서 기분 좋았음(왜 그러셨는지 이유는 모름 아마 나의 아가뤼 개발(?)에 넘어가셨나)
    • 회사에서는 만날 수 없는 선생님이라는 존재...아리ㄱ가또....벌써그립다....
    • kubectl 치기 귀찮아서 alias 바로 설정하시는 것 보고 진짜 대단하시다고 생각했다
    • 그리고 DB 사용 못했다고 자책했는데 선생님이 괜찮다고 말씀해주셔서 너무나도 감사했고 위안이 됐다
  1. 아쉬웠던 점
  • 제주도에서 운전을 못해서 너무 아쉬웠다
  • 기념품은 넉넉하게 사올껄...
    • 인턴 분들 오시는 것을 생각 못했는데 보리빵 갯수 모잘라서 회사 사람들 중 몇분께 못 드려서 너무 아쉬움
  • 좀 더 완성도 있게 개발을 못한 것이 너무나도 아쉽다
    • DB 구축할 시간이 없어서 하드 코딩으로 response 했고 fast api 가 구축하기 편하고 api 문서도 자동으로 스웨거로 줄 것이라 생각해 fast api 로 개발하는 것을 선택했었는데 배포 환경에서 다 차단당해서 명세 공유를 편하고 빠르게 못한 것이 너무 아쉬웠다
  • ⭐ 노트북 받침대 안 들고 간 것이 너무 진짜 완전 안 좋은 판단이었다 ⭐
    • 덕분에 글을 쓰는 지금까지도 어깨가 너무 아픈 상태이다(해커톤 4일 내내 유인원처럼 지냄)
  1. 가서 느낀 점 + 요즘 느끼는 점
  • 완벽하지 않게 일이 마무리 될 때가 있고 좋지 않은 일이 일어날 때도 있는데 안 좋은 일에 집착하기 보다는 거기서 얻은 좋은 것들을 집중하고 가져가려고 노력해야 함
    • 중요도가 엄청 높은 일이 아니라면 돌아버리기 전(!)에 일부 포기하는 것도 나쁘지 않은 선택임(물론 그게 사고가 난 것을 수습하는 과정이라면 다른 얘기지만)
    • 다른 맥락이지만 해커톤 관련해서 대표님과 나눈 대화 중에 "정말 힘들거나 안 좋은 일에 기준이 생기면 그 기준에에 못 미치는 일들은 더 이상 힘들게 느껴지지 않는다"라는 말이 있었는데 정말 그러한 것 같았다
  • 역시 생성형 AI 는 핫한 주제이다
    • 우리 회사 뿐만 아니라 대부분의 회사 리더들이 어떻게 이를 적용해야 할지 고민하는 단계에 있는 듯 했다
  • 이제 나는 더 이상 완전 신입은 아니다
    • 일단 가서 대학생 친구들과 오랜만에 같이 일을 했는데 확실히 내가 늙은이(!)가 된 기분을 많이 느낄 수 있었고 생각하는 것도 많이 다르다는 것도 느낄 수 있었다
    • 복귀 날에 인턴분들이 들어와서 더 그렇게 느끼는 것일 수도 있고 이제 내 뒤로도 사람들이 많이 들어와서 그럴 수도 있다...
      (인턴 분 중 한 분이 장난으로 나보고 춘추가 어떻게 되시냐고 물어보셔서 문화 충격이었음)
    • 아무튼 이제부터 ASK 처럼 굴지 말고 어른스럽게 살아야겠다
  • 나는 구현 속도가 너무 느리다
    • 너무 내가 급하게 생각하는 것인지 마감기한을 빠르게 잡는 것 같다(당연히 그 때까지 못할 정도로)
    • 옛날에는 팀장님께서 마감기한을 엄청 널널하게 잡으시네~ 이렇게 생각했는데 지금 생각하니 그렇게 잡는 것이 맞는 것 같다(역시 짬바..?)
    • 마감기한을 넉넉히 잡는 것도 중요한데 일단 개발 연습을 많이 해야겠다(백준 골따리 탈출 모임 구함)
  • 뭔가 디자이너 <> 프론트엔드 <<<<<<>>>>>> 백엔드의 넘을 수 없는 벽이 있는 듯 했다
    • 항상 우리 회사 프론트엔드분과 일하면서도 느끼지만 같은 개발자여도 프론트와 백은 느낌이 다른 듯 하다
    • 뭔가 프론트엔드분들은 백엔드보다는 디자이너 쪽에 더 가까운 느낌...(아직 내가 많은 분들을 본 것 같지는 않지만 그냥 직종이 다른 느낌)
    • 디자이너분들은 그냥 다른 세상 사람 같음..
  • 프롬프트 엔지니어링은 엔지니어링인가?
    • 아직까지 내 느낌에 API 호출 등은 그냥 다른 사람 것을 가져다 쓰는 단순한 느낌인데 프롬프트 엔지니어링이라는 용어가 붙으니까 뭔가 엄청난 일을 하는 느낌이 든다
    • 하지만 결과론적으로는 남에 것을 갖다 쓰는 것이여서 이게 진짜 엔지니어링인가 하는 생각이 든다
      원래 개발이라는게 다 남의 기술을 파먹는 것이지만...

힘들지 않았다고 한다면 거짓말이겠지만(!) 그래도 적고보니 신박하고 재밌는 일들이 많이 일어났던 것 같다
그리고 뭔가 학창시절로 돌아간 느낌이여서 좋았던 것 같다
근데 이제 더이상의 해커톤은 naver....(이러고 또 나갈 수도 있긴 함)

profile
나는야 누워있는 개발머신

0개의 댓글