미리보기
기본 정보
주로 기업의 솔루션의 유지 보수 및 고도화 개발을 담당한 이동기 입니다.
기술 스택
Java, Kotlin, JavaScript, Spring Boot, Docker, AWS, 네이버 클라우드, Linux, MySQL, Oracle, Redis, MongoDB, Jenkins, github-actions, swagger
경력
피플앤드테크놀러지
팀원 | 모바일
2021.04. ~ 2024.08. (3년 5개월)
측위 및 위치 기반 서비스 솔루션의 구축, 유지보수, 파생 상품 개발
서버 메트릭 데이터 기반 쿼리 튜닝 및 솔루션 소스 최적화
데이터베이스 설계, 관리, 마이그레이션 작업
파생 상품 개발, 신규 기술 도입 검토, 신규 기능 개발
시스템 인프라 구축
미르테크
팀원 | 개발
2020.06. ~ 2021.02. (9개월)
전자 도서관 솔루션 구축 및 유지보수
사이트 납품을 위한 솔루션 커스텀 개발
인기, 신간, 권장 도서 조회, 독후감 쓰기 기능 담당
소프트위드솔루션
팀원 | 엔지니어
2019.02. ~ 2019.09. (8개월)
망연계 솔루션 엔지니어로 사이트 구축 및 유지보수
서버 OS, 데이터베이스, 솔루션 설치
시스템 이벤트 로그, 메모리 사용량, CPU 사용량 기반 분석
서버 보안, 디스크 파티션, 네트워크 구성
프로젝트
모바일 위치 측위 솔루션 유지보수
피플앤드테크놀러지
2022.06. ~ 2024.08.
사용 기술
개발 : Java, Spring Boot, JavaScript, Git
데이터베이스 : Mysql, SQLite, IndexedDB, Redis
서버 : AWS, Ubuntu, Docker, Nginx
성과
서버가 모바일 측위 코어 역할을 분담하고 처리 속도를 개선
온프레미스 배포 시스템을 확립하여 프로젝트 적용 범위 확대(광산, 원전, 일본에 납품)
docker를 도입하여 OS에 종속되지 않는 솔루션으로 개선
주요 작업
주요 로직 처리속도 개선(기존보다 10배 개선)
이진 탐색 알고리즘 적용
autoincreament가 적용된 테이블은 jpa batch 기능 적용이 안되어 일괄 삽입이 가능한 대체 방안인 mybatis와 jdbc template으로 대체
서버 메트릭 데이터를 분석하여 적절한 aws 스케일업 및 java 힙 메모리 추가 할당
레거시 측위 기반 데이터 수집 시스템 고도화
데이터 구조를 인덱스 기반 데이터 구성이 아닌 맥 주소 기반 키 값 구성으로 변경하여 데이터 중복 제거 및 유효성을 개선하는 방향으로 구조 변경
android app 에서 처리하던 중요 로직을 서버 내 java 모듈로 이관
JWT 토큰 AES 양방향 암호화
토큰에 담긴 정보를 https://jwt.io/ 또는 라이브러리를 이용해 복호화 하지못하도록 처리
엑셀 기능 공통화
팩토리 패턴을 이용하여 도메인이 확장 될 때 편하게 비즈니스 로직 확장이 가능하도록 처리
템플릿 메서드 패턴을 적용하여 도메인이 확장 될 때 필요한 필수 함수를 추상 메서드로 선언하여 보다 명확하게 개발 할 수 있도록 처리
AWS 클라우드 EC2 서버 및 시스템 구성 개선
개발, 스테이지, 운영 환경으로 분리 구성 및 Docker 도입
실내 길 안내 기능 개발
오픈레이어스를 이용한 길 안내 기반 데이터 관리 기능 개발
트리 구조 기반 카테고리 정보 관리 기능 개발
웹 기반 길 안내 SDK 개발
다익스트라 알고리즘을 이용 최적 경로 탐색하는 로직 개발
애니메이션을 사용하여 최적 경로를 따라 마커가 이동하는 시뮬레이션 기능 개발
인천공항 실내 길 안내 시스템 구축
피플앤드테크놀러지
2023.05. ~ 2023.12.
사용 기술
개발 : Java, Spring Boot, JavaScript, Git
데이터베이스 : TiberoDB, SQLite, IndexedDB, Redis
서버 : AWS, Ubuntu, RedHat, Docker, Nginx
성과
파생 프로젝트 2개 계약에 기여(고도화, 공항 면세점)
주요 작업
Mysql -> TiberoDB 마이그레이션
autoincreament 기능을 sequnce + trigger를 이용하여 구현
데이터 수집 시스템 성능 개선
무선, 자기장 신호 수집 로직을 비동기 방식으로 변경하여 처리 속도를 개선
웹 기반 길 안내 SDK 커스텀 개발
최적경로 탐색 시 코스트 적용 기법으로 교통 약자 경로 안내 구현
폴리곤 영역에 특정 위경도의 점이 포함되어있는지 판단하는 로직 개발
zoom level 및 사용자에게 보이는 구역만 랜더링 하는 선택적 표시 기능 개발
시스템 인프라 구성
정보시스템 하드웨어 규모산정 지침에 따른 운영 서버 규격 산정
개발 서버 및 운영 서버 구성
어떠한 고민을 가지고 있었는지
사용하는 데이터 베이스가 다르고 내부적인 구축 예시도 없고 참고자료도 많이 없어서 해당 부분에 대한 고민이 있었습니다.
어떻게 해결하였는지
먼저 DB 마이그레이션을 위해 무엇을 작업해야하는지 정리하고 테크넷 이라는 사이트에서 tibero 관련 공식 문서를 모두 다운로드 받고 필요한 부분을 정독했습니다. 이를 통해 tibero가 orcle와 유사하다는 것을 알게 되었고 그나마 참고자료가 있는 mysql 쿼리를 oracle 쿼리 컨버팅 하는 작업을 우선적으로 진행하고 oracle과 tibero의 차이점을 찾아 직접 수정하는 방식으로 마이그레이션을 진행하였습니다.
정신건강관리 솔루션 구축
피플앤드테크놀러지
2022.09. ~ 2024.06.
사용 기술
개발 : Java, Spring Boot, GitHubActions, Swagger, RabbitMQ, Git
데이터베이스 : Cloud DB for MySQL, MongoDB, Redis
서버 : Naver Cloud, Docker, Ubuntu, Nginx
성과
정신건강관리 솔루션의 기반을 마련하여 안정화에 기여
용인세브란스 세미나에서 발표되어 이후 파생 프로젝트 발생에 기여
주요 작업
쿼리 속도 개선
외래키 삭제 후 일반 컬럼으로 변경하고 조인 문법을 제거하여 20초 가량 소요되던 조회 시간을 1초 이내로 단축
클라우드 서버 및 CI/CD 환경 구축
Docker, Watchtower, Container Registry, GitHubActions를 이용한 CI/CD 배포 구성
VPC 서브넷 재구성 후 리전을 분리하여 Clud DB 이중화 구성
OTP 인증을 위한 Simple & Easy Notification Service 기능 구성
디지털표현형 데이터 수집 SDK 백엔드 서버 개발
시스템 데이터베이스 스키마 및 프로그램 구조 설계
어플리케이션별 JWT토큰 인증 시스템 개발
[Big4+] 정신건강관리 APP 백엔드 서버 및 백오피스 개발
시스템 데이터베이스 스키마 구조 설계
프로메테우스와 그라파나를 이용한 모니터링 시스템 구축
Firebase-Admin SDK를 이용한 APP Push 구현
RedisExpirationListener를 이용한 주기적인 알림 구현
관리자 페이지 Redis 세션 관리 방식 적용
여러 단말 중복 로그인 방지 기능 개발
[Avecmom] 주산기 여성 정신건강관리 APP 백엔드 서버 개발
사용자 정보 대상 송수신 데이터 AES256 암호화 통신 기능 개발
용인세브란스 병동 스마트 환자 관리 시스템 서버 구성
센서 데이터 연동 방안 수립 및 온프레미스 배포 시스템 구성
SK Hynix 장비 추적 시스템 구축
피플앤드테크놀러지
사용 기술
개발 : Java, Spring Boot, JavaScript, Kafka, Git
데이터베이스 : Oracle, SQLite, Redis
서버 : AWS, Ubuntu, RedHat7, Docker, Nginx, VirtualBox
성과
모바일 위치 측위 솔루션의 서버 측위 가능성을 검증
주요 작업
Kafka Streams를 이용한 대규모 트래픽 기반 비동기 서버 측위 구현
KStream 객체를 이용하여 처리 프로세스 구현하고 메세지를 비동기적으로 Cunsume 및 처리 할 수 있도록 개발
팩토리 패턴으로 처리 프로세스 로직을 개발하여 로직이 추가되거나 사라질 때 개발에 용이하도록 처리
서버의 cpu와 memory 사용량을 모니터링 하여 서버 사양에 맞는 비동기 스레드 풀 설정 구성
Java와 C로 빌드된 프로그램을 JNI로 연동하여 C언어로 구성된 위치 측위 코어 라이브러리(.so)를 서버에서 구동하도록 처리
시스템 인프라 구성
시스템 데이터베이스 스키마 구조 설계
개발 서버 구축
정보시스템 하드웨어 규모산정 지침에 따른 운영 서버 규격 산정
데이터 연동 구성
Oracle의 Trigger 와 DB Link기능을 이용한 데이터 연동 구성
테스트 베드 구축
VirtualBox를 이용한 Kafka, ZooKeeper 클러스터, 앙상블 구조 구성(삼중화)
Jmeter를 이용한 대규모 트래픽 구현
어떠한 고민을 가지고 있었는지
모바일 측위 방식을 서버 측위 방식으로 변경해야하는 부분에서 고민이 있었습니다.
어떻게 해결하였는지
우선적으로 데이터 처리 프로세스 설계를 우선적으로 진행하였고 각 프로세스에 필요한 기술 및 가능성 검토 진행 후 로컬에서 개발 및 테스트 하였고 시스템 정상 구동됨을 증명하여 해결하였습니다.
서버 위치 측위 솔루션 유지보수
피플앤드테크놀러지
2021.04. ~ 2022.06.
사용 기술
개발 : Java, Spring Framework, JavaScript, Jquery, Swagger, Git
데이터베이스 : Mysql, Oracle, Redis, InfluxDB
서버 : AWS, Centos, Nginx, Jenkins
성과
공통 기능 개발로 프로젝트 수주에 기여
쿼리 튜닝 및 메모리 누수 해결로 사용성 개선
주요 작업
쿼리 속도 개선(기존 약 30초 소요되던 쿼리 시간을 0.1초 이내로 개선)
mysql explain 문법을 이용하여 내림차순 정렬 시 인덱싱이 사용되지 않고 있는 것을 확인
내림차순 정렬 후 limit을 처리 하여 특정 범위의 정보를 가져오는 이너쿼리를 where 문을 이용한 범위 검색 방식으로 변경하였고 최상위 뎁스의 쿼리에서 내림차순 정렬 할 수 있도록 처리
order by 절에 key로 설정되어있는 컬럼을 넣어서 인덱싱을 사용하도록 유도
지도 페이지 메모리 누수 현상 해결
메모리 누수가 발생하는 페이지에서 브라우저 개발 도구를 이용하여 memory snap shot 캡쳐 후 retained size 기반 분석 진행
지도에 이미지가 로딩 되는 페이지의 경우 해당 이미지 객체를 제거하지 않고 새로 만들기만 하여 계속 누적되는 현상을 파악하여 누적되는 이미지 객체를 지우는 로직을 추가
지정구역 방치알람 기능 개발
특정 대상 기준 반경 10M 내외에 보호자가 위치하는지 확인하는 로직 개발
web socket에 채널을 신규로 추가하여 관리자 페이지에 알림 전송 기능 개발
수액, 냉장고, 활력징후 센싱 데이터 처리 프로세스 로직 개발
파생 상품 권한 관리 기능 고도화
신규 개발된 파생 상품의 계정 대상으로 메뉴 접근 권한을 설정 할 수 있는 기능 개발
심전도 센서 관련 기능 개발
심전도 디바이스를 통해 전달 받은 데이터 번들 기반으로 정적 심전도 차트 구현
심전도 디바이스와 연결이 끊어 졌을 때 재연결하는 스케줄러 개발
마라토너 위치기반 서비스 구축
피플앤드테크놀러지
2022.05. ~ 2022.08.
사용 기술
개발 : Java8, Spring Boot, Gradle, GitHub, Swagger, MQTT, Git
데이터베이스 : MariaDB, Redis
서버 : AWS, Centos, Nginx, Jenkins
성과
사내 Spring Framework 모듈을 Spring Boot로 고도화 하는 프로젝트에 참고가 되는 기반 마련
주요 작업
MQTT를 이용한 마라토너 위치 및 상태 정보 수집 기능 개발
수집된 위치 및 센서 정보 기반 마라토너 상태 경고 알림 개발
지오펜스 기능을 이용하여 이탈자 판단 로직 개발
테스트 베드 구성
Jmeter MQTT 플러그인을 이용한 무작위 데이터 테스트 케이스 구성으로 대규모 데이터 입출력 구현
실제 마라톤 경로인 GPX 파일 파싱 로직 개발
어떠한 고민을 가지고 있었는지
경로 이탈 판단의 기존 기획은 노드를 연결한 링크 기준으로 사용자의 위치가 링크에서 얼마나 떨어져 있는지 수직 선 기준으로 판단하는 것이었으나 구현 시간이 부족하였고 구현하더라고 보완 및 점검 할 수 있는 시간이 부족하다는 고민이 있었습니다.
어떻게 해결하였는지
기존에 지오펜스 출입 판단 로직이 있어 이를 활용하였습니다. 지오펜스는 폐곡선과 개곡선 도형이 구현 가능하고 출입 판단 로직을 이용하여 경로 이탈 판단 가능하며 검증된 로직이 있어 건의하였고 기존 이탈 판단 기획을 대체 하여 일정에 맞춰 개발에 성공할 수 있었습니다.
CCTV 라이선스 관리 시스템 구축 및 유지보수
피플앤드테크놀러지
2022.01. ~ 2022.03.
사용 기술
개발 : Java, Spring Boot, Swagger, Git
데이터베이스 : MariaDB, Redis
서버 : Naver Cloud, Centos, Nginx
성과
한화 비전과 피플앤드테크놀러지 간 AI 기술 협약에 기여
주요 작업
사내 첫 Spring Boot와 Swagger v3 도입
시스템 전체 개발 수행
어떠한 고민을 가지고 있었는지
프로젝트 리더라는 역할을 처음 맡은 프로젝트였기에 역할 수행에 대한 고민이 있었습니다.
어떻게 해결하였는지
회의 방식, 일정 관리, 문서 관리 등등의 방법을 부서장님과의 식사 및 면담을 통해서 노하우를 전달 받았고 이를 토대로 프로젝트를 성공적으로 이끌어 나갔습니다.
전자도서관 솔루션 구축 및 유지보수
미르테크
2020.06. ~ 2021.02.
성과
오류 처리 및 기능 추가를 통해 사용성 개선에 기여
사용 기술
개발 : Mumps, CSP, Javascript, Jquery, SVN
데이터베이스 : Intersystems Cache
서버 : Redhat, Centos, Apache Tomcat
주요 작업
인기, 신간, 권장 도서 조회, 독후감 쓰기 기능 UI 및 백엔드 로직 개발
과천시정보과학도서관 페이지 유지 보수
망연계 솔루션 구축 및 유지보수
소프트위드솔루션
2019.02. ~ 2019.09.
시스템 환경
데이터베이스 : MSSQL
서버 : Windows Server, IIS
주요 업무
시스템 이벤트 로그 점검, 메모리 사용량, CPU 사용량, 용량 관리
물리적 서버, OS, DB, 솔루션 설치 작업 수행
서버 보안, 디스크 파티션, 네트워크 구성 작업 수행
포트폴리오
URL
GitHub
기술 블로그
[블로그]Spring Boot가 HikariCP를 기본으로 사용하는 이유
[블로그] JNI를 이용한 JAVA와 C++ 연동 구성
[블로그] Kotiln + Spring Boot를 이용한 MariaDB 단방향 이중화 구성
[블로그]Docker를 이용한 MariaDB 단방향 이중화 구성
[블로그]Docker를 이용한 OpenStreetMap Tile 서버 구축
[포트폴리오] 2021_개인_블로그_개발_프로젝트.pdf
[발표영상] 2020_이젠아이티_아카데미_웹개발_프로젝트
[포트폴리오] 2020_이젠아이티_아카데미_웹개발_프로젝트
[포트폴리오] 2018_아이티윌_네트워크 프로젝트
자기소개
저는 대학 시절 단 한번도 빠짐없이 조장의 역할을 맡아왔습니다. 그렇기에 리더의 고충을 이해하고 팀원의 위치에 있을 때는 리더의 방향성을 결코 무시하지 않으며 같이 고민하고 보다 좋은 결과를 만들어 나가기 위해 함께 노력합니다.
리더의 위치에 있을 때는 팀원을 믿고 같이 성장하며 팀원이 부족하면 이끌어주고 내가 부족하면 팀원에게 배움을 요청하는 리더입니다.
커뮤니케이션 부분은 '핵심은 날카롭게 단어는 부드럽게', '세상에 정답은 없다' 라는 생각들을 기반으로 소통하며 배움에 있어서는 현실에 안주하지 않고 항상 더 나은 것에 관심을 가지고 학습합니다.
자격증
정보처리기사
1급 | 산업인력관리공단
2018.11.
CCNA
Cisco
2018.11.
1종보통운전면허증
부산지방경찰청
2019.02.
교육
이젠아이티 아카데미
사설 교육 | 자바 웹&앱 개발자 과정
2019.12. ~ 2020.04. | 졸업
아이티윌 부산교육센터
사설 교육 | ICT 보안 네트워크 엔지니어 양성
2018.06. ~ 2018.12. | 졸업
인제대학교
대학교(학사) | 의용공학과
2012.03. ~ 2019.02. | 졸업