About Skills Projects Awards Contact
Portfolio

안녕하세요,
윤우상입니다.

모바일과 웹의 경계를 탐구하는 개발자입니다.

About Me

자기소개

경기과학기술대학교 컴퓨터모바일융합과를 졸업하고, 전공심화 과정까지 이수하며 모바일과 웹 개발 전반에 걸친 역량을 쌓았습니다. 다양한 프로젝트와 자격증 취득 경험을 바탕으로 꾸준히 성장하고 있습니다.

3년제
경기과학기술대학교
컴퓨터모바일융합과 · 졸업 (2018 ~ 2023)
전공심화
경기과학기술대학교
컴퓨터모바일융합과 전공심화 · 졸업 (2023 ~ 2024)
현재 소속중
한국폴리텍대학 광명융합기술교육원
하이테크 과정 증강현실과

Skills

기술 스택

🤖Android Studio
☕Java
🟨JavaScript
⚙️C / C# / C++
⚛️React
🌐HTML5
🗄️MySQL
🐙Git / GitHub
💬Discord Bot
🎮Unity
🕹️Unreal

Projects

프로젝트

[APP / API]

식품 정보 앱

공공 OpenAPI를 활용해 식품의 영양 성분과 첨가물 정보를 조회할 수 있는 앱을 개발했습니다.

AndroidJavaOpenAPI
자세히 보기 →

[Web / SNS]

마크다운 SNS 사이트

ToastUI Editor를 기반으로 마크다운 문법을 이용해 글을 작성하고 공유할 수 있는 SNS 사이트를 제작했습니다.

JavaScript React ToastUI
자세히 보기 →

[Game / Unity]

Dodge 게임
Block Dodge

날아오는 탄환을 피해 생존하는 게임입니다.

UnityC#Game
자세히 보기 →

[Game / Unity / VR]

VR 리듬게임
VR BeatSaber

Beat Saber에서 영감을 받아 제작한 VR 리듬게임입니다.

UnityVRC#
자세히 보기 →

[AR / Virnect Make]

보드게임 AR 가이드 앱

Virnect와의 일경험 프로젝트를 통해 제작한 보드게임 규칙 안내용 AR 가이드 앱입니다. 노코딩 제작 프로그램인 Virnect Make를 활용해 개발했습니다.

ARVirnect MakeNo-code
자세히 보기 →

[App / UI / API]

이미지 검색 앱

Unity UI Toolkit으로 검색 화면을 구성하고, Pixabay API 검색과 비동기 썸네일 로딩을 연결한 이미지 검색 앱입니다.

UnityC#UI Toolkit UniTaskPixabay API
자세히 보기 →

[Game / Unity / PC]

Urban Survival

네 종류의 무기와 좀비 웨이브, 보스 전투를 구현한 탑뷰 생존 게임입니다. 전투 HUD와 설정 기능을 함께 개발하고 있습니다.

Unity 6C#URP NavMeshuGUI
자세히 보기 →

Certificates

자격증

SQL개발자(SQLD자격)최종합격 2024.06
한국데이터베이스진흥센터
정보기술자격(ITQ) 한글엑셀(한셀) B등급최종합격 2018.12
한국생산성본부
정보기술자격(ITQ) 한글파워포인트(한쇼) A등급최종합격 2018.12
한국생산성본부
1종보통운전면허최종합격 2017.08
경찰청(운전면허시험관리단)

Contact

연락처

이메일 보내기

식품 정보 앱

2022.03 - 2022.10

AndroidJavaOpenAPI팀 프로젝트팀장

기획 의도

  • 다이어트를 할 때 음식 이름만으로 간단하게 칼로리 섭취량을 계산하고 조절할 수 있는 앱이 있으면 좋겠다는 생각에서 기획했습니다.

프로젝트 개발 및 수행 내용

1. 팀장으로서의 역할 및 기여
  • 팀원별 담당 파트를 분배하고, API 연동(Put/Get 등) 작업을 관리했습니다.
  • 팀원들이 완료한 작업을 취합해 하나의 앱으로 통합했습니다.
2. 공공데이터 OpenAPI 연동
  • 공공데이터포털의 OpenAPI를 활용해 식품의 이름·종류에 따른 칼로리 등의 영양 정보를 조회하고 화면에 제공하는 기능을 구현했습니다.

회고

OpenAPI에서 제공받는 JSON 데이터 중 기본적인 Put/Get 방식 외에 다른 방식으로 데이터를 받아와야 하는 경우가 있어, 이를 해결하는 과정에서 어려움을 겪었습니다. 이 과정을 통해 다양한 API 응답 구조를 다루는 방법을 익힐 수 있었습니다.

마크다운 SNS 사이트

2023.04 - 2023.09

ToastUIJavaScriptReact팀 프로젝트팀원

