늦은 회고

삿포로 스스키노 거리 사진

2023년 회고

올해 커버 사진은 국외입니다. 일본 삿포로 시 스스키노 거리의 사진입니다.

아마 살면서 가장 자주 출국했던 해였던 것 같습니다(4회). 연간 회고로서는 처음으로 국외 사진을 쓰는 건가 싶었는데, 2021년 회고가 러시아에서의 사진이었던 걸 잊었습니다. 맥도날드가 있던 시절의 러시아도 참 좋았는데요…. 지금은 유감스럽게 되었지만요.

바쁜 연말 중에 글을 작성하다 보니 회고도 늦어버렸습니다. ‘올해’라는 표현과 ‘작년’이라는 표현이 섞여서 등장할 수도 있을 것 같습니다. 적당히 잘 이해해 주시면 감사하겠습니다.

정신없었던 한 해

최고로 정신없는 한 해였던 것도 같습니다. 평소에도 바쁘게 살지만 올해는 특히 정말 너무 바빴습니다. 할 일이 끊이지 않았습니다.

작년에서 올해로 넘어오면서 ‘학생은 시간이 많으니 올 한 해는 솔브드를 키워 보자’는 생각을 했던 것 같은데, 학생도 학생 나름인 것 같습니다. 학점을 어느 정도 챙기려고 하다 보니 다른 걸 못 하게 되고, 다른 걸 하려다 보니 학점이 안 나오는 다소 난감한 상황이 지속되었습니다.

1학기에는 ‘에이 나는 회사도 갔다 왔는데~~ 학교 별 거 없겠지~~’ 하고 22학점을 신청했다가 큰 코 다쳤습니다. 전공 7개 교양 1개를 들었는데요, 학교 과제만 해도 다른 걸 할 수 없을 정도였습니다. 덕분에 최초로 3점대 수호(2.96)에 실패하는 학기가 되었습니다.

회사에서는 제 업무가 많아서 제 시간에 끝낼 수 없어 보이면 그나마 ‘일이 많습니다’ 라고 하고 듀를 조절하거나 할 수 있고, 그 전에 ETA를 제가 정해서 말할 수 있었는데요, 학교는 얄짤없었습니다. 교수님들은 제가 3과목을 듣든 7과목을 듣든 같은 양의 과제를 내 주십니다. 심지어 과제가 언제 나올지도 모릅니다. 그 과정에서 패배하는 건 저 말고는 없습니다. ㅎㅎ.. 교양을 섞던가 해서 조금 더 나은 로드의 시간표를 짰으면 좋았을 것 같다는 아쉬움이 남습니다.

2학기에는 1학기의 여파로 평점이 3.50 아래로 내려가는 바람에 21학점 이상을 신청할 수 없었기 때문에 18학점만 들었습니다. 아직 한 과목이 성적이 고지되지 않기는 했는데요, 그래도 선방해서 3.54입니다. 예전에 18학점을 듣고 번아웃이 왔던 적이 있는데 22학점에 비해서는 18학점은 할 만 한 수준인 것 같습니다.

이제 졸업까지 21학점만을 남겨두고 있습니다. 서강대학교는 정규학기에는 9학점 이상을 등록해야 되기 때문에 아마 7학기 12학점, 8학기 9학점을 듣게 될 것 같습니다. 올해 했던 고생으로 내년에는 고생하지 않기를 바랍니다.

별개로 해킹및정보보안 수업을 정말 재밌게 들었던 것 같습니다. CTF 재밌을지도…?

학교로 돌아왔다면 할 것은 하나

학부 재학생 신분이 되었다면 학부 재학생다운 일을 해야 하는 것은 당연합니다. ICPC 리저널에 국내 1회, 해외 1회를 채워서 출전하는 것보다 학부 재학생다운 일은 없습니다. 올해는 여전히 Redshift로, semteo04lem0nad3과 함께 출전했습니다.

ICPC에 출전하기 전에 합을 맞췄던 SUAPC 2023 Summer에서는 1위를 달성했습니다. 덕분에 1위를 달성해 본 대회가 두 개가 되었습니다.

이후 출전한 서울자카르타 리저널에서는 각각 19위와 15위를 달성했고, 내년 3월에 열릴 아시아태평양지역 챔피언십에 22순위로 진출하여 다음 대회를 준비 중입니다.

