KGYURY_PROFILE

프로젝트 완성의 한 조각
채우는 개발자, 김규리입니다.


큰 그림을 맞추기 위한 퍼즐은 한 조각의 유무가 완성을 좌우합니다

프로젝트의 완성도는 다양한 상황에서 결정되기에, 저는 개발과정에서 이처럼 대응합니다.

✔ 팀원 간 이해관계를 명확히 - 시각자료(다이어그램 등)를 통해 분명히 밝혀 소통한다

✔ 요구사항은 자주 변한다 - 디자인패턴을 활용해 확장성을 고려한다

✔ 시간에 따라 프로젝트 방향을 잃기도 한다 - 자발적인 문서화로 목적을 명시한다

✔ 동료는 지식을 공유한다 - 기술 습득 과정을 때마다 기록하여 공유하고 피드백을 나눈다

완성을 결정하는 한 조각을 맞추겠습니다.

🎓 교육

SAMSUNG 청년 SW아카데미 9기 - 전공자반(JAVA)

📅 2023. 01 - 📅 2023. 12
- 삼성 SW 교육 경험, 노하우 바탕의 SW 역량 향상 프로그램 - JAVA 기반 웹 개발 역량강화 알고리즘 역량 강화(Java기반), Backend 역량 강화(Spring/SpringBoot) Front 역량 강화(HTML/CSS/Vue), DB(MySQL) 협업 능력 향상(GitLab, JIRA) - 전공자&비전공자 팀 형성을 통한 자유 주제/기술 프로젝트 진행

인제대학교 (공학인증)컴퓨터공학과 학사 과정

📅 2019. 03 - 2023. 02
- 정시 수석 입학, 총 평균학점 4.14 - AI융합대학 학생회 홍보부 국장 - DB 연구실 랩장, AR프로젝트 및 여행큐레이팅 프로젝트 진행

💼 경력

BNK시스템

BNK시스템

응용 SW 개발📅 2024. 01 - 현재

응용 SW 개발

▪︎ 자동화 프로세스(RPA) 업무 발굴, 일일 공지성 알림 프로세스 개발

▪︎ MariaDB Master/slave 복제 이중화 구성

▪︎ 통합경영관리시스템의 업무보고 미작성알림/미완업무이월/상태관리 Batch 프로세스 개발

▪︎ 부산시 지역특화산업 프로젝트 - 유실물 찾기 서비스 FindingAll 내의 분실자와 습득자 간 채팅 시스템 개발

(주)한국리서치

(주)한국리서치

데이터 파싱 업무📅 2022. 12 - 2023. 01

한국 문화 데이터 유출량 검수 작업 지원

▪︎ 해외 불법 사이트 웹 페이지내 HTML 문서에 대하여 jQuery 기반으로 TAG 분석, 부적절한 불법 컨텐츠 공유량 검수

한국전자통신 연구원(ETRI)

한국전자통신 연구원(ETRI)

2021 동계 연구연수생📅 2022. 01 - 2022.02

개방형 데이터 허브 플랫폼 개발 지원

▪︎ React 기반 UI/UX 추가 화면 개발, 데이터 추가를 위한 모달 구축, 데이터 계층구조에 대한 트리뷰 구현

▪︎ NodeJS 환경의 CRUD API 개발, K6 라이브러리를 통한 부하테스트, Jest 라이브러리를 통한 시나리오 테스트

▪︎ Git(GitLab) 기반의 프로젝트 형상 관리

인제대학교 영재교육원

인제대학교 영재교육원

정보과학 심화/사사반 TA(멘토)📅 2021. 07 - 2021. 12

중학생 대상 프로그래밍 기초 교육 TA

프로그래밍 문법 교육 멘토

  • 프로그래밍 문법 교육(연 70시간) 진행 보조 및 개인 별 멘토링 진행

프로젝트 실습 교육 멘토

  • Java 언어 기반 프로젝트 실습 교육 멘토링 진행

⚙️ Skills

활용능력 수준

