Skill Set
Web
Spring and Spring boot | lombok, mybatis, jpa, hibernate |
데이터베이스 연동 프로그램 작성 builder 패턴 적용 및 nativeQuery /JPQL 사용 |
fileupload, mail | 파일 업로더 및 메일전송 기능 사용 | |
rest, swagger |
컨트롤러에서 반환된 객체를 json으로 전송해주는 RestController 사용 및 swagger를 이용한 REST API 테스트 및 문서화 |
|
JSTL, jsp el tag |
Jstl 및 el테그를 활용한 웹 페이지 프로그래밍, 세션에 따른 접근권한 프로그래밍 |
|
Front-End | ajax, javascript, HTML5 and CSS |
DOM객체 생성 및 property 사용 HTML Event Handler 작성 HTML 프로펄티 설정을 이용한 원하는 프론트 기능 구현 LocalStorage 및 SessionStorage를 이용한 데이터 보관 Ajax를 이용한 서버간 비동기/동기 통신 |
Netty | Netty |
WebSocket을 이용한 채팅서버 구현 |
Database
MYSQL and MariaDB |
Sub Query, Inner/Outer Join, groupby등 기본적인 SQL문 사용 |
Stored Procedure, Stored Function작성 | |
ER-D Master를 이용한 설계 및 DDL 출력, mysql dump 및 sql restore. |
Language
Java |
상속, 인터페이스, 어뎁터를 이용한 객체지향 프로그래밍, Collection과 Generic을 이용한 프로그래밍, Stream을 이용한 Lambda 프로그래밍 |
C++ |
상속, 인터페이스, 어뎁터를 이용한 객체지향 프로그래밍, STL을 이용한 자료구조 프로그래밍, 알고리즘 작성 |
C# |
Jdbc를 이용한 mysql DB연동 코드 작성, Lambda를 이용한 Thread 생성 및 로직 작성 |
Javascript |
HTML Event 발생에 따른 Event Driven 방식의 프로그래밍, 댓글 수 세기, 사용자 입력 정보 검증 등 프론트에서 자주 사용되는 함수 작성 |
python | 기초적인 코드 작성, openCV, keras, data visualization관련 예제코드 연습 |
Projects
1. Hot-Think (개발기간 2019-09~2019-12)
프로젝트 소개
Hot-Think는 IT, 마케팅, 디자인등 각 분야의 기획 아이디어를 공유하고, 양질의 아이디어를 구매/판매 할 수 있는 웹서비스 구현을 목표로 한 프로젝트입니다.
프로젝트에 사용된 기술
백엔드 - Swagger, Spring Boot Data, JPA, Hibernate, Spring Security, file upload/download.
프론트 - node.js, react
DB - MariaDB
맡은 역할(백엔드, DB)
백엔드 부분에서 Spring Boot Data, JPA, Hibernate를 이용해 게시판을 중점적으로 게시글, 좋아요, 페이징, 팔로우, 스크랩등의 기능을 구현하였습니다. 이때 Model을 Entity로 변환하는 과정에서 ModelMapper를 사용하였으며, 게시판 서비스는 Generic을 이용해 3개의 컨트롤러가 하나의 서비스를 사용할 수 있도록 작성하였습니다. 그리고 작성된 Rest API를 테스트하고 관리하기 위해 Swagger를 사용하였습니다. 또한 게시판에서 파일 및 이미지를 업로드 하기 위해 필요한 파일 업로드/다운로드 기능을 구현하였습니다. 마지막으로, 컨틀롤러 및 서비스단에서 발생하는 예외를 처리해주기 위해 @ControllerAdvice 어노테이션을 이용한 에러 핸들러를 작성하였습니다.
DB부분에서 DDL설계 및 카테고리 별로 게시판의 시퀀스 번호를 가져오는 스토어드 함수를 작성하였습니다.
소스코드(GIT 저장소)
2. 물건을 찾아줘 (개발기간 2019-05~08)
프로젝트 소개
교내 및 학교 주변에서 물건을 잃어버리거나 타인의 물건을 줍는 등 분실물이 발생했을 경우, 학생들은 보통 학생 커뮤니티에 분실했다는 글을 올리고 있었습니다. 그리고 많은 분실물들이 건물 관리실에 보관되어있었지만 경비실 직원분은 경비실 지침대로 업무를 보고 있어서 소통에 어려움이 있음을 알게되었습니다. 이를 해결하기 위해 프로젝트를 기획하였습니다. 프로젝트의 목적은 분실물이 생겼을 경우 분실한 사람과 찾은 사람간의 효율적인 소통을 돕고, 추가적으로 분실물을 임시로 관리하는 경비실 담당자분이 보다 편리하게 업무처리를 할 수 있도록 돕는 것입니다.
기대 효과
이 프로젝트의 결과물로 물건을 분실했거나 분실물을 취득한 사람들 사이의 소통이 이전보다 더욱 원할해지고, 분실물의 관리가 보다 편리해지는 것을 통해 최종적으로 분실물 관리의 번거로움을 줄일 수 있도록 합니다.
프로젝트에 사용된 기술
백엔드 - Spring, MyBatis, file upload/download.
프론트 - Javascript
DB - Mysql
맡은 역할(프론트, 백엔드, DB)
프로젝트의 메인, 게시판, 회원가입, 분실물 관리기능을 중점적으로 맡아서 프로젝트를 진행하였으며, DB설계를 했습니다. 서버 파트의 DAO에서 Mybatis를 이용해 MYSQL과 통신하였으며, 프론트 파트에서 javascript를 이용해 댓글 수 제한, AJAX 비동기 통신 및 비밀번호 중복 확인등의 기능을 구현하였습니다.
소스코드(GIT 저장소)
3. 스마트 홈 IOT (개발기간 2017-09~12)
프로젝트 소개
집에 아무도 없을 때, 가스벨브가 열려있는지? 집에 창문이 열려있는지? 자동차가 주차장에 잘 주차되어있는지? IOT기술로 이런 불편함을 해소하고자 프로젝트를 기획하였습니다. 주로 주택이 있는 나이가 많으신 분들의 수요가 있을것이라 생각하여, 앱스토어에서 어플을 다운로드해야하는 불편함이 있는 안드로이드 대신 웹을 이용하였습니다.
기대 효과
사용자들은 웹을 이용하여 실생활에 필요한 정보를 저장하거나 IOT를 활용하여 가정의 전자기기들을 효율적으로 제어& 관리할 수 있습니다. 이를 통해 나이가 많으신 분들이 집이 아닌 다른 곳에서도 집에 문제가 없는지 있는지 알 수 있어 보다 안심하고 생활할 수 있도록 돕습니다.
프로젝트에 사용된 기술
웹 - Apache Tomcat, JSP, CSS, HTML
DB - Mysql
통신 - C#
IOT - Arduino
맡은 역할(웹, DB, 통신)
프로젝트에서 Arduino와 C#간 블루투스 통신 및 JSP를 이용한 웹사이트 제작, MYSQL을 이용한 DB 입출력을 맡았습니다. queue를 만들어 아두이노에서 전송된 값을 대기열에 넣고 변동사항이 있는 경우 MYSQL에 입력하는 프로그램을 제작했습니다. 첫 프로젝트여서 서툴고 아쉬운점이 많았지만, 프로그램이 완성된 것을 보며 보람찼습니다.
소스코드(GIT 저장소)
4. 유전자 만들기 (개발기간 2018-05~10)
프로젝트 소개
인공지능 과목을 공부하던 중 ‘배운 이론을 실제로 적용해보면 어떨까?‘라는 생각을 하게되었고, 수업중 가장 흥미로웠던 유전 알고리즘을 게임 ‘테트리스’에 적용하였습니다.
테트리스 게임에서 한 행을 모두 채우면 그 행은 삭제되는 규칙을 이용해 컴퓨터가 그 특성(각 열마다 쌓인 블록의 개수, 블록 사이에 존재하는 빈 공간 개수)을 찾아 자신의 판단 알고리즘을 이용해 스스로 게임을 하는 프로그램입니다. 이 판단의 메커니즘을 진화시키기 위해 유전 알고리즘을 사용했습니다. 재생산, 교차, 돌연변이 연산을 통해 다음 블록을 위치시킬 판단을 하는데 사용되는 가중치를 스스로 개선해나가도록 하는 프로젝트입니다.
프로젝트에 사용된 기술
PC App - C#
맡은 역할(PC App)
개발 전반을 담당하였습니다. 프로젝트에서 C#과 Winform 및 GDI를 이용해 벽돌이미지를 화면에 그려주는 클래스, 벽돌의 모양을 생성해주는 클래스, 벽돌의 위치를 배열로 갖고있는 클래스, 벽돌을 배치했을때 다음 벽돌의 위치를 판단하는 클래스, 판단에 필요한 가중치를 파일로 저장하고 유전학습을 해주는 클래스를 제작했습니다. 처음 개발당시 GDI가 화면에 너무 많은 그래픽을 그려서 벽돌의 위치가 변할때만 렌더링 하도록 수정하였습니다.
소스코드 (GIT 저장소)