SW사관학교 정글/정글일지 14

[Week15] 나만의 무기를 갖기 - 5

최종발표까지 준비를 많이 했고, 서버 상태도 완벽하게 해놨는 데, 어이없게 발표 때 문제가 터지고 말았다. STT서비스인 리턴제로 쪽에 보내는 API가 한번에 뭉치는 문제가 생겨 429 에러코드가 계속 들어와서 STT가 되지 않았다. 한번도 이런 적이 없었는데... 무튼, 이 때문에 발표 중간에 NLP 서버를 재부팅했고, 다시 동작하는 것을 확인했다. 그러나 이 진행 상태를 알 리 없는 태리는 오류가 터지자마자 혹시 몰라서 준비해놨던 비상용 시연 영상을 빠르게 틀어버렸고, 우리는 시연을 하는 데에 실패했다. 발표가 끝나고 질문 시간에 아무도 질문을 하지 않아 조금 불안했다. 아무래도 지피티를 사용해서 남이 볼 때 아 그냥 쉽게 쉽게 갔구나로 보일 수도 있다고 생각했다. 그러다가 어떤 분이 오셔서 이것 저..

[Week15] 나만의 무기를 갖기 - 4

중간 발표를 마쳤는 데, 운영진 측에서 키워드 맵으로 문맥 파악이 전혀 안되는 데 문맥 파악이 되었다고 억지를 부리는 느낌이다. 수정하라는 피드백이 들어왔다. 이 때문에 다시 회의를 했는 데, 결국 문맥 파악이라는 것에 초첨을 두게 되면 키워드 맵으로는 당연히 단어끼리의 연결이기 때문에 될 수가 없었고, 다시 처음으로 돌아가 마인드 맵으로 수정해야 한다는 결론이 나왔다. 차라리 처음에 마인드맵으로 하지말고 키워드맵으로 하라는 피드백이 없었으면 더 나았을까? 라는 생각도 문득 스쳐지나갔다. 그러나 우리의 아키텍쳐는 이미 키워드 맵에 맞게 끔 수평 관계로 구성되어 있었다. 각 노드는 서로의 존재를 모르고 이 노드들을 연결하는 Edge라는 구조체가 있는 상태였다. 이를 마인드맵으로 수정하려면 일단 상하 관계가..

[Week15] 나만의 무기를 갖기 - 3

키워드 추출하는 타이밍을 정하는 데에 ELMo를 사용하려고 시도했다. ELMo는 사전학습된 모델로 단어의 임베딩 섹터를 생성하여 문맥이 바뀌었을 때를 알 수 있는 모델이었다. 나는 이를 사용하여 문맥이 바뀔 때를 체크해서 Keyword의 추출타이밍으로 적용하거나 키워드를 묶을 때 다른 메인 아이디어로 묶고자 하였다. 찾아보니 한국어 모델이 mini 모델이지만 있긴 있어서 이를 사용하게 되었다. 그러나 세팅을 마치고 직접 사용해보니 mini model이어서 그런가 성능이 너무 안좋았다. 이 때 사용한 예시 스크립트는script = '여행 어디로 갈까? 대구나 부산 어때? 그럼 부산으로 가자. 우리 여행가서 먹을 점심 메뉴 고르자. 국밥이나 밀면 어때?' 였는 데, ELMo 에서 반환된 데이터는switchi..

[Week15] 나만의 무기를 갖기 - 2

프로젝트를 개발하며 Keyword를 추출하는 것이 아무래도 Main Server에서 수행하면 부하가 너무 심할 것 같아서 차라리 언어에 친화적인 NLP Server를 따로 구성하기로 했다. 그리고 사용할 수 있을 만한 기술들을 찾아봤는 데, KRWordRank, Elmo, KoBERT 등의 라이브러리와 언어모델을 사용할 수 있을 것 같다. KRWordRank는 비지도학습으로 키워드를 추출해주는 라이브러리다. 그래서 이를 이용하여 문장에서 단어를 추출하는 데 성공했고, 조사나 부사까지는 필터링이 가능하다는 것을 깨달았다. 그러나 다른 문제가 생겼다. KRWordRank는 이 문맥에서의 가장 중요한 단어를 추출한다기 보다는 반복적으로 많이 나오는 단어에 대해서 중요도가 올라가서 가장 중요한 단어 순서로 뽑아..

[Week14] 나만의 무기를 갖기 - 1

나는 해내야한다 조의 서포터로 팀에 참가했다. 원래 내가 팀장을 하고자하는 생각이 있었으나, 이전에 0주차에 같이 팀을 했었던 태리와 마음이 맞아 둘 중에 한명이 팀장을 하기로 했다. 나는 이전 회사에서도 파트장까지 달았었고, 게임을 할 때도 길드장을 한다던가 공대장을 하는 등 리더 위치에서 무언가 했던 경험이 많았고 프로팀 생활도 했었기 때문에, 이번에는 태리에게 팀장을 양보하기로 했다. 아무래도 포폴쓸 때 나보다는 태리에게 더 많은 도움이 될 것이라고 생각했다. 처음에 우여곡절이 많았다. 내가 프로젝트를 시작하자마자 3일정도 몸살에 걸려서 거의 아무것도 못하고 잠만 잤는데, 정신이 들었을 때 마다 한두마디씩 툭툭 던진 아이디어 로 나머지 팀원들이 아이디어를 추리고 재밌게 바꿔서 제출했다. 이 때 나 ..

