프랙셔널 CTO
정규직 채용 없이 확보하는 시니어 기술 리더십 — 단순한 개발 인력이 아니라 방향성이 필요한 팀을 위한 서비스입니다.
- 아키텍처 및 기술 전략
- 로드맵, 자체 개발 vs 구매 판단, 비용 관리
- 채용, 코드 리뷰 및 팀 멘토링
모든 프로젝트는 같은 질문에서 시작합니다. 어디에 도달하고 싶으신지, 그리고 무엇이 가로막고 있는지. 저희 고객 대부분은 실제 마감 기한과 제약 조건이 있고, 소프트웨어를 교체하는 동안에도 멈출 수 없는 운영 업무가 있습니다. 그래서 업무는 투입 시간이 아니라 고객이 원하는 결과를 중심으로 설계됩니다.
저희와 협업하는 세 가지 방식이 있습니다. 대부분의 고객은 하나로 시작해 다른 방식으로 확장합니다.
정규직 채용 없이 확보하는 시니어 기술 리더십 — 단순한 개발 인력이 아니라 방향성이 필요한 팀을 위한 서비스입니다.
첫날부터 성과를 내고, 합류 전보다 팀을 더 강하게 만들어 놓는 즉시 투입형 시니어 엔지니어링.
막연한 콘셉트를 범위와 비용이 정의된 실행 가능한 계획으로 바꾸는 비즈니스 분석 및 디스커버리.
아키텍처, 스프린트 계획 및 추정, 디스커버리와 로드맵 수립, 엔지니어링 표준, .NET MAUI 및 Xamarin 마이그레이션, Bluetooth LE와 백그라운드 실행, 최신 .NET, AI에 관한 비공개 워크숍. 고객사의 코드베이스를 바탕으로 구성되며, 프로젝트 파일에 들어 있는 라이브러리를 직접 만든 사람들이 진행합니다.
대부분의 AI 프로젝트는 모델이 문제가 되기 훨씬 전에 멈춥니다. 필요한 데이터가 디바이스에, 레거시 시스템 안에, 혹은 조회할 수 없는 형식으로 놓여 있기 때문입니다. 저희는 데이터가 생성되는 지점부터 어시스턴트가 이를 안전하게 활용할 수 있는 지점까지 전체 경로를 다룹니다.
화려하지 않은 나머지 절반: 데이터가 생성되는 곳에서 모델이 접근할 수 있는 곳까지, 중간에 하나도 잃지 않고 옮기는 작업.
복사·붙여넣기가 아닌 의도된 방식으로 고객사 시스템을 어시스턴트에 연결합니다. 무엇을 보고 무엇을 할 수 있는지 명확한 경계를 둡니다.
사용자가 기억해야 할 또 하나의 탭이 아니라, 이미 열어 두고 쓰는 앱 안에 어시스턴트, 음성, 자동화를 내장합니다.
실패의 원인이 기술인 경우는 드뭅니다. 아무도 측정하지 않은 도입, 가서는 안 될 곳으로 흘러간 데이터, 아무도 책임지지 않는 모델에 슬그머니 넘겨진 업무 프로세스가 원인입니다. 다음은 저희가 모든 AI 프로젝트에서 지키는 원칙입니다.
실제로 비용을 측정할 수 있는 하나의 워크플로에서 시작해, 확장하기 전에 먼저 효과를 입증합니다. 직감에 기댄 전사적 도입은 AI 예산이 취소되는 지름길입니다.
무엇이 네트워크 밖으로 나가는지, 벤더가 무엇을 학습에 사용할 수 있는지, 규제 대상 데이터가 어디에 있어도 되는지 — 첫 프롬프트를 작성하기 전에 신중하게 결정하고 문서화합니다.
돈, 안전, 고객과 관련된 모든 것은 사람이 승인하며, 시스템은 누가 무엇을 결정했는지 기록합니다. 초안은 AI가, 서명은 고객사 팀이 합니다.
고객사의 실제 사례를 기준으로 평가하므로, 고객이 발견하기 전에 정확도를 파악할 수 있고 모델 성능이 저하되기 시작하는 시점도 알아챌 수 있습니다.
모델은 교체 가능한 부품입니다. 진정한 자산은 고객사의 데이터, 도구, 평가 체계이며, 시장이 다음에 변할 때도 그대로 가져갈 수 있습니다.
자동화해서는 안 되는 프로세스도 있고, 더 나은 화면 하나로 더 저렴하게 해결되는 문제도 있습니다. 다른 대안에 비용을 지불하시기 전에 말씀드리겠습니다.
이미 보유한 데이터, 버려지고 있는 데이터, 그리고 비즈니스에 중요한 질문에 답하기 위해 모델에 실제로 필요한 데이터를 간단히 검토합니다. 보통 2주 정도 소요되며 비용을 산정할 수 있는 계획이 도출됩니다. 첫 단계가 AI가 아니라 인프라 작업이라는 유용한 결론이 나오는 경우도 많습니다.
의도적으로 짧게 추렸습니다. 모바일, 커넥티드 디바이스, 그리고 이들을 연결하는 클라우드 서비스 — 문제 해결에 반드시 참여시키고 싶은 전문가로서 저희가 진정으로 강점을 가진 분야입니다.
프로덕션 수준의 .NET MAUI, iOS, Android 앱 개발과 Xamarin → MAUI 전환 — 대부분의 팀이 놓치는 백그라운드, 오프라인, 수명 주기 처리까지 포함합니다. 저희는 MAUI 출범 당시부터 Microsoft .NET MAUI 팀과 협력해 왔습니다.
BLE Central 및 Peripheral, 디바이스 플릿 관리, 하드웨어 통합. 업계가 이 분야에서 사용하는 라이브러리를 저희가 직접 만들었습니다.
통신 연결이 보장되지 않는 곳에서 일하는 차량과 현장 인력을 위한 위치 추적, 지오펜싱, 텔레매틱스.
Apple Watch, Wear OS, CarPlay, Android Auto 앱으로 모바일 앱을 손목과 대시보드까지 확장합니다. 축소한 휴대폰 화면이 아니라, 한눈에 보는 화면과 음성 명령을 기준으로 설계합니다. 휴대폰과 워치 간 연결은 저희가 직접 만든 라이브러리로 구동됩니다.
디바이스를 뒷받침하는 ASP.NET Core 서비스와 API — 깔끔하게 배포되고, 운영 비용이 적게 들며, 모든 차량이 한꺼번에 데이터를 보내도 흔들리지 않도록 설계합니다.
레거시 .NET Framework와 노후화된 모바일 코드베이스를 개발 중단 없이 최신 플랫폼으로 이전합니다.
트럭, 물류 창고, 건설 현장, 병원, 콜센터 대기열까지 — 소프트웨어가 실제 현장에서 버텨 내야 하는 운영 환경에서 25년을 보냈습니다.
Xamarin에서 .NET MAUI로의 전환은 저희의 전문 분야이며, .NET MAUI 자체 역시 마찬가지입니다. 저희는 MAUI 출범 당시부터 Microsoft .NET MAUI 팀과 협력해 왔으며, 저희 라이브러리는 오늘날 MAUI 앱이 구축되는 생태계를 형성하는 데 기여해 왔습니다.
Xamarin은 2024년 5월에 지원이 종료되었습니다. 이런 이전 작업을 지연시키는 것은 UI 변환이 아니라 거의 언제나 의존성 목록입니다. Bluetooth, 백그라운드 작업, 위치, 푸시, 스토리지, 동기화를 담당하던 방치된 플러그인들을 팀의 누구도 프로덕션에서 써 본 적 없는 무언가로 교체해야 합니다. 몇 달이 소요되고 위험이 도사리는 곳이 바로 이 평가 과정입니다.
모바일 앱의 어떤 영역이든 직접 조사해 보라며 선택지 목록만 건네드리는 일은 없습니다. 기존 앱의 어느 부분을 고르셔도 답은 이미 준비되어 있습니다.
기존 솔루션에 대한 의존성 및 위험 분석으로 시작합니다. 그대로 옮겨지는 것, 대응되는 것이 없는 것, 그리고 이번 이전에서 아예 버려야 할 것을 파악합니다. 그 결과는 비용을 산정할 수 있는 단계별 계획으로 제공되며, 이전 작업은 로드맵을 멈추지 않고 그와 병행해 플랫폼별로 진행됩니다.
모든 MAUI 프로젝트가 마이그레이션은 아닙니다. 이미 전환을 마친 팀도 지원합니다. 성능 및 시작 시간 개선, OS 업데이트 후 실행되지 않는 백그라운드 작업, 핸들러와 플랫폼 코드, 실제 기기에서만 재현되는 크래시, 그리고 새로운 .NET 릴리스에 발맞추는 작업까지. 코드 리뷰, 해결되지 않는 문제, 또는 고객사 팀과 함께 일할 시니어 MAUI 엔지니어가 필요할 때 불러 주십시오.
레거시 .NET은 하나의 문제가 아닙니다. WebForms 앱, WCF 서비스 계층, WinForms 클라이언트는 각기 완전히 다른 이유로 발목을 잡으며, 견적의 정확도는 그 스택을 실제로 겪어 본 사람의 경험에 달려 있습니다. 저희는 아무도 열어 보고 싶어 하지 않는 VB.NET을 포함해 이 모든 기술로 프로덕션 코드를 작성해 왔습니다. 그래서 진단은 비용을 들여야 하는 조사 단계가 아니라 이미 가진 경험을 꺼내는 일입니다.
페이지 수명 주기, ViewState, 서버 컨트롤에는 대응되는 것이 없으므로 마크업은 실제로 다시 작성해야 합니다. 하지만 그 아래의 비즈니스 로직은 대개 그렇지 않으며, 둘을 분리하는 것이 작업의 대부분입니다.
바인딩, 동작(behavior), SOAP 계약은 그대로 이식되지 않습니다. 변경할 수 없는 외부 호출자가 있는 경우, CoreWCF로 계약을 유지하면서 그 뒤의 모든 것을 이전합니다.
이전할 대상 자체가 없습니다 — 런타임이 모든 브라우저에서 사라졌습니다. 이런 경우 애플리케이션이 실제로 무엇을 해야 했는지 범위를 정의하는 대화부터 시작합니다.
단순해 보이던 이전 작업이 비싸지는 곳이 데이터 계층입니다. 쿼리 변환, 트랜잭션, 지연 로딩이 모두 다르게 동작하며, 문제는 컴파일 시점이 아니라 프로덕션에서 드러납니다.
이 목록에서 기계적인 이식에 가장 가까운 경우입니다. 실제 작업은 컨트롤러가 아니라 호스팅, 구성, 의존성 주입, 미들웨어 파이프라인입니다.
둘 다 최신 .NET에서 여전히 실행되므로 전면 재작성은 드뭅니다. 걸림돌은 지원이 끊긴 서드파티 컨트롤 제품군과 COM 상호 운용이며, 저희가 가장 먼저 확인하는 부분입니다.
공유 라이브러리는 기존 시스템과 새 시스템을 나란히 운영할 수 있게 해 줍니다. 먼저 이를 멀티 타기팅으로 전환하는 것이 대개 이 목록의 나머지 모든 작업을 여는 열쇠입니다.
화려하지는 않지만 나머지 작업을 반복 가능하게 만드는 기반입니다. 마이그레이션이 끝나기 훨씬 전부터 효과가 나타나기 때문에 가장 먼저 하는 것이 맞는 경우가 많습니다.
이 목록의 어떤 것도 한 번에 교체하지 않습니다. 효과적인 방식은 스트랭글러(strangler) 패턴입니다. 기존 스택 옆에 새 스택을 세우고, 같은 URL 뒤에서 한 조각씩 옮기며, 기존 쪽에 남은 것이 없을 때까지 둘을 함께 운영합니다. 서류상으로는 느려 보이지만, 저희가 본 것 중 끝까지 완료된 방식은 이것뿐입니다.
어떤 페이지를 더 보강할 가치가 있는지 파악하기 위해 Google Analytics를 사용합니다. 동의하시기 전까지는 꺼져 있으며, 이 사이트의 어떤 기능도 이에 의존하지 않습니다. 자세한 내용은 개인정보처리방침을 참고해 주십시오.