기획 의도

  • 당시 마크다운을 지원하는 SNS가 없거나 적었고, 실제 SNS 이용 시 이미지를 올리면 게시글 하단부에만 이미지가 노출되는 점을 개선하고자 기획했습니다.

프로젝트 개발 및 수행 내용

1. 마크다운 에디터 도입 (Toast UI Editor)
  • 마크다운이 적용되는 에디터가 필요해, NHN에서 MIT 라이선스로 공개한 Toast UI Editor를 찾아 적용했습니다.
2. DB 설계 및 전환
  • 팀원이 구성한 DB를 MySQL로 변환해 적용했으나, 이후 서버 관리의 용이성을 높이기 위해 MS-SQL로 다시 수정해 적용했습니다.
3. UI 구성 및 제작
  • 다른 SNS 서비스의 UI를 참고하여 화면을 구성하고 제작했습니다.

회고

최초 기획했던 MySQL 기반 DB 구성을 비용 등의 문제로 MS-SQL로 전환하는 과정에서, 기존과 다른 문법과 의미 차이로 인해 수정하는 데 어려움을 느꼈습니다.

Dodge 게임 [Block Dodge]

2026.04 - 2026.06

UnityC#3D개인 프로젝트

기획 의도

  • 날아오는 탄환을 피하며 생존하는 게임으로, 기초적인 프로젝트에서 회피 효과를 구현하고 싶었고, 구현에 성공했습니다.

프로젝트 개발 및 수행 내용

1. 탄환 회피 시스템
  • 시간이 지날수록 빨라지는 탄환을 피하는 시스템을 구현했습니다. 기본적으로 모바일 조이스틱을 통해 캐릭터를 이동시켜 회피합니다.
2. 회피(구르기) 기능
  • 별도의 회피 버튼을 누르면 잠깐의 무적 판정과 함께, 이동 중이던 방향(입력이 없다면 정면)으로 회피 기동을 수행합니다.
3. 패배 및 최고 점수 시스템
  • 공격에 3회 피격되면 게임이 종료되며, 최고 점수를 저장해 다시 플레이하고 싶은 의욕을 부여합니다.

프로젝트 스크린샷

회고

해당 방식의 플레이, 특히 회피 기능을 구현할 때 쿨타임과 버튼 UI를 연동하는 과정에서 어려움을 느껴 구현에 어려움을 겪었습니다.

VR 리듬게임

2026.05 - 2026.07

UnityVRC#개인 프로젝트

기획 의도

  • 현재 VR 게임 중 가장 유명하고 완성도 높은 게임인 비트세이버(Beat Saber)를 직접 제작해보고 싶다는 의도로 제작했습니다.

프로젝트 개발 및 수행 내용

1. Saber 판정 시스템
  • VR 컨트롤러에 판정을 위한 Saber 오브젝트를 배치하고, 휘둘러지는 방향과 각도를 인식해 Hit / Good / Miss 판정을 부여했습니다.
  • 만점 100,000점을 목표로 노트를 처리하는 구조로 설계했습니다.
2. Combo / HP 상호작용
  • 판정 성공·실패 여부에 따라 Combo 처리와 HP 처리 등의 상호작용을 구성했습니다.

프로젝트 스크린샷

프로젝트 영상

🔗 영상 링크

회고

기존에 VR 게임을 접해본 경험이 적어, VR 게임을 구성할 때 필수적으로 적용해야 하는 요소들을 알게 되는 계기가 되었습니다. 또한 Meta Quest 3S 기종을 기반으로 제작하며 해당 기기의 다양한 사용법을 익힐 수 있었습니다.

보드게임 AR 가이드 앱

2026.05.18. - 2026.07.12. (8주)

ARVirnect MakeNo-code일경험 프로젝트팀 프로젝트팀장

기획 의도

  • 기존 보드게임 설명서는 텍스트 중심으로 구성되어 있어 초보자가 보드게임을 이해하는 데 시간이 오래 걸립니다. AR 기술을 활용해 복잡한 규칙과 구성품 정보를 시청각적으로 제공함으로써 사용자의 학습 부담을 줄이고자 기획했습니다.

프로젝트 개발 및 수행 내용

1. 팀장으로서의 역할 및 기여
  • 전체 일정 관리, 프로젝트 방향 설정, 지원금 사용 관리, 기능 구현을 총괄했습니다.
2. 콘텐츠 구조 설계
  • 메인 화면과 선택 화면을 거쳐 사용자가 원하는 안내 콘텐츠를 확인할 수 있도록 구성했습니다.
  • 선택지를 제공해 초보자가 규칙과 진행 흐름을 쉽게 이해할 수 있도록 지원했습니다.
3. TTS 음성 안내
  • TTS 음성 안내를 통해 사용자가 설명을 귀로 듣고 이해할 수 있도록 구성했습니다.

프로젝트 스크린샷

프로젝트 영상

🔗 영상 링크

회고