🌕: 기본 개념을 토대로 간단한 작업 수행이 가능합니다. 🌕🌕: 문서를 참고하여 기본 문제해결이 가능합니다. 🌕🌕🌕 : 복잡한 기능 구현이 가능합니다. 🌕🌕🌕🌕 : 다른 개발자에게 지식을 공유할 수 있습니다. 🌕🌕🌕🌕🌕 : 새로운 방법론이나 기술을 개발할 수 있습니다.
SpringBoot

SpringBoot

🌕🌕🌕🌗🌑 - REST API 구현 - Junit 기반 TDD - ORM (JPA) -QueryDSL을 통한 동적 쿼리 생성 -Mybatis를 이용한 데이터 처리 - Scheduler 구현 - Filter 및 JWT 이용
Javascript

Javascript

🌕🌕🌑🌑🌑 -Express.js를 이용한 API 구현 - Jest, K6를 통한 테스트
Vue

Vue

🌕🌕🌑🌑🌑 - Vuetify 라이브러리 이용 - Vuex를 통한 데이터 관리
React

React

🌕🌑🌑🌑🌑 - MaterialUI/Bootstrap를 통한 화면 구현 - Redux를 통한 데이터 관리
MariaDB

MariaDB

🌕🌕🌕🌑🌑 - Schema, Table SQL 작성 및 관리 - Master/slave Replication 관리
MySQL

MySQL

🌕🌕🌑🌑🌑 - Schema, Table SQL 작성 및 관리
Redis

Redis

🌕🌕🌑🌑🌑 - Key/Value 기반 데이터 관리 - Set, List 자료형 활용 - AOF 방식의 데이터 백업 관리
AWS

AWS

🌕🌑🌑🌑🌑 - EC2 프로젝트 배포 -S3를 통한 이미지 저장 관리 -AWS MSK를 통한 메시지 큐 이용 -IAM 인증서 발급 및 관리
Docker

Docker

🌕🌕🌑🌑🌑 - 프로젝트 버전 관리 - Docker-Compose를 통한 프로젝트 환경(Java, Database) 관리
Git

Git

🌕🌕🌕🌑🌑 - GitFlow 방식 이용 및 Branch 관리 - Commit Convention(Udacity) 적용 -Git Branch
JIRA

JIRA

🌕🌕🌕🌑🌑 - Agile 방식의 협업 - 이슈 발행 및 스프린트 관리
Kafka

Kafka

🌕🌕🌕🌑🌑 - AWS MSK 클라우드 서비스 활용 - Parition과 Key를 활용한 메시지 순서 보장 -Producer와 Consumer를 통한 비동기 메시지 처리
외부 API 활용

외부 API 활용

🌕🌕🌑🌑🌑 - KakaoMap, ChatGPT, GoogleOAuth, GoogleCalendar, 공공데이터포탈 API ...

💻 프로젝트

Timing

Timing

📅 23.10.10 - 23.11.21
타임랩스 기능 중심 소셜 네트워크 서비스(6인 팀 개발) - 타임랩스가 포함된 피드의 좋아요, 댓글을 통한 심리적 보상 제공 - 피드를 통해 챌린지 이어가기를 통하여 영향력 조회 기능 제공, 이를 통한 성취감 및 참여도, 만족도 향상과 회원 간 연결성 부여
SpringBoot3.2JDK21SpringSecuritySpringdocJPAMariaDBRedisReactELKJenkinsDockerNginxAmazonS3AmazonEC2PythonFastAPI

 

개인 역할

🆅 JDK 21과 SpringBoot 3.2의 적용

▪︎ Java21의 가상스레드의 특징을 활용해 I/O Blocking 상황에서의 성능적 이점을 취하고자 하였습니다.

▪︎JMeter 부하테스트를 통해 임의의 상황을 만들었으며, 평균 응답속도 (3239ms -> 2255ms)의 1.5배 향상을 확인하였습니다.

🆅 AI 서버와의 연동을 위한 Proxy API구현

▪︎ AI기능을 수행하는 별도 서버와의 연계를 위해, Proxy 역할을 하는 API를 구현하였습니다.