리저널 등수 목표는 15위였고, 신촌 결과로 의기양양해져서 내심 그것보다 높은 순위를 기대하고는 있었는데, 자카르타에서는 정확히 15위를, 서울에서는 15위보다 못 미치는 성적을 거뒀습니다. 목표 등수를 달성했던 자카르타에서도 낮은 페널티에 비해 2시간 19분 이후에 한 문제도 풀지 못한 것이 아쉬움으로 남았습니다. 한 문제라도 풀었으면 메달을 목에 걸고 돌아왔을 텐데요.

개인적으로 2019년 당시 Redshift의 강점은 1주 2회 정도의 잦은 연습에 있었다고 생각하는데요, 저도 그렇고 직장인이 된 semteo04도 시간이 많이 없어져서 1주 1회 연습도 돌리기 힘들 정도가 되었던 게 아쉬운 결과의 원인이었다고 생각합니다. 다만 이번 두 대회에서의 성적이 아쉬웠다는 것은 베트남에서 아쉽지 않게 대회를 치면 월드 파이널에 진출할 가능성이 없지 않음을 의미할지도 모르겠습니다. 쉬운 문제를 빠르고 정확하게 푸는 데는 자신이 있으니, 어려운 문제를 풀 수 있도록 열심히 준비해 보려고 합니다!

한 해 동안 고생했고 2월까지 같이 고생할 팀원들, 그리고 관심과 지원을 아끼지 않아 주신 이주호 교수님께 이 자리를 빌어 감사를 전합니다.

솔브드

한국 경쟁 프로그래밍 커뮤니티에서는 정말 많은 양질의 문제들이 출제되고 있다고 항상 생각해왔습니다. 알고리즘 학습자들이 경쟁 프로그래밍에도 재미를 붙이게 하고, 한국 커뮤니티에서 출제되는 문제들에 스포트라이트를 비출 수 있도록 올해는 아레나 대회아레나 레이팅을 도입했습니다. 오랫동안 계획만 했던 솔브드 공식 대회(그랜드 아레나)도 아레나 시스템 하에서 세 번 개최했습니다.

또한 결제 모듈의 도입을 바탕으로 솔브드 서포터를 도입하고, 굿즈 샵을 열었습니다. 아쉽게도 제가 굿즈 샵에서 큰 실수를 했고, 대규모 DDoS를 맞기도 해서 올해는 흑자와는 조금 거리가 있기는 합니다.

4월에는 무려 구데기컵 × solved.ac 콜라보레이션 카페가 합정에서 열렸습니다. 정말 상상 이상으로 많은 분들께서 와 주셨습니다. 대기가 너무 길어져서 죄송할 따름이었습니다. 브론즈 5 빨리 풀기 대결에서는 와이파이가 불안정한 게 가장 큰 변수였습니다.

많은 분을 만나뵐 수 있어서 즐거웠고 이후 비슷한 행사를 자주 마련할 수 있게 되면 좋겠습니다. 먼 길 와 주셔서 감사합니다!

5월에는 Bronze V 이상 유저가 10만 명을 넘는 고무적인 일도 있었습니다! 글을 쓰고 있는 시점에서는 12만 1천 명으로, 빠르게 늘어나고 있습니다.