팀원 전원이 처음 사용해보는 툴로 협업을 총괄하다 보니 기능 구현 부분을 분배하는 데 어려움을 느꼈습니다. 문제를 한 사람이 해결하기보다 팀원들과 함께 테스트하고 의견을 나누며 해결하는 협업 방식의 중요성을 배웠습니다.

이미지 검색 앱

UsingAI-ImageSearchApp · Unity 기반 앱 개발

Unity 6C# UI ToolkitUniTask Pixabay API

프로젝트 개요

검색어로 이미지를 찾고 결과와 썸네일을 확인할 수 있는 세로형 앱입니다. UI Toolkit으로 화면을 구성하고, 검색과 썸네일 로딩을 별도의 Repository 인터페이스로 연결했습니다.

프로젝트 개발 및 수행 내용

1. 검색 화면과 상태 처리
  • 검색 중, 검색 결과, 빈 결과, 오류 상태를 구분해 화면에 표시했습니다.
  • 썸네일을 비동기로 로딩하고, 개별 이미지 로딩 실패는 해당 카드의 대체 표시로 처리했습니다.
2. 레이어 분리와 API 연결
  • Presentation·Domain·Data·Core와 Composition Root로 역할을 나누고, 화면이 API 구현에 직접 의존하지 않도록 구성했습니다.
  • Pixabay 검색과 썸네일 HTTP 요청을 Repository 인터페이스에 연결하고, 네트워크 오류를 화면에서 사용할 결과 타입으로 변환했습니다.
  • 실제 API와 Mock 구현을 교체할 수 있게 구성해 성공·빈 결과·연결 실패·서버 오류 흐름을 확인할 수 있도록 했습니다.
3. 요청 취소와 응답 순서 관리
  • 새 검색이 시작되면 이전 검색과 썸네일 작업을 취소하고, 요청 세대를 비교해 오래된 응답이 최신 결과를 덮어쓰지 않도록 했습니다.
  • 화면 종료 시 진행 중인 작업을 취소하고, 검색 결과에 사용한 텍스처의 수명을 관리했습니다.

기술적 포인트

검색 결과가 없는 경우와 네트워크 오류를 구분하고, 검색 요청과 이미지 로딩의 실패 범위를 나눴습니다. 실제 API 연동은 Editor 개발 환경에서 사용하며, 모바일 빌드는 현재 Mock 구현을 사용하는 단계입니다.

프로젝트 저장소

🔗 GitHub 저장소

Urban Survival

URP_ZombieGame · SideProject · 개발 중

Unity 6C# URPNavMesh uGUIAudioMixer

프로젝트 개요

도시 전장에서 좀비의 공격을 피하며 생존하는 PC 싱글 플레이 탑뷰 게임입니다. URP_ZombieGame의 SideProject 브랜치에서 전투, 적 생성, HUD와 설정 기능을 확장하고 있습니다.

프로젝트 개발 및 수행 내용

1. 무기와 전투 시스템
  • 권총·소총·SMG·산탄총을 네 개의 슬롯으로 관리하고, 획득한 무기를 교체할 수 있도록 구현했습니다.
  • 사격·탄약·재장전 상태를 관리하고, 캐릭터 중심선 위 고정 높이를 기준으로 명중을 판정하도록 개선했습니다.
2. 웨이브와 생존 진행
  • 시간에 따라 웨이브와 적의 능력치가 증가하도록 구성하고, 일반·강화 적과 보스 등장 흐름을 관리했습니다.
  • 플레이어 주변의 NavMesh와 이동 경로를 검증해 스폰 위치를 선택하고, 동시 생성 상한과 대기 중인 적을 관리했습니다.
  • 목표 보스 처치 시 결과를 기록하고, 이후 생존을 계속하는 무한 모드 흐름을 연결했습니다.
3. 전투 HUD와 위협 미니맵
  • 무기·탄약 정보와 캐릭터 머리 위 재장전 알림·진행 바를 표시했습니다.
  • 카메라 방향을 기준으로 주변 적을 표시하고, 탐지 범위 밖의 위협은 가장자리 화살표로 안내했습니다.
  • 강화 적의 미니맵 표시를 색상과 크기로 구분하고, 마커를 재사용하도록 구성했습니다.
4. 재사용 가능한 설정 모듈
  • 볼륨·전체 화면·해상도·그래픽 품질·VSync 설정을 게임 코드와 분리한 GameSettingsKit 모듈로 구성했습니다.
  • PlayerPrefs로 설정을 저장하고, AudioMixer를 통해 음악과 효과음 볼륨을 분리했습니다.

기술적 포인트

사격 판정과 총구의 시각적 연출을 분리하고, 카메라 방향과 미니맵 좌표 기준을 일치시켰습니다. 전투 중 필요한 상태를 HUD로 전달하면서, 설정 기능은 다른 Unity 프로젝트에서도 사용할 수 있도록 분리했습니다.

프로젝트 저장소

🔗 GitHub · SideProject