미리보기
기본 정보
호기심 많고 문제 해결에 열정적인 백엔드 개발자입니다. 철학 전공을 통해 논리적 사고와 문제 해결 능력을 길렀으며, 이를 소프트웨어 개발에 적용하여 복잡한 문제를 체계적으로 해결해왔습니다. 특히, 다양한 기술 스택을 활용하여 사용자 친화적인 웹 애플리케이션을 개발하는 데 주력하고 있습니다. 혁신적이고 효율적인 솔루션을 제공하는 개발자로 성장하고자 합니다. [과거의 경험을 활용한 프로젝트 리더] - 이전에 매니저로 일하며 관리와 비즈니스 로직에 익숙합니다. - 전체적인 비즈니스 로직 분석과 워크플로우 정리, 그에 따른 일정 산출에 능숙합니다. - 실제 개발 업무를 진행하며 고객과 소통하며 일정 조정을 하고, 개발 일정 조정 경험이 있습니다. [코드 리뷰와 테스트코드를 위한 안정화] - 실제 개발된 코드를 더미데이터와 테스트 코드를 통해 실제 서비스 구현합니다. - 코드 실행 이전 테스트 계획을 세워 테스트를 진행하는 것에 익숙합니다. - 실제 서비스 진행 중에 발생하는 문제도 원인을 분석하여 테스트환경에서 재현하여 오류를 처리하는 것에 익숙합니다.
기술 스택
경력
주식회사에너틱스
사원 • 개발2팀
- LabView를 사용한 빌딩 자동제어 프로그램 설계 및 제작
- 기존 현장에 설치되어 있는 프로그램에 대한 유지 보수 및 개선 작업
- LS산전 PLC 와의 통신 설계 및 개선 및 센서류의 통신 모듈 개발
- 관제 프로그램과의 통신 모듈 개발
(1년 2개월 | 정규직)
주식회사 죽정홀
매니저 • 영업팀
버거킹 매장 관리직
- 매장 운영 관리
- 직원 교육 및 관리
- 고객 서비스 관리
- 재고 관리 및 주문
- 매출 분석 및 보고
- 위생 및 안전 관리
- 프로모션 및 마케팅 실행
(1년 4개월 | 정규직)
프로젝트
MBC컴퓨터아카데미
GTT 게임 종합 커뮤니티
프로젝트 개요
Spring Boot와 React에 대해 학습하기 위한 프로젝트입니다.
게임 종합 커뮤니티 사이트를 만들려고 하였으며, 다양한 게임보다는 현재 저희 팀원들이 가장 흥미를 가졌던 리그 오브 레전드에 대한 정보와 자료 공유 사이트를 만들었습니다.
📅개발 기간
24.04.08~ 24.05.23 (약 4주)
주요 기능
게임 정보 확인 : 라이엇 코리아에서 제공하는 리그오브 레전드 인게임 정보를 사이트 내에서 확인 가능합니다.
선수 확인 : LCK에서 활동한 선수들의 프로필을 확인할 수 있습니다.
회원 가입 및 로그인 : 스프링 시큐리티와 카카오 Oauth2인증을 통한 소셜 로그인 기능이 구현되어 있습니다.
실시간 채팅 : SockJs와 Stomp, WebSocket 기반의 실시간 채팅을 구현하였습니다.
선수 정보 및 경기 정보 : LeaguePedia라는 해외의 위키 사이트의 API를 통해 선수 정보 및 경기 정보를 업데이트 할 수 있습니다.
주요 역할
프로젝트 팀의 팀장으로써 전반적인 프로그램 개발에 관여하였습니다.
스프링 시큐리티6 도입 및 소셜 로그인 기능 구현을 통해 RestAPI에 대해서 명확하게 이해하고, 이를 기반으로 스프링부트 백엔드 서버와 리액트 서버간의 API 설계를 하였습니다.
Oauth2 인증을 위한 API 설계를 기반으로 라이엇 코리아에서 제공하는 API를 분석하고, 필요한 정보들을 스크랩하여 분류함으로써 챔피언 및 아이템 정보를 보다 쉽게 검색하도록 하였습니다.
전체적인 ERD를 그림으로써 프로젝트에 필요한 데이터들을 명확히 구분하고, 작업 영역을 나눠줌으로써 전체적인 프로그램의 역할에 대해 이해하였습니다.
Spring-data JPA를 통해 백엔드 서버의 데이터를 구성하였고, LeaguePedia의 데이터를 가져 오기 위해 Python 스크립트를 작성하였습니다. 이에 파이썬에서 바로 스프링부트 서버에서 사용하는 데이터베이스에 데이터를 입력하기 위해 JPA와 동일한 방식을 구현하기 위해 SQLAlchemy를 활용하였습니다. SQLAlchemy의 ORM 객체 생성으로 가져온 데이터를 프로젝트에 맞게 가공하여 즉시 활용하였습니다.
해당 스크립트를 메서드화 하여 Flask서버의 RestAPI로 작성할 계획입니다.
OpenAI를 활용한 승부 예측
실시간 데이터 크롤링 및 동기화(LeaguePedia, Flask 이용)
Skils
Front-end : React, recoil, quillJS, Stomp, SockJS
Back-end : SpringBoot, JPA, MariaDB, Flask, SQLAlchemy, WebSocket, Sock-JS
MBC컴퓨터아카데미
영화 정보 리뷰 사이트
프로젝트 개요
Spring MVC에 대해 학습하기 위한 프로젝트입니다.
영화 리뷰 사이트입니다. 영화에 대해 댓글을 등록하고 평점을 매길 수 있는 시스템을 구축하였습니다. 관리자 계정으로 회원정보 관리가 가능하며, 영화와 배우, 감독의 정보를 등록하고 수정 삭제가 가능합니다. 영화정보 등록시에는 유튜브 링크를 통해 쿠키영상을 등록 할 수 있습니다. 이미지 정보는 캐러셀을 통해서 등록이 가능합니다.
📅개발 기간
24.03.18 ~ 24.04.03 (약 4주)
주요 기능
회원 관리 : 관리자 계정 로그인시 회원 관리를 할 수 있습니다.
영화 리뷰 등록 : 회원가입 후 영화정보에 대해 리뷰를 남길 수 있습니다.
영화, 배우, 감독 정보 관리 : 관리자가 지정한 매니저 혹은 관리자가 직접 영화, 배우, 감독에 대한 정보를 관리할 수 있습니다.
주요 역할
프로젝트 팀의 팀장으로써 전반적인 프로그램 개발에 관여하였습니다.
스프링 시큐리티 도입으로 csrf토큰과 SQL인젝션의 방지에 대해 심도 깊게 학습하였습니다.
기본적인 CRUD 로직과 동시에 Mybatis를 사용하여 SQL 코드 작성과 엔티티간의 연관 관계에 대해서 이해하였습니다.
전체적인 ERD를 그림으로써 프로젝트에 필요한 데이터들을 명확히 구분하고, 작업 영역을 나눠줌으로써 전체적인 프로그램의 역할에 대해 이해하였습니다.
MBC컴퓨터아카데미
샌드위치 온라인 주문 사이트
🌟프로젝트 개요
JSP와 Spring에 대해 학습하기 위한 프로젝트입니다.
웹페이지가 어떻게 구성되어 있는지, 자바 어플리케이션이 어떻게 웹 페이지 렌더링을 하는지에 대해 면밀하게 알 수 있었습니다.
샌드위치 음식 주문 프로젝트로, 재고 관리 주문 기능 등을 구현하였습니다.
📅개발 기간
24.02.16 ~ 24.02.23 (약 2주)
주요 기능
재고 관리: 관리자 계정 로그인 시 재고 관리를 할 수 있습니다.
주문하기: 재료를 선택해 주문 할 수 있습니다.
파악한 문제
재료의 버튼을 선택할 경우 페이지가 리프레쉬 되면서 페이지가 새로 렌더링이 됩니다
렌더링이 될 경우 아래 선택된 재료들을 보환하고 있어야할 목록이 채워지지 않습니다
재료를 추가하고 요청할 때 마다 해당 데이터를 보관하고 있는 객체를 구현해야 하는데 현재로써는 쿠키나 로컬스토리지를 사용하는 방법을 생각 중입니다
혹은 DB에 임시 주문테이블을 생성하여 작성하는 방안도 생각중이었으나 비회원 주문 처리의 경우 문제의 여지가 있을 것 같아 방법을 고민중입니다.
에너틱스
진안 국민체육센터 수영장 제어 프로그램
전체 수영장 제어 프로그램 제작
메인 제어 프로그램, 공조기 제어 프로그램 설계 및 프로그램간 설정 동기화 작업
설정 동기화 로직의 최적화 및 중간 임시 저장소 설정으로 동기화 시행 시간 최적화(700ms->200ms)
네트워크 오류에 따른 통신 유실 상황 발생시 센서 데이터가 0으로 나타나는 문제
직전 수치 값을 메모리에 기록해 두었다가 센서 값이 정상적으로 통신되는 것을 확인 후에 메모리 상의 수치 갱신
급격한 센서값 변동으로 인한 오작동 상황 발생 예방
특정 주기 (200ms)마다 통신 체크를 함으로써 프로그램 신뢰도 향상
네트워크 유실이 지속될 경우 모니터링 시스템 구축 및 재실행 스크립트 작성
에너틱스
강릉 원주대 공조기 제어 프로그램 개발
PLC의 modbusTCP 프로토콜을 활용한 타 응용프로그램과의 API 설계
서로 상이한 프로그램 언어 간 통신을 위한 통신 프로토콜 작성
전체 관제 프로그램에서 현장 프로그램으로의 조작권한 이동에 따라 상이한 설정값을 보존하고 제어권한자에 따라 설정값이 변경되도록 이원화 로직 작성
설정값 변경에 따른 급격한 장비 제어를 막기 위한 알고리즘 추가
제어 로직 설계 및 UI 제작
시설 내 온습도 센서 데이터를 통해 설정값에 가장 근접한 온습도를 유지하기 위한 PID 제어 로직 구현.
데이터 로깅 설계
온습도 데이터를 기록하여 추후 알고리즘 개선 작업 및 오차값 보정 로직 추가
예상치 못한 시스템 오류로 프로그램 종료 시 프로그램 재 실행 스크립트 작성
윈도우 이벤트 감지 스크립트 작성
에너틱스
구례 수영장 자동제어 프로그램 수정 및 개선
기존 32bit 프로그램에서 64bit 프로그램으로 마이그레이션 작업
데이터 기록시 기록된 파일을 읽어오는 과정에서 발생하는 오버헤드로 인해 메모리 누수 발생
32bit 버전에서는 2GB제한으로 프로그램이 중지되며 장비 제어가 안되는 문제점 발견
64bit 버전으로 마이그레이션 이후 메모리 부족으로 인한 프로그램 중지 방지
메모리 관리의 효율화
wait 함수에서 시간 비교 함수로 로직 개선
기존 wait 함수 사용으로 인한 PLC 통신 로직의 지연 시간이 600ms 로 측정됨
wait 함수 대신 멀티스레딩 구조로 타임 로직 비교 시 시간 비교와 통신로직이 병렬로 처리, 입력된 지연시간 이후 통신까지 걸리는 시간 100ms로 감소
멀티코어 활용을 위한 상태 머신 구조로 변경
flag를 통한 상태 감지 및 에러 신호 감지시 에러 로그 작성 로직 설계 및 메인 관제 프로그램과의 통신으로 모바일 알람이 울리도록 모듈 설계
공조기 제어 로직 모듈화 및 모듈 반영
에너틱스
보성 차 연구센터 온실 제어 프로그램 개발
- 신규 현장 프로그램 개발
- 시간과 온도에 따른 장비 제어
- 장비 가동에 따라 자동 캘리브레이션 로직 작성
- 특정 시간에 캘리브레이션 진행하도록 설계
- 상태 머신 구조 도입
- 최대 가동 시간 - 최초 가동시간 감지 및 차이 계산으로 개폐 시간 감지 및 기록 후 이에 맞춰 가동하도록 설계
- 이와 더불어 온실 내 온도에 맞춰 추가적으로 가동할 수 있도록 로직 설계
- %계산으로 사용자에게 대략적인 가동율 표기
- 오동작시 다시 캘리브레이션 진행 로직 작성
에너틱스
화순 춘양면 목욕탕 자동 제어 프로그램
- 미쓰비시 PLC로 작성되어 있는 프로그램을 LabView 프로그램으로 이식
- 기존 시스템을 유지하며 제어하는 프로그램을 개발
- 현장에서 사용하던 주소 맵을 가져와 스케쥴에 따라 운영하는 로직 설계
- 기존 타이머 방식에서 벗어나 시스템 시간 분석 모듈 작성
- 메모리 절약 및 시간 오차율 저하 (300mb -> 230mb 70mb 절약)
- 기존 시스템에서 1분가량의 오차를 3초 내외로 조정
- 메모리 맵 작성 및 운영 로직 모듈화
에너틱스
공조기 자동 제어 프로그램 개발 및 특허 인증 시뮬레이션 프로그램 개발
담양 담빛 수영장 공조기 제어 시스템 재설계 및 이를 기반으로하는 특허 인증 프로그램 개발
스케쥴에 따라 공조기 운전방식 변경 및 raw 데이터 추출 및 저장하여 인증을 위한 데이터 제공
공조기에 내장되어있는 센서 데이터를 기반으로 팬, 댐퍼, 펌프 및 컴프레셔 제어 로직 작성
PID 로직 설계 및 온도에 따른 댐퍼 개도율 자동 계산 로직 설계
전력량계 및 열량계 센서 실치, 해당 모듈과의 통신 로직 설계
메모리 맵을 별개 모듈로 분리하여 프로그램 실행 시 자동으로 분석하여 기록하도록 설계
프로그램 개발 속도 단축 (기존 작성 방식 : 3일 -> 2시간)
PLC 래더 프로그램 작성팀과 협업과정에서 보다 원할한 소통 용이
포트폴리오
URL
첨부파일
자기소개
철학을 전공하면서 논리적으로 대화를 정리하고 설계하는 훈련을 대학생활 내내 지속적으로 받아왔습니다. 또한 아르바 이트를 하며 관리자 직급까지 진급하여 실제 실무에 필요한 것이 무엇인지, 다른 사람과 소통하고 필요한 것에 대해서 이 야기 나누는 것이 무엇보다 중요하다는 것을 인식하였습니다.
제가 근무했던 에너틱스라는 회사에서는 실제 현장에 들어갈 제어반을 제작하고 전체 공조 시스템을 제어하는 회사로서 , PLC 및 판넬 제작팀과 소프트웨어 개발팀이 면밀히 협조해야 하나의 프로젝트가 마무리되는 구조였습니다. 따라서 PC 와 PLC 간의 통신을 위해 지속적으로 의견을 나누고 실제로 그것을 구현하고 테스트해 보는 것이 실제 진행했던 업무입 니다. 프로그램의 구조와 네트워크 통신 계층에 대해 이해하고, modbusTCP, UDP 통신 및 Ethernet TCP 통신과 ser ial 통신 등 다양한 통신 방법을 통해 데이터를 수집해야 했습니다.
또한 데이터를 DB에 저장한 뒤 해당 데이터들을 통해 실제 공조 시스템을 제어하는 알고리즘을 설계, 구현함으로써 보다 효율적이고 사용자 친화적인 프로그램을 개발하는 것 에 관심을 가지게 되었습니다. 프로젝트를 진행하면서 최종 사용자가 실제 프로그램을 조작하며 환경을 컨트롤하는 점에 대해 원격으로 지원하며, 실제 사용자가 원하는 내용을 정리하고 이해하는 것이 중요하다는 것을 느꼈습니다.
개발자의 입장에서 최종 사용자의 입장을 고려하여 보다 사용자 친화적인 UI를 개발해야 한다는 점을 깨달았습니다. 이 과정에서 저는 LabView를 주로 사용했으나, 몇 가지 한계를 느꼈습니다. 더 복잡한 기능 구현과 다양한 프로젝트 요 구 사항을 충족하기 위해 추가적으로 다른 언어를 공부해야 한다는 필요성을 느꼈습니다.
그래서 React와 JAVA와 같은 프로그래밍 언어를 학습하게 되었습니다. 학원을 다니며 기존 프로젝트에서 단독으로 또는 사수와 함께 진행했던 프로젝트를 보다 더 많은 인원과 협업하여 진행할 수 있는 능력을 기르게 되었습니다. 이를 통해 프로그래밍에 대한 자신감이 붙었고, 다른 언어에 대해 이해하고 사용하는 데 있어 더욱 능숙해졌습니다. React와 JAVA를 활용한 프로젝트를 진행하면서, 다양한 언어의 특성과 장단점을 파악하게 되었고, 이를 통해 프로젝트 의 효율성과 완성도를 높일 수 있었습니다. 이러한 경험을 통해 얻은 자신감과 능력을 바탕으로 앞으로도 다양한 프로그 래밍 언어를 학습하고, 이를 활용해 보다 혁신적이고 사용자 친화적인 솔루션을 개발하고자 합니다.
교육
MBC컴퓨터아카데미
사설 교육 | AWS클라우드기반 CS개발자(자바,파이썬,C언어)양성
2023.11. ~ 2024.05.
졸업
전남대학교
대학교(학사) | 철학과
2013.02. ~ 2021.08.
졸업
자격증
컴퓨터활용능력
1 | 대한상공회의소
2022.04.
컴퓨터활용능력
2 | 대한상공회의소
2005.03.
워드프로세서
2 | 대한상공회의소
2004.03.
워드프로세서
3 | 대한상공회의소
2003.03.