쓰리디아이 / 2016
항공기 미사일 센서 영상 SW
센서 데이터 녹화·재생과 3D 화면 연동
PROJECT IN ACTION
실행 화면과 시연

OVERVIEW
프로젝트와 나의 역할
GIS 지형 좌표 연동, 외부 모듈 TCP 통신, CSV 녹화·재생, WinForms 내 Unity 화면 구성을 담당했습니다.
- GIS 데이터를 활용한 3D 실지형 맵핑
- 네트워크를 통한 외부 모듈 간 데이터 통신
- CSV 파일을 이용한 데이터 저장 및 리플레이 기능 개발
- Winform내 Unity 화면 구성
ENGINEERING NOTES
기능별 구현과 문제 해결
담당 기능의 배경부터 구현 방식과 선택한 범위까지 정리했습니다.
GIS 지형과 외부 좌표 데이터 연결
배경과 과제
외부 모듈의 지리 좌표를 Unity 지형에 연결하면서 지구 곡률과 고도 차이를 고려해야 했습니다.
내가 구현한 방식
GIS 지형과 Unity 좌표계를 연동하고, 외부 모듈 입력과 지형 표시 사이의 좌표·고도 보정을 담당했습니다.
선택의 이유와 범위
지리 좌표와 화면 좌표를 연결하는 작업 범위입니다. 아래 예제는 기준점과의 차이를 계산하는 원리만 다루며, 실제 지구 곡률·고도 보정의 정확도를 검증한 코드는 아닙니다.
TCP 통신과 지연 데이터 재생
배경과 과제
외부 모듈과 실시간 데이터를 주고받고, 테스트를 위해 특정 프레임 또는 시간만큼 지연된 데이터가 필요했습니다.
내가 구현한 방식
TCP 통신을 연결하고 CSV 녹화·재생을 구현했습니다. 요청된 지연 길이만큼 데이터를 보관한 뒤 Queue 방식으로 순서대로 처리했습니다.
선택의 이유와 범위
실시간 수신과 테스트용 지연 재생을 구분한 구조입니다. 정량적인 통신 성능 수치는 별도로 측정하지 않았습니다.
2026 / RECONSTRUCTED EXAMPLE
프레임 단위로 지연시키는 데이터 버퍼
정해진 개수의 샘플을 보관한 뒤 입력 순서대로 출력합니다.
- 샘플 입력
- Queue 보관
- 지연 길이 확인
- 순서대로 출력
설명용 개념도 · 실제 제품 화면이나 전체 시스템 설계도가 아닙니다.
사용 방법과 적용 범위
new FrameDelayBuffer<T>(delayFrames)를 만들고 샘플마다 Push를 호출합니다.
프레임 수 기준 지연입니다. 가변 네트워크 지연 보정이나 TCP 전송 계층은 포함하지 않습니다.
예제 코드 펼치기포트폴리오용 재구성 코드 · 실제 업무 소스 아님
// 2026 portfolio reconstruction. Not original production source.
using System;
using System.Collections.Generic;
namespace PortfolioExamples
{
// Fixed sample-count delay, not a network jitter buffer or a wall-clock guarantee.
public sealed class FrameDelayBuffer<T>
{
readonly int delay;
readonly Queue<T> queue = new Queue<T>();
public FrameDelayBuffer(int delayFrames)
{ if (delayFrames < 0) throw new ArgumentOutOfRangeException(nameof(delayFrames)); delay = delayFrames; }
public bool Push(T value, out T output)
{
queue.Enqueue(value);
if (queue.Count <= delay) { output = default(T); return false; }
output = queue.Dequeue(); return true;
}
public void Reset() => queue.Clear();
public int BufferedCount => queue.Count;
}
}
WinForms 안에 Unity 화면 구성
배경과 과제
사용자가 하나의 소프트웨어에서 제어 화면과 Unity 화면을 함께 볼 수 있어야 했습니다.
내가 구현한 방식
윈도우 핸들(HWND)을 이용해 Unity 화면을 WinForms Panel 안에 표시하는 구성을 담당했습니다.
선택의 이유와 범위
운영 화면과 Unity 시각화를 한 창에 구성하는 역할을 맡았습니다. 적용 방식은 HWND를 통한 창 연결이며, Unity 버전별 호환성 검증은 별도 범위입니다.
MORE SCREENS
추가 실행 화면
CODE & VALIDATION
코드와 검증 범위
기존 코드 발췌와 2026년 포트폴리오용 재구성 코드를 구분해 제공합니다. 재구성 코드는 실제 제품 소스가 아니며, 일반 원리를 설명하기 위해 새로 작성했습니다.
Unity 6000.0.23f1 컴파일 및 Editor 검증 56개 통과. 실제 장비 연동과 제품 통합은 검증 범위에 포함하지 않습니다.
예제별 사용법과 검증 내용 ↗
