상티 2024 회고 (늦었지만 전반기 회고임)
· Retrospect · 8 min
티스토리 같이 연구해요에서 옮겨 온 글입니다.
최근에 바빠서 죽는 줄 알았다.
대학원 진학으로 인해서 학술관련 행사 참여도 반강제 ( ???: 상현아 갔다 와야겠지 ? ) 스럽게 많이 다녔고 장기간의 외주용역 계약 체결 후 작업이나 소속이전으로 인한 인수인계 레퍼런스 정리들로 하루하루 타이트 하게 지낸 것 같다.
2024년의 전반기 나는 무엇을 해왔을까 되돌아보는 시간..
1. 초음파 연구실에서의 마무리
2023년부터 의용공학부 모 초음파 연구실에 합류했었다.
연구나 실험쪽에선 경험도 풍부하고 실력 좋은 대학원생분들이 많았지만 소속학과 자체가 코드구현이나 개발쪽에 특화되어있지 않다보니 연구 데이터나 설계는 이미 레디 되어있는 상태에서 해당 부분의 문제들을 해결하기 위해 합류한 느낌이 강했었다.
1-1: JVM 안하고 싶었다.
2023년엔 거의 대부분을 SpringBoot을 사용했었기에 JVM은 많이 질려있는 상태였다.
허나 초기에 가장 먼저 해결 할 과제가 Java 기반 안드로이드 초음파 신호처리 앱의 성능 향상이었기에 다시 한번 Java에 손을 대게 된다.

벌크 형태로 들어오는 초음파 raw Data를 실시간 프레임 단위로 시각화 하는 프로젝트였는데, 이미 레거시로 일부 도메인 로직은 구현되어있었으나 렌더링을 하는 과정에서 성능저하들이 있었기에 몇차례 성능 개선을 통해서 버퍼링, 화질 개선을 진행했다.



사실 이제와서 보니까 뭘 했는지 가물가물 하다만 나름 재미있었던 순간이 많았다.
하지만 근본적인 문제는 JVM 기반 OpenCV의 성능 오버헤드, 성능저하였기에 간접적인 요행 (?) 으로는 해당 버퍼링을 해결할 수 없었고

최종적으로 중요 도메인 로직을 JNI를 사용한 C++ 기반 로직으로 변경해야한다는 암울한 결과를 내릴 수 밖에 없었는데...

딱봐도 알겠지마는 DX를 단 하나도 고려하지 않은 어마어마한 이식 난이도와 복잡함에 의욕을 상실해버렸고 또 다른 요행(바라지 말라며)을 찾아보았는데...

그러다가 Rust 만지게 됐습니다.
Rust기반 멀티플랫폼 개발기 (1) — sxngt.github.io
겟츠비 다루는게 좀 어리숙해서 썸네일이 이상하다마는 적다만 글이 있다. ( 블로그 난민 시절을 겪다보니 여기저기 흩어져있음)
GitHub — sxngt/MITS_Rust_Multiplatform_SDK

러스트 로직을 쉘스크립트를 통해 쉽게 쉽게 이전할 수 있지만 사실 이것보다 중요했던건 인간 GC가 되어 신호처리 로직을 PORO (플레인 올드 러스트 옵젴... 사실 없는말임)으로 짜야 하는 점, 이후 중요한 Matrix 연산처리를 Rust-OpenCV로 처리하고 각 아키텍쳐에 맞게 빌드해야하는 삽질들이 더 힘들었지만 괜찮은 인프라 하나 남겨두고 갔다는 점이 보람찼다.
1-2. 딥러닝도 해야겠더라
대학원생인데 딥러닝 머신이 왔다면 (1) — velog
역시 난민시절 흩어져있는 글 주서옴
무튼 딥러닝 연구도 해야하고, 해당장비도 온 상태에서 서버 형태로 굴리지 않으면 안되었기에 인프라 작업도 진행했었다.

