[보유 역량 요약]
Basic Competencies
● 개인 프로젝트 와 협업에 대한 경험 , 다양한 문화권 사람들과의 다수 프로젝트 수행 경험
● 영어 커뮤니케이션 가능
● 복잡한 알고리즘 & 복잡한 기능에 대한 구현을 수행해 본 경험이 있음
Backend Engineering
● Express framework, Query 기반으로 간단한 Backend API 서버 자체 개발 가능
● SQL Server Data Tool 사용해서 각기 다른 형태의 데이터 .csv 파일을 관계형 데이터에 맞게끔 설정
● Python Flask 프레임워크를 사용해서 빠르게 웹사이트 구축
● JAVA 기반 Spring Framework 통해서 사이드 프로젝트를 진행해 본 경험이 있음
Software Development
● Junit 이용한 테스트 수행 경험
● TestContainers를 통한 통합 테스트 환경 구성 및 수행 경험
● Express Swagger 를 이용한 API 문서화 경험
Data Sciences Engineering
● 절차 식 데이터베이스를 통해서 코로나 바이러스에 관한 데이터를 가지고 어떤 데이터가 코로나 바이러스 영향을 끼쳤는지 확인하는 프로젝트를 진행.
● 파이썬을 활용해서 비 관계형 데이터베이스 와 연동시켜, 데이터 끼리 의 상호 관계가 존재하는 식별 & 데이터 분석.
[Experiences]
개인 프로젝트 Short Term ( 21.03.01 ~ 21.06.30 )
[객체지향 프로젝트 : 주식시장 개발]
구축 환경
Java JDK 1.8, MySQL
맡은 일
학교에서 제공된 자료를 통해서 주식시장에 필요한 기능을 분석 하고 분석한 자료를 바탕으로 기능을 구축했습니다. 하나의 기능을 구축할 때 마다 단위 테스트를 진행했습니다.
활동 내용
이 프로젝트는 Java, Junit, 알고리즘, 데이터베이스를 활용하여 주식시장 기능을 구현하는 과제로, 혼자 진행했으며 기능 개발과 단위 테스트를 중점적으로 다뤘습니다.
먼저, Java를 이용하여 프로젝트를 구현했기 때문에 객체지향 프로그래밍의 원칙을 적용하고, 클래스와 메서드를 효율적으로 설계했습니다. 주식시장의 다양한 기능을 구현하기 위해서는 각 기능을 모듈화하고 상호작용할 수 있도록 코드 를 구성하는 것이 중요한 요소였습니다.
CRUD (Create, Read, Update, Delete) 기능은 데이터의 생성, 조회, 수정, 삭제를 다루는 핵심 요소입니다. 이를 구현함으로써 주식 거래 및 관련 데이터를 관리할 수 있게 됐고, 데이터베이스를 사용하여 데이터를 영구적으로 저장하고 관리하는 부분도 중요한 역할을 하였습니다.
또한, 단위 테스트를 구현하는 것 역시 프로젝트의 핵심 중 하나였습니다. Junit과 같은 테스트 프레임워크를 활용하여 각각의 기능이 예상대로 작동하는지 확인하고 버그를 미리 발견하는 데 도움을 주었습니다. 단위 테스트를 통해 코드의 신뢰성과 안정성을 높이는 데 기여했습니다.
이 프로젝트를 통해, Java 프로그래밍 능력뿐만 아니라 소프트웨어 개발 프로세스와 테스트의 중요성을 배웠습니다. 또한, 주식시장과 관련된 도메인 지식도 습득하며 현실적인 문제를 해결하는 데 어떻게 프로그래밍을 활용할 수 있는지 경험했습니다.
조별 프로젝트 Short Term ( 21.09.01 ~ 21.10.30 )
[클라우드 API를 활용한 어플리케이션 제작]
구축 환경
Express.js, Node.js, JavaScript, AWS
구성 인원
2명
맡은 일
AWS를 활용하여 사용자 트래픽을 분석하고 현재 웹사이트에서 가장 크게 발생되는 트래픽을 잡기 위한 어플리케이션을 개발을 맡아서 진행함.
활동내용
프로젝트를 진행하는 동안 AWS API를 활용 했으며, 웹 어플리케이션 안에 많은 양의 트래픽이 발생할 경우 또는 많은 양의 트래픽이 발생할 것을 대비해서 AWS API를 통해서 트래픽을 처리하는 과정을 배웠습니다. 여기서 사용된 기술은 AWS S3 를 사용했으며, 데이터베이스와 S3 를 함께 사용하면서 S3 안에는 비정형데이터 (이미지, 로그파일, 비디오)를 담고 데이터베이스는 구조화된 데이터 (사용자 정보, 주문데이터) 등을 담아서 효과적으로 분류했습니다.
조별 프로젝트 / Short Term (22.07.10 ~ 22.08.10) [운영 체제 과제]
[자동차 주차 자동화 시스템 시뮬레이션 프로젝트]
구축 환경
C 언어 / Unix
구성 인원
총 4명 , 프로젝트 매니저 1명 & 프로그래머 3명 구성
맡은 일
개발자로서, 시뮬레이터 와 매니저 파일의 관련된 기능 구축 & 알고리즘 설계
사용된 기술
다양한 알고리즘으로 데이터를 삽입 & 삭제 & 추가 & 검색
GCC 명령어를 이용한 실행 파일 생성
MISRA 규칙을 통해서 소스 코드 구축
운영체제 프로세스 와 스레드 / 멀티 스레드 관한 지식을 활용해서 서비스 구현
활동내용:
시스템 프로그래밍 수업에서 배운 기술들을 활용하여 하나의 프로그램으로 3개의 프로세스를 생성하는 과제에 대한 수정 제안입니다. 이 프로그램은 3개의 서로 다른 시스템을 관리하는데 사용됩니다. 추가로 제한된 메모리 로직을 사용하며, 화재 경보 시스템은 24시간 작동해야하고 서버 다운 상태에서도 작동할 수 있는 단독 구조여야 합니다.
프로젝트를 진행하는 동안 알고리즘, 시스템 설계, 멀티스레드 로직을 만드는데 시간이 크게 소요되었습니다. 특히 멀티스레드 로직을 개발 중 교착상태와 성능 저하 문제에 대한 심층적인 연구를 진행하였습니다. 이 프로젝트는 4명의 프로그래머가 참여한 학교 프로젝트 중 가장 많은 참여가 있었으며, 그만큼 팀원들의 능력과 커뮤니케이션 역시 중요한 역할을 하였습니다.
가장 기억에 남는 부분은 프로젝트 설계 단계에서 "한 사람당 하나의 프로젝트 시스템을 구현한 후에 이를 통합하자"는 의견이 모여 실제로 구현해 보니, 각 팀원이 고유한 알고리즘을 사용하고 코드 통합이 어려웠던 경험이었습니다. 이에 따라 프로젝트 매니저를 선출하여 진행 상황을 모니터링하고 프로젝트 진행 중 발생하는 에러와 알고리즘을 효율적으로 관리하는 역할을 부여하였습니다. 이러한 노력 끝에 프로젝트는 성공적으로 완료되어 A+라는 높은 평가를 받았습니다.
조별 프로젝트 / Long Term (22.04.02 ~ 22.11.20) [캡스톤 프로젝트]
대학교에서 배운 내용을 바탕으로 기업 & 소상공인들 위해 학생들의 전문 IT 지식을 무료로 제공해주는 프로젝트를 진행했습니다.
구축 환경
CMS, Apache
협업 툴
To-Do [Trello]
Discord
맡은 일
[ Developer, Technical Writer]
고객이 원하는 기능이 무엇인지 식별하고, 그것을 바탕으로 원하는 기능을 설계
프로젝트 매니저 와 의 원활한 의사소통 과 팀원들간의 협업 과 원활한 프로젝트 진행 능력
서버 배포 경험을 함
SI 에서 하는 절차대로 프로젝트를 진행해 보았으며, 고객 응대 능력 과 고객의 원하는 아이디어를 컴퓨터로 구현해본 경험을 함.
활동 내용:
구축환경은 CMS와 아파치로 설정되어 있으며, 프론트엔드 개발은 HTML과 CSS로 구성되어 있습니다. 백엔드 개발은 설계단계에서는 구현 하기로 되어있었지만 개발단계에서 구현하지 않도록 결정했습니다 . 프로젝트의 초기 목표는 고객 관리 웹사이트를 구축하는 것이었으나, 고객의 요구사항 중 간단한 유지보수와 웹사이트 관리를 중점으로 변경되어 정적 웹사이트로 재설계되었습니다.
프로젝트를 주도하면서 제 역할은 고객이 원하는 기능을 식별하고, 이를 기반으로 기능을 설계하는 것이었습니다. 설계 단계에서는 에자일 방법론을 채택하여 주기적인 미팅을 통해 고객의 요구 사항을 계속 반영하고 프로젝트를 조정했습니다. 또한, 이 프로젝트는 두 개의 과목을 대체하는 과정 중 하나로 진행되었으며, 수상 내역 대신 학점으로 인정되었습니다
사이드 프로젝트 Long Terms (2023 12.03 ~ 2024.3.20)
Java 와 Spring 을 통한 프로야구 커뮤니티 제작 중입니다. 실시간 채팅 기능 & 실시간 확률 예측을 탑재한 커뮤니티를 제작중이며, 현재는 로그인 관리 시스템 게시판 기능 까지 구현이 되어있으며 팀 및 선수에 대한 프로필 페이지 통계 기록을 제작 중입니다. 혼자 개발을 맡아서 진행중이며, 프로야구가 시작하기 전에 배포 해볼 계획입니다.
구축환경
JAVA 11 , Spring boot 2.2.1 ,H2,
백엔드 개발
Spring Boot 및 Spring MVC와 빠른 개발과 모듈화된 구조를 위해 Spring Boot를 사용하고, Spring MVC로 웹 애플리케이션을 구현했으며, 로그인 기능은 Spring Security 활용해서 로그인 및 권한 관리를 도입했습니다. 클라이언트와의 효율적인 데이터 통신을 위해 RESTful API를 구현하여 데이터를 주고 받고 있습니다. 데이터베이스는 H2 기반으로 구현 되어있으며, ORM 기술을 통해 데이터베이스와 자바 객체 간의 매핑을 간편하게 처리했습니다.
프론트엔드 개발
Thymeleaf를 활용하여 서버 사이드 렌더링 또는 React를 이용하여 클라이언트 사이드 렌더링을 구현했으며, 유저들의 편하게 볼 수 있는 UI / UX를 편하게 만들기위해서 노력을 많이 기울였습니다.
실시간 기능 구현:
아직 구현 단계로서 WebSocket 기술을 도입하여 양방향 통신을 구현할 계획이며, 현재 WebSocket 까지는 구현 되어있지만, 적용 해 놓지는 않았습니다.
배포 및 운영:
Docker 및 Docker Compose 활용: 환경의 일관성을 유지하고 배포 과정을 단순화하기 위해 Docker를 사용할 계획이며, 유튜브 또는 동영상 등을 AWS 에 보관해서 사용해 볼 계획입니다.
지속적인 통합/배포 (CI/CD):
Jenkins, GitLab CI/CD 등 활용을 활용해서 코드 변경 사항을 지속적으로 통합하고 배포하는 자동화 프로세스를 구축할 계획입니다.
최종 학력
Queensland University of Technology
전공: 컴퓨터 공학과
- 학점: 94
- 과목 수: 18
- 평균 학점: 3.34 / 4.5
부전공: 데이터 사이언스 학과
- 학점: 18
- 과목 수: 4
- 평균 학점: 2.89 / 4.5
전체 학위 정보
- 전체 학점: 120
- 전체 과목 수: 24
- 전체 평균 학점: 3.21 / 4.5
자격증
CCNA
취득일: 2016.4.2
NO. CSCO12964107