▪︎ SpringBoot 6.0 이상에서 도입된 HTTP 클라이언트인 ResctClient 객체를 활용함으로써, 상태 코드에 따른 예외 처리를 간결하게 구현하여 유지보수성을 높이는 데 기여하였습니다.

🆅 AWS S3 서비스 이용

▪︎ 클라우드 서비스를 활용하여 파일 업로드와 저장소 관리의 안정성을 높이고자 사용하였습니다.

🆅 Junit을 통한 TDD

▪︎ H2 데이터베이스를 통해 초기 데이터를 스크립트로 생성하여 테스트 환경을 조성하였습니다.

▪︎ Junit5을 통해 TDD를 진행하였고, 단위 테스트를 통해 개발의 정확성을 취함과 동시에 오류 발생 시 추적에 대한 편리함을 얻었습니다.

이게MO징

이게MO징

📅 23.08.21 - 23.10.06
결함 탐지 Device를 통한 신축 건물 시공 결함 피해 예방 서비스(6인 팀 개발) -신축 건축물의 사전점검/홈 체크 플랫폼 -ROS를 통한 자율주행 디바이스
SpringBoot2.7SpringSecuritySpringfoxJWTJPAMariaDBRedisReactJenkinsDockerNginxPythonROSTensorflow

 

개인 역할

🆅 Spring Security와 JWT기반의 회원 보안

▪︎ 사용자 데이터와 서비스 접근에 대한 보안을 제공하고자 하였습니다.

▪︎ JWT를 활용한 무상태 인증 시스템을 구축하였습니다.

▪︎ JWT의 유효시간과 RefreshToken 발급의 균형점을 고민하였습니다.

▪︎ 사용자의 로그아웃 시 토큰을 무효화하기 위한 BlackList 관리 방법과 Redis를 통한 방법을 검토하였습니다.

🆅 Session, Redis, Naver SMS 인증을 통한 비회원 보안

▪︎ 비회원 사용자에게 일정 수준 이상의 보안 인증 절차를 거치는 것을 목표로 하였습니다.

▪︎ Naver SMS 인증을 통해 비회원 계정의 신뢰성을 보장하였습니다.

▪︎ Redis를 통해 인증 정보를 캐싱하고, TTL 설정을 통해 SMS 인증 유효 기간을 관리하였습니다.

🆅 IoT 기기와 App 간의 Socket 통신 구현

▪︎ 결함 탐지를 수행하는 IoT 시뮬레이터 기기와 실시간 데이터 통신을 목표하였습니다.

▪︎ WebSocket을 통한 양방향 통신을 구현하였으며, Stragety 디자인 패턴을 Socket Handler에 적용하였습니다.

▪︎ 디자인 패턴을 적용함으로써 IoT 기기의 다양한 메시지 종류 처리를 용이하게 하며, 핸들러 간 의존성을 최소화하되 새로운 메시지 타입이 추가되더라도 코드 변경을 최소화하는 확장성을 고려하였습니다.

▪︎ 다양한 메시지 규약에 대해 이해를 명확히 하고자 별도의 다이어그램을 통한 시각화 자료를 공유하여 팀원과 소통하였습니다.

Mirror Me

Mirror Me

📅 23.07.10 - 23.08.18
가족 소통 증진을 위한 AI 탑재 Smart Mirror(6인 팀 개발) - Google Calendar 정보 기반 가족 관련 일정 관리/행동 유도 - 얼굴/표정/음성 인식 기반 사용자와의 상호작용
SpringBoot2.7JPAMariaDBRedisReactFlutterDockernginxAmazonEC2OAuthGCPPythonOpenCVTensorFlowMediaPipeLattePanda

 

개인 역할

🆅 Google OAuth와 Google Calendar 기반 사용자 일정 관리

▪︎ 가족 소통 증진을 위한 방법으로 가족 구성원 간 일정을 공유하고자 하였습니다.

▪︎ Google CAlendar API를 통해 기록된 일정을 연동하며, 이를 위한 Google OAuth 인증과 가입을 도입하였습니다.

🆅 멀티 데이터베이스(MariaDB, Redis) 관리