이런 일들도 했습니다.

  • 올해 목표였던 Prisma로 마이그레이션 및 Redis 등의 캐시 레이어 도입을 해냈습니다. 웹 서버가 꽤 안정적이게 되었습니다.
  • 특히 올해 예기치 못한 DDoS를 통해 많은 백엔드/아키텍쳐 지식을 배웠습니다. 맞으면서 배우면 효과적입니다.
    • 우선 DDoS 공격이 랭킹 페이지의 쿼리가 느렸던 것에서 어느 정도 기인했기 때문에, 랭킹 페이지를 꽤 빠르게 동작하도록 개선했습니다. 2,000번째 페이지를 로드하는 데에 예전에는 2초 가량이 걸렸다면 지금은 0.1초 근처의 시간만이 소요되고 있습니다.
    • Redis를 도입하고 캐싱을 공격적으로 했습니다. 자주 액세스되는 데이터는 거의 전부 Redis 레이어를 추가한 것 같습니다.
    • 메시지 큐를 더 잘 활용하도록 했습니다. 예를 들어, 강제 갱신 요청을 메시지 큐로 보내고 별도 워커가 처리하게 한 뒤, 알림 기능을 만들어서 강제 갱신이 끝나면 사용자가 알림을 받을 수 있도록 했습니다.
    • 동시접속자 수에 대한 보수적인 고려를 하면서 설계하는 경험은 나중에 아레나 대회를 기획할 때 사람이 몰려도 빠르게 로드되는 아레나 스코어보드를 만드는 데에 많은 도움이 되었습니다. (클라이언트 입장에서도 BOJ 스코어보드보다 훨씬 빨리 로드됩니다!)
  • 움직이는 프로필 배경을 만들었습니다. 다만 용량 및 트래픽 비용 문제로 공격적으로 추가하지는 못하고 있습니다.
  • 영어일본어 버전 솔브드도 생겼습니다. 영어 사이트를 준비해 놓은 덕분에 아레나 대회가 생기고 Codeforces에 아레나를 홍보할 수 있었습니다.
  • 서포터 전용 기능으로 북마크가 추가되었습니다.
  • 아레나 개최 매뉴얼 및 부록으로 비공식 testlib.h 문서를 만들었습니다. 아레나 개최를 위한 매뉴얼이지만 일반 대회를 개최할 때에도 참고하기 좋도록 작성하려고 노력했습니다.

‘솔브드로만 먹고살 수 있을까?’를 검증하는 2년 중 1년이 갔는데, 현 시점만 놓고 보면 ‘아니다’ 쪽에 가깝기는 합니다. 다만 올해는 다른 일로 너무 바빴고, 만들고 싶었던 것들과 계획했던 것들 – 특히 길라잡이와 추가 서포터 기능들 – 을 다 만들지 못해 상당히 아쉬웠습니다.

내년에는 꼭 길라잡이 및 여러 생각했던 기능들을 만들고 싶습니다. 솔브드로 먹고살고 싶으면 이건 꼭 해야 하는 작업들에 가까워서, 어떻게든 만드려고 노력하게 될 것 같습니다. 솔브드의 여러 일들을 항상 가까이서 도와주시는 havana723님, cologne님, jh05013님, gs18115님, kipa00님 및 나열할 수 없는 수많은 분들께 항상 감사드립니다. 솔브드를 사랑해 주시는 모든 분들께도 정말 감사드립니다!

대회 운영, 출제, 참가

올해는 바빠서 문제 아이디어도 많이 내지 못했고, ICPC를 제외하고는 대회 참가도 적었습니다. SCPC를 나간 이래로 본선에 진출하지 못한 첫 번째 해였는데, SCPC Round 2 날이 JUNCTION ASIA 2023과 겹쳤던 게 컸습니다. 그렇다고 JUNCTION ASIA에서 수상을 한 것도 아니었기 때문에 다소 씁쓸하게 되었네요.

다만 대회 검수는 많이 했는데요, 솔브드에 아레나 대회가 생기면서 아레나 대회 대부분의 검수를 진행했습니다.

모든 아레나 대회를 꼼꼼히 검수하지 못했던 것은 아쉽다고 생각합니다(리스트되어 있지 않은 아레나들은 저 이외의 다른 분께서 꼼꼼하게 봐 주셨습니다). 지금 생각해 보면 대회가 2주에 하나 정도 주기로 열렸는데 8월부터 저 정도의 검수를 했다니 바쁠 만도 했을 것 같습니다.

솔브드 측 검수자는 솔브드가 따로 검수비를 지급합니다. 솔브드가 덜 영세해져서 더 많은 검수자를 섭외하고 더 많은 검수비를 드릴 수 있기를 희망해 봅니다.

소소하게는, 올해 어쩌다가 메이플스토리의 강원기 전 디렉터님을 뵐 기회가 있었는데 메이플컵 문제들을 직접 보셨다고 말씀하셔서 놀랐던 기억이 남습니다.