[WEEK07] 정글 속 으로 - Pintos Kaist

Pintos 주간이 시작됐고 예상대로 너무나 바빠 week 06 log를 쓰지도 못했는데 생각 난 김에07 log부터 쓰기로 했다. 일단 확실하게 느낀 점은 SW정글은 코드를 잘 짜기를 보다는 CS를 배우는 커리큘럼이라는 것과 코드 짜느라 머리털 뜯을 시간에 PINTOS 코드 뜯어보면서 머리털 뜯는 게 낫다는 결론을 냈다. **(탈모는 어차피 온다)** 대신에 PINTOS부터는 내용이 너무 방대하고 기억하고 싶은 내용이 많아 Notion이나 Velog에 WIL나 TIL를 저장하고 싶은 욕심이 생겼는 데, 뭔가 남이 보는 건 부끄러워서 그냥 깃허브정글 아카이브에 마크다운으로 만들까 고민 중에 겸사겸사 로그를 작성했다.

[WEEK06] 탐험준비 - Webproxy Lab

6주차의 정글일지를 쓰는 현재는 무려 17주차 막바지... 팀플이 거의 막바지로 접어들면서 약간 한가해졌다. 그래서 미뤄뒀던 정글일지를 쓰고자 한다. 벌써 2달이 지난 시점이지만 이 때 당시의 기억을 해보면 새록새록 나는 것 같다. 먼저 민방위가 포함되어있는 주차였어서 최대한 빨리 끝내고자 했었다. 팀으로 영민님과 동환님이 배정됐다. 두 분 다 전공자기도 하고 정글내에서 잘하는 사람들로 유명해서 더 어려운 주간, 예를 들면 핀토스 주간에 같은 팀이 되었으면 좋겠다고 생각했었는데, 핀토스 직전에 팀이 돼버려서 조금 아쉬웠다. 여튼 팀이 되자마자 회의를 했는 데, 각각의 일정이 다 있는 상태였어서 같이 점심을 먹을 수 있는 횟수가 3번 정도밖에 되지 않았다. 그러나 모두의 목표는 동일했는데, 바로 자신의 일..

[WEEK05] 탐험준비 - Malloc Lab

정신 없는 5주차가 지나갔다. malloc lab은 OS에서 malloc이 작동하는 방식을 학습하기 위해 모형을 만들어보고 이해하는 과정이었다. 중간에 EC2가 터지는 불상사가 일어났다. 그래서 Docker로 Ubuntu 환경을 만드는 것에도 도전해봤다. 처음에는 진짜 뭐가 뭔지 Docker를 어떻게 다뤄야 하는지도 몰라서 오랜 시간동안 버벅였다. 그러다 Container를 내가 직접 Docker에서 만드는 것이 아닌VS Code에 내장되어 있는 기능을 이용해서 이미지를 만들고 devcontainer를 구성하는 것이 훨씬 효율적이고 편하다는 것을 알게 됐다. 심지어 devcontainer를 폴더 안에 넣어놓고 VS Code로 실행하기만 해도 알아서 드라이브와 bind 해줄 뿐만 아니라 폴더 내의 환경 변..

[WEEK04] 탐험준비 - Red-Black Tree

4주차가 지나가면서 동기들의 개발일지를 봤는 데 자신이 새로 알게 된 알고리즘이라던가 코드같은 것들을 설명하고 정리하면서 깔끔하게 정리해놨는데, 내 개발일지는 너무 일기장처럼 그냥 느낀 점만 주저리주저리 써놓은 것같아서 조금 부끄러워졌다. 그래서 대신에 백준 알고리즘 리포지토리 외에 정글에 코드 아카이브를 따로 만들어서 새로 짜본 코드라던가 그런 것들을 저장해 놓기로했다. 이번 주에 깃허브의 아카이브에 내가 만든 모든 프로젝트를 삽입하고 싶어서 관련된 기능을 찾아보게 되었는데 깃허브에 subtree와 submodule이라는 기능이 있는 것으 알게 되었다. 이를 사용해 보려고 시도하다가 2시간 정도를 태워 먹었는데, IDE에서 지원해주는 깃허브 관련 기능이 생각보다 많이 없었다는 것을 알게 됐고, 어지간한..

[WEEK03] 컴퓨팅 사고로의 전환

정글의 마지막 알고리즘 주간인 3주차가 지나갔다. 걱정한대로 DP는 정말 지옥이었다. 출제자가 만들어 놓은 점화식을 찾는 다는 것은 생각보다 더 어려운 일이었다. 체감상 그리디 골드3 문제보다 DP 실버5 문제가 더 어려운 느낌. 알고리즘 주간을 진행하며 머리가 가장 아픈 주간이었다. 오죽하면 두통약까지 찾아 먹었다. 문제를 푸는 데도 오래걸려서 모든 주간을 합쳐서 문제의 갯수는 가장 적은데도 불구하고 결국 마지막 문제를 해결하지 못한 채 1주가 지나게 됐다.   알고리즘 주간 통틀어서 시험문제에 대해서도 가장 걱정이 많았다. 아무래도 연습문제도 다 풀지 못했기 때문에 도대체 시험 문제에서는 어떤 문제가 나올까라는 생각을 했다. 시험이 시작됐고 구현 1문제, DP 2문제, 그리디 1문제가 나왔다. 구현 ..