일지/막학기 전까지(23.02.15~23.03.01)

20230217금-자취 손품, 알고리즘 디렉 정리, 비상을 위해

제로타이 2023. 2. 18. 03:40

 

목차

     

    첫 지원 결과는?

    급한 마음에 내기는 했지만, 생각해보면 내가 취업 시장에 정말 제대로 발을 들이는 건 처음이다. 부캠 아니었으면 이력서라던가 포트폴리오 만들 생각만 해보고 시도도 못 해봤겠지. 하지만 결국 조잡하지만 만들어서 처음으로 지원서도 제출해본 것이다. 
    듣기로는 게임듀오 측에서 금요일 오전까지 지원자들에게 과제 메일을 발송해준다고 했던 것 같은데, 나는 안 왔다. 간단하게 지원서 검토를 한다고 들었는데 그래도 어느 정도 보면서 거르고 과제를 보내주는 모양. 개인적으로 그 과제가 실무에 정말 가까운 과제라고 들어서 꼭 해보고 싶었는데 아쉽게 됐다.
    첫술에 배부를 거란 생각은 안 했다. 게임 회사라 기회를 잡고 싶다는 생각은 했지만, 사실 정말 기회를 잡으려면 나도 준비가 되어있어야 할 것이다. 요컨대 내 스스로가 봤을 때 '이 친구 한번 기회를 줘볼까?'가 아니라 '이 친구 궁금한데? 나쁘지 않은데?' 수준까지 내가 올라서야 제대로 취업 시장에서 경쟁력을 발휘할 수 있지 않을까 하는 것이다.

    요컨대 속은 쓰리지만 첫경험이라고 위로할 수 있는 탈락이라고 해두겠다!
    사실 맘 편히 패배의 쓰라림을 맛볼 여력이 없어서 그런지 타격이 별로 없긴 하다..ㅋㅋ

    자취 알아보기

    이제 내게 또 중요한 안건으로 떠오르는 것이 바로 학교 근처 자취할 곳 알아보는 것이다. 통학 왕복 5시간을 잡고 다니던 지난 날들의 고통을 더 이상 겪을 수는 없다. 그것 때문에 여태 내가 오전 강의를 신청 못했는데, 오전 강의를 버린다는 여유를 챙길 수 없다. 그렇다면? 어떻게든 자취를 해야 하는 것이다. 기숙사는 아깝게도 떨어졌고 좋은 방을 알아보기에는 이미 타이밍이 많이 늦기도 해서 간단하게 고시원을 알아보려고 한다. 
    그렇다고 무조건 고시원으로 확정은 아니다. 아직 방을 알아볼 자리느 많은 모양이라, 알아보기 쉽게 고시원으로 당장은 한정짓는 정도.

    내가 사는데 있어서 필수적인 요소들은 뭐가 있을까? 군대에서 생활했던 바, 어느 정도 내가 타협할 수 있는 정도가 무엇인지는 얼추 알 것 같기도 하다.

    개인 욕실/화장실 - 안정적인 온수
    컴퓨터 랜선 - 당연히 컴퓨터 놓을 책상 공간 필요
    건조기 or 근처 빨래방 - 공용이어도 무관
    개별 냉방
    입주시기는 3월 초
    학교로부터 청량리역 정도까지의 거리면 OK. 경희대 근처까지 타협 가능
    예산은 1000. 3월부터 6월말까지 산다고 치면 3달. 한 달에 월세 포함 80이면 널널하게 살지 않으려나. 그러면 600정도까지는 보증금으로 고려할 수 있을 것 같다. 만약 알바를 하면서 산다면 보증금에 금액을 더 넣을 수 있을 것이고, 대출을 받는 것도 방법은 될 듯하다.
    생각해보니 3달 사는 건데 월세 구하는 게 가당찮다는 느낌도 든다..

    일단 이 정도 생각해보고, 간단하게 인근 지역 시세를 알아본다는 느낌으로 검색을 해보자. 어차피 궁극적으로 집은 발품 파는 게 가장 베스트긴 할 것이다. 

    정문 지역

    해피하우스

    예약 13번 -- 불가능
    그래도 아쉬운 곳.

    시대고시원

    평이 너무 안 좋음. 온수가 일정하지 않다고 한다.

    아트빌고시텔

    자전거 있으면 좋을 것 같은 위치. 근처 편의점 존재. 원룸형
    가격은 20~30으로 나와있다. 발품팔 때 한번 참고해보는 게 좋을 듯.
    02-2245-5155

    코코레지던스

    코코레지던스(청량리점) - 전농동 고시원/고시텔/쉐어하우스 (gobang.kr)
    원룸형 자리 20개. 문의 필요.
    중앙 냉방인 듯

    진주원룸텔

    조건 충족
    환기가 잘 안 된다고 한다. 습기 관리가 잘 안 돼서 곰팡이가 많이 생기기도 한다고. 에어컨이 있는데 왜 습기 관리가 안 되는지 조금 이상한데..
    네고 잘하면 33만원에 가능하다고 한다.

    노블레지던스

    회기/후문 지역

    오투원룸텔

    회기역 너머에 있음. 37~ 55
    조건 충족

    하늘정원원룸텔

    조건 충족 30 ~ 45

    경희대 인근 지역(자전거 필수)

     

    서울에서 첫 자취 집 구하기 대장정⭐️ (fe.. : 네이버블로그 (naver.com) 이 글이랑 성재 형 조언을 듣고 조금 더 집 구하는 것에 대한 감을 잡았다. 결국 결론은 발품이다..!
    성재 형 조언을 듣고보니 생각난 건데 처음부터 대학 동기들한테 물어볼 걸 그랬다..! 왜 그 생각을 못했지😅

    영재부동산, 정문 채널 부동산
    토요일에 사람이 있으려나 모르겠다. 그래도 지금 정도면 아직 입주 시기가 아닐까 하는데, 그러면 할 수도 있지 않을까?
    일단 발품을 한번 뛰러 가보자고. 역시 직접 뛰어봐야 알 것 같다. 쭉 알아보면서 어느 정도 감은 잡은 것 같으니까, 진짜 괜찮은 방이 지금 있는지 찾아볼 필요가 있겠다.
    일단 정문쪽 부동산, 이후 후문, 이후 경희대로 넘어가기. 안되면 제기동, 답십리 쪽도 생각해보자. 

    일단 당장은 고시원을 생각해서 고방과 고시락을 둘러보며 가격대와 방이 어때야 할 지 생각해보는 중. 
    베스트는 전세일 것 같기는 한데, 당장 전세 알아보는 것도 조금 빡센 일이 될 수도. 
     이번 년도는 입시 결과가 빨리 나와서 방들이 빨리 차서 지금 시기가 굉장히 늦었다는 이야기도 들었다. 

    공과금, 전세 대출, 청년 대출, 근저당, 관리비에 어떤 항목이 들어가는지, 
    LH에서 지원해줄 수 있는 전세는 따로 있다고? 

    알고리즘 다시 도전! ...을 위한 준비!

    이제는 더 이상 무를 수 없다. 어차피 팀원들과 알고리즘 공부를 함께 하게 될 것이라지만, 부족한 내 기량을 늘리기 위해서 나 혼자 간단하게 투자하는 시간도 필요할 것 같다. sql은 말할 것도 없다.

    오랜만에 백준 단계별로 풀어보기를 들어가니 새로운 항목이 추가되면서 내가 기존 목차에 맞춰 만들어둔 디렉들에 혼동이 오게 됐다. 아마 request를 잘 활용하면 현재 페이지에 맞도록 내 파일들을 정렬하거나 디렉 정리를 하는 코드를 짤 수 있을 것 같다. 그렇지만 당장 하지는 않겠다. 일단은 다시 알고리즘 감을 잡는 게 우선이다.

    근데 매번 이렇게 보이는 것, 매우 불편하다. 1다음은 2여야하는데 11이 나온다. 이게 깃헙에서도 이런다. 아예 01로 바꿔버려야겠다.

    손으로 일일히 치기 심히 귀찮은 관계로 쉘스크립트의 도움을 받을 생각이다.

    대충 인터넷에서 검색해보고 따라한 건데, 의도대로 잘 작동이 됐다. 이게 가능하다면, 당연히 전 번호 디렉의 내용물을 현 번호에 넣는 것도 가능할 것이다.

    그런데 조금 난감한 이슈가 생겼다. 아무래도 아예 순서가 바뀐 모양이다.

    귀찮지만 당장 작업을 해서 페이지의 정보에 따라 내 디렉토리를 재정렬하는 코드를 만들어야겠다. 그전에 일단 이름을 짓는 방식을 통일시킨다. 맨처음 내가 알고리즘 공부를 시작할 때는 모든 순서를 정확하게 지키기 위해서 한 단계 속에 있는 문제들의 순서도 지키려고 했다. 그러나 간혹 관리자에 의해 순서가 변경되거나 새로운 문제가 추가되기도 한다는 것을 알게 된 이후로는 파일 이름에 문제 번호만 적게 되었다. 하나로 확실하게 통일해서 재정렬을 용이하게 하자.

    홀리몰리.. 지금 보니까 확실히 내 코딩 역량이 올랐다는 게 느껴진다. 이전이었으면 내가 일일히 파일이름을 바꿨을텐데..

    그럼 이제 재정렬은 어떻게 할 것이냐? 내 생각은 이렇다. 어떤 식으로 백준 페이지의 구성이 바뀔지 알 수 없다. 어떤 문제는 빠지기도 하고 어떤 문제는 추가되고, 어떤 문제는 다른 단계로 들어갈 수도 있다. 그러니 일단 단계 속 모든 파일들을 꺼낸 뒤에 현재 페이지 상에 있는 모양에 맞춰 다시 넣어주는 과정을 해주면 된다. 꽤나 오래 걸리는 작업이 될 수도 있다. 하지만 가장 확실한 방법이기도 하다.

    그렇다면 이제 웹페이지에서 디렉 순서를 크롤링할 차례이다.

    그냥 하면 403이 뜬다. 잘못된 접근을 했다는 것이랜다.

    그러면 이렇게 헤더를 넣어서 크롬 브라우저에서 시킨 것처럼 자연스레 서버를 속여준다. 내 서버에 get 요청 날릴 때랑 실제 서비스 중인 서버에 get 요청 날릴 때랑 기분이 다르다.. 뭔가 범죄를 저지르는 것 같은 기분인 걸. 혹시 진짜 범죄인 건 아니겠지?

    beautifulsoup 사용법은 솔직히 잘 모른다. 정말 필요한가도 방금 전까지 고민하다가, 내가 찾고 싶은 선택자? 컴포넌트? 태그? 그 머시기를 찾을 수 있게 도와준다길래 냉큼 도전해보는 중이다.

    요컨대 이렇게 찾아줄 수 있다는 것이다.

    여기 어딘가에 내가 찾으려는 그것이 있을 것이다. 크게 table로 묶이고, 그 안에 자잘한 td가 있는 것이 보인다.

    td는 표 속의 각 셀을 뜻하는 모양이다. 그리고 링크가 걸리는 놈들은 a라는 놈으로 한번 더 묶인다.

    일단 이정도까지 찾아냈는데, 이 이상으로 더 들어가서 a를 찾아내는 방법을 모르겠다.

    그래서 그냥 이렇게 뽑아보는데, 재밌는 점이 서버 api도 목차를 반영하고 있지 않았다. 일이 귀찮아진다.

    뭐.. 어떡하냐. 다른 방법을 모르니 저 방법을 정말 쓰는 수밖에 없다. 각 페이지에 들어가서  문제번호를 가져오는 코드는 이렇게 된다.

    거의 다 됐다. 단순하게 대입하는 식으로 코드를 짜서 각 페이지 별로 문제가 하나마 들어가게 돼있다. 이것을 append하는 식으로만 바꾸면 이제 진짜 준비가 끝난다. 
    근데 이거 다 도는 데 11초가 걸리는데 이거 맞냐?

    아무튼 내가 원하는 거 다 꺼냈다! 당연하지만 페이지 내 문제 순서에 맞게 잘 나열되어 있다.

    다음 단계는 이미 존재하는 디렉 속의 모든 파일을 꺼내오는 것. 그러기 전에 이제는 cph 덕에 쓰지 않게 될 메이크파일도 전부 삭제해줬다.

    일단 다 뽑아. 뽑는 건 생각보다 시간이 정말 걸리지 않았다.

    이건 왜 이렇게 시간이 적게 걸리지.. 로직을 생각해보니 삼중 반복문을 돌게 된다. 일단 각 페이지를 기준으로 순회를 한다. 그러면서 해당 페이지에 해당하는 디렉이 없다면 미리 만들어준다. 그리고 이전에 다 뽑아둔 파일들을 넣는 과정을 거쳐주는 것이다. 그러기 위해서는 꺼내왔던 모든 파일들에 대해 순회를 돌아야 한다. 지금 생각해보니 감싸는 순서가 거꾸로 되어야 더 시간이 빠르려나? 아무튼 그리고나서 그 각각의 파일이 해당 단계를 뜻하는 디렉에 들어가는지 확인을 해야 하기 때문에 in을 통한 간략한 반복문을 또 돌게 된다. 
    그런데 시간이 정말 적게 걸린다. 왜지..? 단순하게 파일 갯수가 많지 않아서 그런 것일 수도?

    그것보다 재밌는 게 있다. 혹시나 나는 페이지가 업데이트 되면서 문제가 추가는 되도 삭제는 안 되겠지 생각하고 있었다. 그런데 여기 남은 것들은 뭘까?

    10942.py 파일만 봤다. 5달전, 8.28에 풀린 이 문제는 24단계에 위치했다.

    ㄷㄷ 진짜 없어졌네? 관리자가 문제들을 추가하는 과정에서 다른 것으로 대체할 수 있다고 생각하는 것은 대체를 해버리는 것일까? 흠.

    뭐, 없어졌다고 내가 푼 코드를 없애버리기는 아까우니까 이렇게 따로 유기 디렉을 만들자. 이렇게 하면 추후에 페이지에 이전 문제가 다시 추가된다고 하더라도 유기된 디렉의 파일을 그쪽에 넣을 수 있게 된다. 

    간단하게 제대로 코드가 작동하는지 확인하면서 내친 김에 설명도 넣으면서 찍어봤다. 
    협업을 하면서 내가 약하다고 생각했던 것 중 정말 치명적인 것은 내 설명 능력이 매우 빈약하다는 것이었다. 머릿속에서는 핑핑 돌아가지만 그걸 말로 꺼내려고만 하면 말문이 막혀서 어버버거릴 때 팀원들에게 너무 미안했다. 특히 나만 공부한 내용이라 이걸 공유해야 하는데 내가 설명을 잘 못하니까 내 스스로가 답답하게 느껴졌다. 
    또 이번에 얼결에 내가 발표 영상의 일부 부분을 발표하게 되었는데 내 발음이 정말 좋지 않다는 것을 새삼 느꼈다. 발성도 그다지 좋지 않고. 그래서 지속적으로 내 말투나 목소리를 계속 들어보는 시간을 가져야겠다는 생각이 들었다. 어제 기술 면접 연습을 한답시고 말을 할 때도 어버버거렸는데 진짜 면접 보러갔을 때도 그러면 안 되잖냐.
    들어보니까.. 목소리에 힘 주고 말하는 것보다 그냥 나른하게 말하는 게 훨씬 더 나은 것 같냐.

    생각보다 쉽게 성공해서 조금 기분이 들뜬다. 근데 시간을 확인해보니까 왜 3시지? ㅋㅋㅋ
    이제 주기적으로 한번씩 만들어진 코드를 실행해주면 백준 페이지와 내 알고리즘 깃 저장소를 동기화할 수 있다.

    * 스크래핑은 특정 페이지의 정보를 추출하는 것. 크롤링은 웹상을 돌아다니며 정보를 탐색하고 수집하는 것 웹 크롤링(Crawling)과 스크래핑(Scraping) 차이 (tistory.com)

    조금 더 디벨롭시킬 만한 게 있을까?
    백준 페이지를 기준으로 디렉토리를 만들기 때문에 내가 풀지 않았음에도 54단계까지 디렉토리가 생겨났다. 이것은 그다지 보기 좋지 않은 것 같다. 
    페이지를 스크래핑하는 과정이 너무 오래 걸린다. 이를 단축시킬 방법은?
    정말 삼중 반복문이 답이냐? 애초에 저런 알고리즘보다 더 좋은 방식은 없을까? 가령 위치가 바뀌지 않은 문제까지도 구태여 밖으로 꺼냈다가 넣는 과정을 거쳐야 하냐는 말이다.

    만약 이런 걸 오픈소스화한다면 쓸 사람이 있을까? 몰?루
    아무튼 내 작업이 자동화됐다는데 만족하자.

    회고 및 다짐

    뭔가 잡다한 걸 많이 받았다. 네트워킹 데이 때 열심히 돌아다닌 보람이 있는 건가..?!

    티스토리API를 이용하여 글 일괄 수정하기 (tistory.com) 문득 해보고 싶은 시도 중 하나. 이걸로 태그를 일괄 적용할 수 있지 않을까 싶네. 태그를 넣으면 검색 시에 노출 확률이 올라간다고 하던데.. 나도 티스토리를 부업으로.. 크흠..

    운동에 대한 저번 다짐을 바로 실행하고자 일단 무턱대고 아파트 헬스장으로 갔다. 근데 막상 가니까 뭘 해야 할지 몰라서 모든 기구들을 한번씩 깨작이고 왔다. 그덕에 아마 내일 일어나면 전신이 쑤실 것 같다.. 조금 검색을 해보니 분할을 해서 날짜마다 운동 부위를 다르게 하는 게 있던데 그것을 조금 시도해볼까 한다. 그러면 어제 쓴 근육이 회복되는 동안 오늘은 다른 부위를 조진다던가 하는 식으로 효율적으로 운동을 할 수 있지 않을까!

    나중에 게임듀오에서 메일이 왔는데 굳이 확인사살을 시켜주었다!
    내가 뽑히지 않은 가장 큰 이유는 간단할 것이다. 다른 사람들보다 못났으니까. 세부적으로는 이력서와 포트폴리오를 내 강점을 잘 담지 못했던가, 스펙이 부족하다던가 하는 것들이 있을 텐데 어느 모로 보나 결국에는 내가 부족했던 것이다. 

    살면서 내가 얼마나 실패를 맛보았을까? 무수한 실패가 있었을 것이다. 하지만 그 이상으로 실패가 두려워 외면한 무수한 기회들도 있었을 것이다. 그 기회들에 내가 도전해서 실패했다면 나는 무언가를 잃었을 것인가? 분명 잃었을 것이다. 하지만 도전하지 않았기에 잃은 것도 있을 것이다. 그렇다면 차라리 도전하고 잃는 게 낫지 않겠냐.
    음. 나는 충분하게 최선을 다했다고 본다. 엄밀하게 진짜 시간을 박아넣은 것은 아니다. 하지만 시간을 더 박아넣었다고 극적인 변화가 생겼을 것 같지는 않다. 최소한 애매한 마음으로 찌른 것은 아니란 말이다. 그러니 더 이상 대충 했으니 그럴 만했다고 찌질하게 위로하지 말고, 멋지게 추락한 것을 응원하자! 
    다 같이 비상하자고. 어제보다는 훨씬 더 예쁜 꿈을 꾸면서.