메이플컵은 출제 과정에서 메이플스토리 IP 사용을 위해 넥슨 검수를 거쳤는데요, 검수 과정에서 문제들을 확인하셨던 것 같습니다. 특히 〈헤카톤〉 문제를 언급해 주셔서 개인적으로 영광이었습니다. 문제에서 헤카톤을 공격하고 있던 싶프트(270레벨 아크)가 디렉터님의 기억에 남았을지는 잘 모르겠습니다.

타대생 난입 이벤트

고연전에 참가했습니다. 엥?

정말 어쩌다가 〈리듬게임 고연전〉의 운영으로 참가했습니다. 디자인을 하고, 대회 엔트리 시스템을 만드는 데에 힘을 쏟았습니다. 처음 Vercel을 써서 올려 본 Next.js 프로젝트였는데, 역시 Next.js는 Vercel에서 돌리라고 만든 프레임워크라는 걸 느끼게 되었습니다.

DJMAX 예선 및 오픈 콘테스트 선곡도 반쯤 제가 했습니다. 초안을 짜고 Jakads님께 검수를 받았는데, 최종적으로 과제곡에 〈Your Own Miracle〉 5B SC가 들어가게 된 건 다소 유감이지만 저의 100% 책임은 아닌 듯 합니다.

3D로 봅니다

올해도 디자인을 했습니다. 그래픽 디자인은 점점 취미의 영역이 되어가는 것 같다고 느낍니다. 하지만 하고 싶은 건 해야 되기 때문에 올해는 블렌더를 익혀서 3D를 활용한 디자인을 시도했습니다.

비교적 간단한 작업으로 뿌슝빠슝 배경들을 빠르고 쉽게 만들 수 있어서 좋은 것 같습니다. 그렇다고 3D 작업에 익숙해진 건 아니고, 디자인 아이디어가 생각나면 구현에 필요한 단계들은 매번 새로 찾아보게 되는 것 같습니다.

한별이

작년에 이어서 한별이 이모티콘이 나왔습니다! 영광스럽게도 수조님께서 그려주셨습니다. 이번에는 은하도 같이 있어요.

한별이는 제가 2014년에 그림 그리는 걸 배우고 싶어했을 적에 디자인했던 캐릭터인데요, 시간이 흐르면서 등장 빈도가 점점 줄다가 만우절에 솔브드에 깜짝 등장한 이후로 havana723님의 사랑에 힘입어 많은 그림이 탄생했고, 다시 전성기를 누리고 있습니다. 사실 솔브드 캐릭터는 아니고 제 개인의 캐릭터이긴 한데 이제는 솔브드를 떼고 생각할 수가 없게 되었습니다. (뭔가 적으면서도 신나서 이야기가 길어지는데 한별이의 히스토리와 여러 설정들에 대해서는 나중에 더 자세히 이야기할 기회가 있으면 좋겠습니다)

출국을 가장 많이 했던 해

올해는 출국을 정말 많이 했습니다. 공항에 무려 4번 다녀왔습니다.

  • 2022년 12월 30일 — 2023년 1월 1일: 일본 도쿄 (시부야)
  • 1월 28일 — 1월 31일: 일본 도쿄 (츠키지)
  • 11월 17일 — 11월 20일: 일본 홋카이도
  • 12월 1일 — 12월 4일: 인도네시아 자카르타

네 번의 여행 중에 일본을 세 번이나 갔습니다. 아마 ICPC 서울 리저널이 요코하마 리저널과 겹치지 않았으면 네 번 가게 되었을 것 같습니다. 확실히 일본은 부담없이 다녀오기 좋은 나라인 것 같습니다.

타국에서 보내는 첫 새해입니다. 아사쿠사에서 뽑은 2023년의 운세는 ‘흉’이었군요. 정말 그랬을까요?

도쿄에 올 때마다 시부야를 오게 되는 것 같습니다. 이제는 거리 자체가 꽤 익숙해질 정도가 되었습니다. 이전에 마지막으로 도쿄에 왔을 때는 2019년이었는데, 당시 공사중이었던 시부야 스크램블 스퀘어가 2023년에는 완공되어 있었습니다.

시부야 도전과제 중 하나인 ‘스크램블 교차로 스타벅스에서 말차 프라푸치노 마시기’를 달성했습니다. 〈최애의 아이〉에도 나온 그 스타벅스입니다.

