올해 1월부터 삼성 청년 SW 아카데미에서 9기 대전캠퍼스 비전공 Python 과정을 수강 중입니다. 1학기에는 알고리즘과 웹 개발 수업 위주였고, 저는 특히 알고리즘 공부를 집중적으로 하여 좋은 성과를 내었습니다. 1월에 입과하기 전에는 프로그래밍 경험이 적었기 때문에, 알고리즘 역량을 쌓기 위해 정규 수업 과정 이외에도 알고리즘 스터디를 하고, 온라인 저지 사이트에서 문제를 풀며 새로운 알고리즘을 익히는 등 여러 노력을 하였습니다. 특히 Python 이외의 언어는 정규 수업에서 별로 다루지 않았기에, Python을 지원하지 않는 삼성 SW 역량 테스트 B형 시험을 위해서 Java 언어도 독학하였습니다.
그 결과, 백준 온라인 저지 사이트를 시작한 지 3달째에 플래티넘 등급을 달성하고, 삼성 SW 역량 테스트 B형을 취득하였고, 1학기 대전 1반 1등으로 성적우수상을 수상하였습니다. 이를 통해 프로그래밍의 기초가 되는 언어와 알고리즘 실력을 탄탄히 하였고, 비전공자로서 부족한 경험과 지식을 집중력과 문제해결능력, 잠재력으로 뛰어넘을 수 있음을 보여줄 수 있었습니다.
SSAFY 2학기 첫 프로젝트에서 웹 화상 게임을 만들었는데, 저는 Front-end 담당으로서, 그 중에서도 게임의 코어 로직 개발을 맡았습니다. 게임은 일종의 퀴즈 게임이었으며 코어 로직으로는 두 사진의 유사도 채점이 필요했는데, 기존에 있던 종류의 게임을 만든 것이 아니라 순수 창작이었기 때문에 참고할 만한 것이 없이 스스로 로직을 구현해야 했습니다. 저는 이를 이미지 데이터를 srgb 배열의 형태로 변환하여 각 도트의 값을 전수비교하는 방식을 사용하여 해결하였으며, 이 방식으로 OX 퀴즈뿐만 아니라 객관식 퀴즈도 한 함수로 일괄적으로 채점할 수 있도록 Javascript 함수 로직을 구현하였습니다. 그 덕분에 클라이언트 쪽에서 웹 화상 캠 화면을 캡처하여 주어진 퀴즈와 대조하는 로직을 전부 처리할 수 있었고, 서버와 이미지를 송수신하는 불필요한 과정을 없앰으로서 성능을 향상시킬 수 있었습니다.
고등학교 수학 동아리, 그리고 대학교 바둑 동아리에서 둘 다 1년간 회장직을 맡으며 다양한 사람들을 융화시키고 조율하는 경험을 하였습니다. 공통적인 관심사를 가진 사람들이 모인다는 점, 그리고 특별히 모난 사람이 별로 없었다는 점 때문에 특별히 어려운 일이나 사건이 있진 않았지만, 공동으로 해결해야 할 일이나 주요한 안건에 대한 회의가 있을 때 먼저 나서서 불만을 가지는 사람이 최대한 적도록 문제를 해결하려고 노력하였습니다. 특히, 바둑 동아리에 외국인 교환 학생이 가입하거나, 매년 개최되는 동경대 교류전 행사에서 다른 국적과 문화를 가진 사람들과도 마찰 없이 서로의 차이를 이해하고 수용할 수 있도록 신경 썼던 기억이 납니다.
또한, SSAFY 2학기의 첫 프로젝트에서는 팀장은 아니었지만 중재자의 역할을 맡았습니다. 서로 잘 모르는 상태로 팀이 되어 기획 단계부터 개발까지 다 같이 해야 하는데, 서로의 관심사가 다르고 따라서 프로젝트 주제로 삼고 싶은 것도 다 달랐기 때문에 기획 단계에서 많은 토론과 회의가 있었기 때문입니다. 제 주장이나 의견도 충분히 피력하는 한편, 토론이 너무 과열되지 않도록 중간에서 의견을 정리하고 중재하는 역할도 수행하였습니다.
위에서 언급한 SSAFY 2학기 첫 프로젝트를 만든 경험을 자세히 설명하겠습니다. 첫 프로젝트는 모든 팀이 웹RTC 화상 통화 기술을 적용하여야 하는 공통의 조건이 있었고, 저희 팀은 '대체 불가능한 서비스'를 만들자는 합의점을 바탕으로 웹 화상 게임을 기획하고 구현했습니다.
게임은 과거 TV 프로그램의 한 코너로 구멍 뚫린 벽면이 점점 다가오면 그 구멍에 몸을 맞춰 통과해야 하는 게임에 착안했습니다. 이를 각자 캠 화면 위에 반투명하게 색칠된 그림이 덧씌워지고, 제한 시간 내에 본인의 몸을 그림에 최대한 유사하게 맞추도록 하여 구현하였습니다. 원래 특수 세트장이 없으면 실제로 하기 어려운 게임을 웹 화상 기술을 이용하여 플레이할 수 있다는 점에서 대체 불가능성이 있다고 생각했습니다.
특히, 유저의 실시간 캠 화면에서 사람이 차지하는 영역을 추출하는 기술으로 Google의 Mediapipe api의 body segmentation을 사용하였는데, 이는 올해 개발된 최신 기술으로, 동일 api의 2019년 기술과 현격한 성능 차이를 보였습니다. 최신 기술을 사용하여 높은 정확도의 재미있는 게임을 만들 수 있었고, IT 기술력의 중요성을 실감할 수 있었습니다.
[관련 경험] SSAFY 공통 프로젝트 : 프로젝트명 '두뇌 풀가동'
[기간] 2023.07~2023.08
[프로젝트 Github 주소] https://github.com/B-306/B306PJT.git