나는 Vim충이라서 CLI말고 필요 없었다만 대의를 위한 code-server도 설치해보고, Conda 집어던지기와 동시에 pyenv로 쾌적한 환경 설계 등등 재밌는 경험은 많이 했다만 개발에 관련된 파트는 아니라서 넘어가겠다.
생각보다 code-server가 좋았는데, 그 만큼 아쉬운 경험들도 많았어서 추후 시간이 나면 fork 떠서 조금 더 성향에 맞게 다듬어보고싶다.
파이썬, 딥러닝 환경에 조금은 안맞는것들이 있었달까.
2. 재미있는 ( 하하 ) 보안 학술대회
부전공이 산업보안인데, 사실 다전공 학사였기에 골랐을 뿐 나의 부전공에 대하여 전혀 인식이 없었지만 졸업을 위해서라면 전공과목을 이수했어야 했고, 가장 간단하고 직관적으로 좋은 성적을 내기 위한 방법은 논문 제출 후 학술대회 수상.. 으로 A+과 맞교환 하는 교수님과의 어엄청난 딜이 있었다.

이전 직장에서 연구 개발했던 MPTCP 관련 주제로 논문을 작성할까 싶었지만 학사신분으로 나가는 학술대회이기도 했고 웹 / 클라우드 개발부문으로 접수했기에 너무 고전적인 보안보단 웹개발을 하는 과정에서 생길 수 있는 보안 허점에 대한 인식 개선을 주제로 라이트하게 작성했다.
근데 여기서 진짜 문제는 개최장소가 나주였다는 점
김해에서 나주... 김해에서 나주...

이런 낭만적인 여행 기회를 선사해주시는 하늘의 가르킴에 눈물이 나기도 전에 해당 루트는 새벽 5시 기상하여 첫차를 타도 발표시간 전에 도착하지 못하기 때문에 몹시 럭키비키한 마인드셋으로 이틀전부터 기차여행을 떠나버렸다.


생각해보니 딱히 혼자 여행이라던지 요양을 해본 적이 딱히 없었는데 막상 또 닥쳐서 해보니 나쁘지 않았던 것 같다.
잘 곳이 ? 필요하기도 했고 (사실 그게 전부다) 직장따라 사천으로 끌려간 선배도 오랜만에 보고싶었기에 바로 진주 - 사천으로 찍었다.

아쉽게도 평일 깜짝 습격이었기에 뭘 이렇다하게 함께하진 못했지만 잠깐 본 것 만으로 의미 깊었다. 기차여행 떠나니까 참 사소한것에도 의미가 깊어진것 같다.



아무튼 나주행을 계기로 낭만있는 2박3일 기차여행을 마치고 나주에 도착해서 바로 프레젠테이션을 시작했다.


보면 알겠다시피 gRPC 기반으로 MSA 서버를 구축할때 정말 기본적인 설정값들로 통신하는형태의 구현형태 레퍼런스가 매우 많은 것 같아서 그런 형태로 진행했을시의 워스트 시나리오를 시현하고 최소한의 보안구현 요구스펙을 소개하는 PT를 가졌다.

실제로 개발하던 서비스의 비즈니스 로직을 가린 채 결제서버의 데이터 파이프라인이 갈취당했을 때의 시나리오를 설명하여 경각심을 강조했다.

물론 공모파트 자체가 웹개발 / 클라우드 였지만 대부분의 참가자와 심사위원분들이 보안전공이셨기에 최대한 서비스 개발단계에서의 기초적인 네트워크 커넥션에 대한 설명도 자세히 기제하여 진행했다.

TLS 암호화와 각 클라이언트 - 서버간의 더블체크에 대한 필요성을 강조하고 구현을 설명하며 끝난 발표..
발표 이후 생각보다 촘촘하고 거센 QnA에서 살짝 당황했지만 실제 개발하고 경험했던 시나리오를 기반으로 작성한 PT이다보니 임기응변에 꽤 능했던 것 같다.