홋카이도에도 노트북을 가져갔지만, 여행 내내 한 번도 열지 않았습니다. 대신 모든 걸 잊어버리고 푹 쉬다 오기로 결심하고 열심히 쉬다 왔습니다.

격무로 고생하다가도 온천에 오면 피로가 녹아내립니다. 처음 와본 온천은 너무 만족스러워서, 주변에 별 건 없었지만 여기서만 일주일을 묵고 싶을 정도였습니다. 온천 근처에 있던 광활한 건물이 대형마트라는 걸 빨리 알았으면 조금 더 좋았을 수도 있었겠어요.

삿포로 시내의 오락실에서는 E ・ S ・ M 인형을 뽑았습니다. 또 삿포로의 패밀리마트, 로손과 세븐일레븐에서 편의점 치킨을 하나씩 사먹어 봤습니다. 편의점 이름을 따 ‘패미치키’, ‘L치키’, ‘나나치키’였는데요, 분명 세 치킨이 모두 맛에 차이가 있었는데 정작 지금 글을 쓰면서는 어떤 치킨이 어떤 맛이었는지 하나도 기억이 나지 않네요.

비 예보가 있던 자카르타였지만 비가 오지는 않았습니다. 우산을 가져올 필요가 없었습니다. 안개가 낀 자카르타는 일본이나 한국보다 훨씬 사이버펑크스러운 곳일지도 모르겠습니다.

좁은 골목길을 누비는 수많은 오토바이와 자동차들, 스크린도어가 있는 버스 플랫폼, 택시처럼 영업하는 1인승 오토바이가 있는 인도네시아는 마치 다른 세상처럼 보였습니다. 쇼핑몰에 자리잡은 굽네치킨과 파리바게뜨를 보고 잠시 신기하다고 생각하기도 했습니다.

최초의 생일 파티

구데기컵 카페가 열렸던 곳에서 제 생일 파티 카페가 열렸습니다. 저는 생일파티를 한 번도 해본 적 없는데 havana723님께서 열어주셨습니다.

먼 길 찾아와 축하해 주셔서 정말 감사했습니다!

많은 분들께 성대한 축하를 받아 본 건 처음이었습니다. 남겨주신 방명록과 선물들은 계속 소중히 간직하고 있습니다! 정말 소중한 기억으로 남게 될 것 같습니다. 매년 최고의 생일 축하가 갱신되는 것 같아 항상 감사한 마음입니다.

생일 카페에서는 ‘시프트 영역’ 모의고사가 배부되었는데요, 문제가 궁금하셨던 분들을 위해 이 글을 빌려 공개합니다. 최고점은 70점 근처였던 것 같습니다. 아래에 답지도 공개하니 혹…시라도 제 TMI가 궁금하시다면 재밌게 참고해 주시면 감사하겠습니다. 모든 문제의 답은 2023년 8월 5일 기준입니다.

또 이렇게 많은 분들을 만날 기회가 있으면 좋겠다고 항상 생각하고 있습니다. 생일 카페는 제가 준비한 건 아니었지만 항상 오프라인 이벤트들을 기획하고 준비하면서 기대하는 부분이 되는 것 같아요.

즐겁게 살기

올해는 마이마이를 열심히는 못 했는데요, 그래도 이사를 오면서 오락실이 다소 가까워진 관계로 작년보다는 자주 갔던 것 같습니다. 1년동안 레이팅을 15310에서 15545로 올렸습니다. 이제 14레벨에도 SSS+가 조금씩 생기기 시작하네요.

반대로 메이플스토리는 현생이 바쁜 관계로 열심히 못 했습니다. 새로 생긴 전투력 지표만 놓고 보면 여태까지 안 돌았던 좀 더 높은 레벨들의 주간 보스들에 도전할 수 있을 것 같고, 지금 제 상태에서 더 강해지는 가장 좋은 방법은 검은마법사 파티에 들어가서 제네시스 무기 해방을 시작하는 것일 텐데요,

둘 다 어찌저찌 스펙은 될 텐데 아쉽게도 파티를 구하거나 보스 연습할 시간이 따로 없었던 것 같습니다. 그렇다고 대리 플레이를 맡기는 건 또 게임을 즐기는 방법이 아니라고 생각해서 안 했던 것 같아요.