▪︎ 관계형 데이터로서 일반 데이터인 사용자, 일정 등에 대한 정보는 MariaDB에 저장하였습니다.

▪︎ 빠른 접근이 필요하고 휘발성이 있는 캐시성 데이터인 스마트미러의 출력텍스트, 사용자 토큰정보는 Redis에 저장하여 관리하였습니다.

🆅 ChatGPT 기반 사용자 일정 요약 및 생일선물 추천

▪︎ 사용자의 일정과 데이터를 기반으로 유의미한 정보를 요약하고, 가족 구성원의 생일선물 아이디어를 제공하는 텍스트 추출을 목표로 하였습니다.

▪︎ ChatGPT 요청 시 필요한 Prompt를 설계하여 사용자 데이터 기반으로 GPT로부터 JSON 형식의 응답을 받아 사용자에게 전달할 텍스트를 정제하였습니다.

🆅 Scheduler를 통한 사용자 행동 유도 텍스트 저장

▪︎ 사용자의 특정 행동(가족 약속 이행, 날씨에 따른 준비물 안내, 표정 통계에 따른 대화)을 유도하기 위해 동적 메시지 생성을 목표하였습니다.

▪︎ 매일 아침마다 출력할 메시지를 생성하기 위해 Spring Scheduler를 통한 사용자 데이터 기반 맞춤형 데이터를 정제하였습니다.

▪︎ 사용자의 데이터 가공 및 정제를 위하여 Chain Of Responsibility 디자인 패턴을 적용하여 일련의 작업 수행을 구현하였습니다.

▪︎ 디자인 패턴을 적용함으로써 각 작업 단계가 독립적으로 실행됨으로써 다음 단계에 영향을 주지 않도록 설계하였고, 작업 흐름이 추가되더라도 유연한 확장이 가능하게 하였습니다.

STARTrip

STARTrip

📅 21.12.01 - 22.05.31
공공데이터 기반 여행 추천 플랫폼(5인 팀 개발) - 공공데이터를 활용하여 국내 각지 여행지 정보 수집 - 사용자별 맞춤 여행코스 추천 서비스 목표
SpringBootJPAPostgreSQLMongoDBReactDockerVault

 

개인 역할

📍 SpringBoot기반 REST API구현

AR Dish

AR Dish

📅 21.06.01 - 21.07.31
AR 메뉴판 앱 프로젝트(4인 팀 개발) - 기존 일반 음식점의 평면적인 텍스트 중심 정보의 확장 목표 - 증강현실(AR) 기술을 통해 안드로이드 앱 화면에서 3D음식 콘텐츠를 확인하여 시각적으로 더욱 풍부하고 현실감 있는 정보를 제공하는 UI/UX 구현을 목표
JavascriptReactmongoDBAndroidStudioUnityVuforia

 

개인 역할

📍 Unity 엔진과 Vuforia(SDK)를 이용한 음식 AR 콘텐츠 제작

📍 Node.js 환경의 RESTful API 서버 구축

📍 MongoDB를 통한 음식 데이터 관리

🏆 수상 이력

SSAFY 공통 프로젝트 우수작

📅 2023.08
SAMSUNG 청년 SW아카데미 (SSAFY)SSAFY 9기 교육생 1000여명 대상, 6주간 진행한 팀프로젝트 중 우수 프로젝트로 선발(가족소통 증진을 위한 스마트미러, Mirror Me)

인제스타 장학생 4회 연속 선발

📅 2020-2학기, 2021-1학기, 2021-2학기, 2022-1학기
인제대학교대학교내 비교과 우수 참여자 대상, 학년별 50명을 선발하여 장학금 100만원 수여

💳 기타(자격증, 어학 등)

BackJoon 온라인 저지

📅 2021~2024 현재
랭크 플래티넘➎ (Solved.ac 기준 상위 6%)

SQL개발자(SQLD)

📅 2024. 06. 21
주관기관: 데이터산업진흥원

정보처리기사

📅 2024. 06. 18
주관기관: 한국산업인력공단

OPIC - IM1(Intermediate Mid)

📅 2023. 07. 02
주관기관: ACTFL