아무튼 그렇게 수상엔딩
물론 이젠 많이 거리가 멀어진 보안과 다시 손잡아본 경험과 오랜만의 PT도 인상깊은 경험이었지만, 가장 좋았던 순간들과 경험들은 혼자 여러 곳을 돌아다니고 사색하며 얻은 내적 성숙함과 묵혀놨던 잡념을 꺼내어 모두 풀어놓을 수 있었던 "여행"이 가장 뜯깊었던 것 같다.
3. 재미있는 ( 하하 ) 넷제로 해커톤
이번엔 대학원 지도교수님께서 가볍게 ( 매우 무겁게 ) 제안해주신 덕에 SW융합대학 소속 대학생들을 대상으로 진행하는 넷제로 해커톤에 참여하게 되었다.

숙식 - 경비지원이 있었기에 가벼운 마음으로 갈 수 있었다.

경비지원이라는 말에 바로 양심탈거하고 비행기 타고 출발해버렸다. 약간의 골때리는 에피소드가 있었다 하면

수월한 개발을 위해서 챙겨간 나의 커스텀 키보드 가방이 마치 폭발물 처럼 보인 나머지 게이트에 들어가는 과정이 썩 매끄럽지만은 못했다는 점......

랜덤 팀 빌딩 이후 자연스럽게 팀장으로 떠밀려 (?) 진행하게 되어버린 아이디어 토론. 이후 바로 개발을 진행하게 된다.

환경수호가 개발주제였기 때문에 (자세히는 탄소중립) 우리팀은 "업사이클링 마일리지를 통한 구매유도 쇼핑몰"을 주제로 선정했다.
AWS에서 주관한 대회였기에 AWS의 각종 서비스가 개발과정에서 공짜였음으로 AWS Lambda, S3, RDS, EC2 등등 야무지게 써가면서 MSA환경을 구축했다.


각 쇼핑몰에서 업사이클링에 적합한 항목을 크롤링해서 DB에 적재하고 각 상품에 대한 업사이클링, 환경수호에 긍정적인 영향을 미치는 에코 지수를 LLM 기반 모델이 점수를 책정하여 추천항목에 올리는 형태의 마일리지 퀘스트형 쇼핑 앱을 완성했다.


비교적 짧은 시간이었지만 기술적인 부분, 특히 아키텍쳐에서는 높은 완성도를 갖추기 위해 노력했다.
다만 아쉬운 점이 있었다면 너무 기술적인 부분에 초점을 두어 오버엔지니어링임을 간과했다는 점, 사실상 웹서비스 개발이 가능했던 팀원이 혼자였기에 기술적인 부분보단 단순한 구현으로 전환하여 더욱이 아이디어에 초점을 두었어야 했다는 점 등이 있었다.
그래도 좋았던 부분은 개발을 해보지 않은 24학번 팀원후배는 기획과 디자인에 열심히 기여할 수 있는 분위기를 만들어 주어서 팀의 응집도를 많이 늘렸고, 파이썬을 할 수 있었던 나머지 두 팀원들에게 크롤러 튜토리얼과 약간의 튜터링으로 크롤러 서버 개발의 중요 로직에 기여할 수 있도록 하여 모두가 프로덕트의 중요한 부분에 기여할 수 있도록 완급조절하여 모두가 성취감을 느낄 수 있었다는 점이었다.
이것도 결 국

수상엔딩
자세히 보다보면 내 뒷통수가 좀 보이지 않을까
4. 제법 큰 사이즈의 외주개발
5월 중순.. 본래는 사이드 프로젝트나 오픈소스 개발이 좀 하고 싶었어서 주변을 돌아보고 있던 시기였는데 운좋게도 좋은 조건에 외주개발을 할 수 있는 기회가 생겨 큰 프로덕트에 투입되었다.
적다보니 티스토리 에디터가 못버텨서 너무 버벅거리니 쫄림으로 2편에서 더 작성하겠다...