마작은 3마 작호와 4마 작걸을 갔습니다. 분명히 승단 인증서를 캡쳐해 뒀었는데 어디 갔는지 모르겠네요.

지인들께서 자주 방문하는 바 포:루가 집에서 불과 500미터 거리라는 사실을 알게 되었어요.

로컬 칵테일 바는 이미 알고 있는 곳이 몇 곳 있었는데 이곳은 술 잘 모르는 제가 체감할 수 있을 정도로 다른 곳과는 (좋은 쪽으로) 다른 칵테일을 경험할 수 있는 곳이라고 느낍니다. 특히 정말 tea라고 불러도 좋을 듯한 롱 아일랜드 티와 위스콘신 스타일 그래스호퍼, 그리고 메뉴판에는 없는 프렌치 김렛이 꽤 취향이라 아는 맛이지만 갈 때마다 주문하게 되는 것 같습니다.

가끔 주말에는 디제잉 이벤트가 열리는 것 같습니다. 관심이 많지만 안타깝게도 아직 못 가봤습니다. 그래도 간혹 집에서 늦은 시간에 일이 잘 안 되면 방문해서 카페에서처럼 작업할 수 있는 편한 곳이 되었습니다. 술이 몸에 좋은 게 아니라는 건 다소 안타까운 사실이기는 하네요.

올해는 어땠고, 내년엔 뭘 할까

회고를 쓰기 시작할 때쯤에는 ‘올해 학교 일 / 다른 프로젝트로 엄청 바쁘게 사느라 한 게 없는데 쓸 게 있을까?’ 하고 생각했는데, 지금까지 썼던 회고 중에서는 제일 긴 글이 된 것 같습니다. 적지 않은 이벤트들도 있고, 더 길게 쓰고 싶었는데 그러면 평생 글을 쓰기만 하느라 절대 완성이 안 될 것 같아서 아쉽지만 간단하게만 적은 일들도 많은 것 같아요.

그럼에도 불구하고 꽤 아쉬운 한 해였습니다. 과제들이 한 주에 세 개씩 상황에서 여러 일들과 다른 중요한 프로젝트를 해내야 했는데요, 진행하는 프로젝트에서 회사에 다닐 때처럼 예상 시간 산정을 해서 작업했더니 절대 그 시간 안에 끝낼 수 없었습니다.

‘언제까지 끝내겠습니다’ 하고 질러 놨으니 작업을 최대한 완수하려고 날밤을 샜고, 결국 의욕은 의욕대로, 성적은 성적대로 떨어지고, 철야 작업은 목표만큼 하지 못하면서 책임도 지키지 못하는 상황들이 계속 발생했습니다. 시간 산정을 잘 하는 방법, 워크로드를 줄이는 방법에 대해 숙고해 보게 되었습니다. 철야 작업 동안 생산한 코드의 퀄리티보다 잠을 푹 자고 나서 생산한 코드의 퀄리티가 훨씬 좋다는 것도 체감했고요.

같은 이유로 솔브드 입장에서는 하려고 했던 것들을 많이 못 하게 되어 너무 아쉬운 한 해이기도 했습니다. 내년에는 학교 로드가 줄어들고 지금 하고 있는 프로젝트도 릴리즈를 바라보고 있으니 솔브드에서 계획했던 것들을 다 만들 수 있으면 좋겠습니다. 마음 같아서는 경과가 어떻든 졸업하고도 1년 정도 더 솔브드에 매진해 보고 싶습니다.

2024년에는 하고 싶은 일들을 좀 더 많이 할 수 있는 상황이 되겠지 하고 기대하고 있습니다. 이 소중한 시간을 그냥 흘려보내고 싶지 않아서 열심히 해 볼 작정입니다. 그러면서도 힘든 일들이 있더라도 언제나 제 곁에 있어 주는 소중한 사람들에게 조금 더 신경쓸 수 있는 제가 될 수 있으면 좋겠습니다.

새해는 우선 그랜드 아레나 파티를 여는 것과 여행비 모임통장에 1월 분 10만원을 보내는 것부터 시작해 보겠습니다. 조금 늦었지만 새해 복 많이 받으세요!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.