미리보기
기본 정보
임베디드 소프트웨어 , 하드웨어 , C , C++ , win32 API 개발 역량과 경험을 가진 지원자 김동현 입니다.
기술 스택
C, C++, win32api, Python, Linux, ros, Qt
경력
서울기술교육센터 (교육)
교육생 | 임베디드 | 재직 중
2024.07. ~ 재직 중 (8개월)
펌웨어 프로그래밍 (ARM Cortex-M 기반)
Edge 디바이스 리눅스 BSP
Edge AI 프로그래밍 (YOLO, OpenCV)
QT 프로그래밍 (C++, Python)
오제이씨푸드
팀원 | CS팀
2022.06. ~ 2023.05. (1년)
고객 서비스 (CS) 관리
온라인 스토어 운영 및 관리
판매 및 재고 관리
IENJOYBEAUTY
인턴 | CS팀
2018.05. ~ 2020.02. (1년 10개월)
고객 서비스 (CS) 관리
온라인 스토어 운영 및 관리 (아마존 , 월마트)
판매 및 재고 관리
호서대학교 전산실
수습 | 전산팀
2017.03. ~ 2017.06. (4개월)
근로장학생 업무
컴퓨터 초기화 및 운영체제 재설치(포맷)
와이파이 설정 및 IP/MAC 주소 변경
네트워크 관리 및 장애 처리 지원
전산실 내 하드웨어 및 소프트웨어 유지 보수
원격 업무지원
프로젝트
Win32 API 기반 퍼즐게임
개인
2023.07. ~ 2023.08.
수행목표
C++ / Win32 API 기반으로 한 퍼즐게임 만들기
사용 기술
C++ , Win32 API
1) 퍼즐 초기화
5 X 5 보드 셀 생성
- 퍼즐보드의 생성자에서 셀 객체를 5 X 5 배열로 초기화
- 각 셀마다 조각 객체를 생성 , 초기 좌표와 번호 설정
- 마지막 칸은 빈칸으로 설정
2) 비트맵 로드
Create에서 비트맵 이미지를 불러오고, 메모리 DC와 연결함
3) 사용자 입력 처리
- 마우스 클릭 이벤트 처리, 클릭한 좌표를 변환함
- 퍼즐 조각 이동 조건 확인
4) 퍼즐 이동
- 조각과 빈칸의 위치를 바꿈
- InvalidateRgn() 함수를 호출하여 퍼즐이 바뀔때마다 화면을 갱신함
5) 퍼즐 렌더링
- Draw()에서 현재 보드 상태를 화면에 출력
6) 퍼즐 상태 검사
- 퍼즐 조각마다 번호를 부여하여 번호가 순서대로 되어있는지 확인
- 퍼즐 조각이 순서대로 되어있으면 퍼즐 완성 메시지 박스 출력
Win32 API 기반 리버시게임
개인
2023.07. ~ 2023.08.
수행목표
C++ / Win32 API 기반으로 한 리버시게임 만들기
사용 기술
C++ , Win32 API
1) 게임 구조 및 데이터 관리
CBoard 클래스
- 게임판을 관리하며 각 위치에 놓인 돌과 게임 상태를 저장
- 흑/백 플레이어 객체를 관리
- 게임판 초기화와 턴 관리 기능 제공
CCheck 클래스
- 게임판의 각 칸을 나타냄
- 해당 칸에 놓인 돌 정보를 저장하며, 렌더링 및 힌트 표시 기능 제공
CStone 클래스
- 돌의 위치, 반지름, 색상 정보를 관리
- 돌의 색상 변경 및 화면에 렌더링 기능 제공
2) 게임 동작
- 초기화 : 8 x 8 크기의 게임판 생성 및 각칸을 초기화
- 렌더링 : 게임판과 돌을 화면에 그림
- 게임 진행
1) 돌을 놓을 수 있는지 8방향을 확인한다
2) 돌을 게임판에 놓는다
3) 놓인 돌 주변의 적 돌들을 뒤집는다
4) 흑백 돌의 개수를 센다
5) 승패를 가린다
3) 사용자 입력처리
마우스 클릭 이벤트를 처리하여 클릭 위치의 좌표를 확인하고 돌을 놓거나 돌을 뒤집는다
쫓GO
대한상공회의소 서울기술교육센터
2024.09. ~ 2024.10.
담당역할
YOLOv5s를 사용한Human Detection. 모델 병합
수행목표
AI와 Intel RealSense를 사용하여 제스처로 제어되는 스마트 카트를 개발,
사용자를 자율적으로 추적하여 편의성을 높임
사용 기술
AI 모델(YOLOv8, OpenVINO) 터틀봇, intel realsense 카메라
Mediapipe , yolov5s
1) Intel real sense camera
거리값 계산, 터틀봇에 장착하여 사용자와의 거리를 측정하여 사용자를 따라오게하거나 멈추게함
2) Google MediaPipe
손 제스처 인식에 최적화됨. 손인식으로 사용자를 등록하고 등록한 사용자만 따라오게 설정함.
3) Yolo human pose model
몸통crop 박스 생성 후, 박스안의 옷 색깔 검출하여 사용자를 인식하고자 함
4) ROS
터틀봇의 하드웨어 제어 및 데이터 통신 관리
5) DeepSort
처음에 인식한 사용자가 카메라 화면밖으로 나가도 그대로 고유한ID를 가지게 하기위해 사용함
객체가 프레임에서 사라지더라고 객체번호를 유지
스마트 어항관리 시스템
대한상공회의소 서울기술교육센터
2024.11. ~ 2024.11.
담당역할
WiFi 모듈과 Arduino를 활용하여 서버와 통신, 어항의 탁도 및 물 수위 데이터를 수집하고, 해당 데이터를 I2C LCD에 출력하는 작업을 담당.
수행목표
탁도 센서와 물수위 센서를 사용하여 어항의 상태를 자동으로 관리하는 시스템을 구축하는 것이 목표. 탁도 센서로 물의 상태를 확인하여 더러울 경우 빈 어항으로 물을 이동시키고, 물수위 센서를 통해 물의 양을 조절하여 자동으로 어항의 상태를 최적화하는 시스템을 개발한다. 이를 통해 물 교체 및 순환 작업을 자동화하고, 관리 효율성을 극대화하는 것을 목표로 한다.
사용 기술
Raspberry pi(센서 데이터 처리 및 제어), STM32 (센서 인터페이스 구현), WiFi 모듈(서버 통신), Bluetooth 모듈 (추가적인 데이터 전송),
여러 센서(탁도 센서, 물수위 센서 등)
1) 어항 탁도 및 물 상태 데이터 수집
탁도 센서를 통해 어항 물의 청결도를 실시간으로 측정하고, 이를 WiFi 모듈과 Arduino를 통해 서버에 전송. 물 수위 센서를 활용하여 어항의 물의 높이를 감지하고, 데이터값을 수집하여 물 부족 또는 과다 상태를 판별.
2) LCD를 통한 데이터 출력
I2C LCD를 사용하여 어항의 탁도 상태와 물 수위를 시각적으로 표시. 사용자가 어항의 상태를 직관적으로 확인할 수 있도록 데이터값을 텍스트 형식으로 출력.
3) 자동 물 순환 및 물 교체 시스템 구축
탁도 센서 데이터를 기반으로 물이 더러워질 경우, 펌프를 가동하여 어항의 물을 빈 어항으로 순환. 물 교체 후 깨끗한 물을 다시 어항으로 공급하여 자동 물 교체가 가능하도록 설계.
4) 물 수위 조절 시스템 구현
물 수위 센서 데이터를 통해 물의 양을 판별, 물이 부족할 경우 펌프를 통해 물을 추가 공급. 물이 넘칠 경우 물을 제거하여 일정한 수위를 유지하도록 제어 로직 작성.
5) WiFi 및 Bluetooth 통신 구현
WiFi 모듈을 사용하여 센서 데이터를 서버로 실시간 전송. Bluetooth를 이용하여 모바일 디바이스와의 연결을 통해 사용자가 원격으로 어항 상태를 확인하고 제어할 수 있도록 구현.
6) Raspberry Pi를 통한 시스템 제어 및 모니터링
Raspberry Pi를 중심으로 센서 데이터 처리 및 자동화 제어 시스템 관리. 탁도 및 물 수위 데이터를 분석하여 시스템 제어 명령을 생성하고, 이를 Arduino와 통신하여 명령 실행.
포트폴리오
교육
호서대학교
대학교(학사) | 경영학부
2012.02. ~ 2018.02. | 졸업
비봉고등학교
고등학교 | 인문계
2009.02. ~ 2012.02. | 졸업
자기소개
프로젝트경험
AI 기술을 활용한 프로젝트를 수행하며 포기하지 않는 근성과 창의적인 사고로 도전적인 과제를 해결한 경험이 있습니다. 프로젝트는 4명의 팀원과 함께 진행되었으며, 약 2주 동안 터틀봇 하드웨어를 활용하여 특정 대상을 지속적으로 추적하는 시스템을 구현하는 것이 목표였습니다. 프로젝트 초기에는 터틀봇이 사용자를 인식하고 추적할 수 있는 다양한 방법을 고민했습니다. 얼굴 인식이나 뒤통수 추적과 같은 방법을 고려했지만, 해당 기술은 구현이 복잡하고 한계점이 명확했습니다. 이에 따라 보다 현실적이고 효과적인 대안을 모색하게 되었고, YOLOv5s와 OpenVINO를 활용하여 특정 대상의 옷 색상을 감지하고 추적하는 방식을 선택하게 되었습니다. 제가 맡은 역할은 YOLOv5s를 활용하여 사람 객체를 탐지하여, 사람의 옷 색상을 인식하고, OpenVINO를 통해 모델을 병합하는 과정을 진행하였습니다. 하지만, 프로젝트 과정에서 예상치 못한 문제들도 발생했습니다. 사람 객체를 탐지하고 웹캠에 나온 사람이 가진 바운딩 박스의 자세 추정과정에서 리사이징을 할때, 사람의 형상이 무너져서 자세추정이 제대로 되지않는 오류를 발견하였습니다. 이를 해결하기 위해 팀원들과 함께 학습하고 디버깅을 진행하여, zero Image에 영역을 대입하고 리사이징을 진행한 결과 문제를 해결하게 되었습니다. 이 프로젝트는 팀원들과의 협력, 문제 해결 과정, 그리고 끈기를 통해 얻은 큰 성취감으로 이어졌습니다. 이러한 결과로 프로젝트는 5개의 팀 중 우수상을 받으며 그 성과를 인정받았습니다. 또한 프로젝트를 통하여 AI 기술에 대한 두려움을 극복하고, 도전적인 목표를 달성하며 자신감을 얻게 된 계기가 되었습니다.