웹 풀스택 개발자
이동하의 포트폴리오

안녕하세요! 저는 열정적인 개발자 이동하입니다.
다양한 프로젝트를 경험하면서 문제를 해결하는 것에 큰 즐거움을 느끼고, 새로운 기술에 도전하는 것을 즐깁니다.
주로 자바 스프링을 기반으로 웹 개발 및 애플리케이션 구축에 관심을 가지고 있으며,
함께 일하며 팀의 목표를 달성하는 데 기여하고, 항상 배우고 성장하기 위해 노력하고 있습니다.
INTRODUCTION
PROFILE
이름
이동하
생년월일
1994.05.03
주소지
대구광역시 북구
연락처
010-2689-6940
이메일
siganshoyou@gmail.com
최종 학력
서울시립대
EDUCATION & ACHIEVEMENT
EXPERIENCE
2022.07.06 ~ 2023.06.30
삼성 청년 SW 아카데미(SSAFY) 8기 교육생 수료
2022.11.25
SSAFY 1학기 프로젝트 최우수상
백엔드 RestAPI서버 및 VUE/CLI를 활용한 프론트 구축 (삼성전자)
2022.11.25
SSAFY 1학기 성적우수상
1학기 코딩 집중과정 종합성적 구미5반 3등 (삼성전자)
2023.02.17
SSAFY 공통프로젝트 우수상
메인서비스 클라이언트 개발 및 로그인 API, WEBSOCKET 개발 (삼성전자)
2023.05.26
SSAFY 자율프로젝트 우수상
Unity와 META QUEST를 활용한 메타버스 구축, JENKINS와 NGINX를 활용한 자동배포 (삼성전자)
CERTIFICATION
CERTIFICATION
정보처리기사
2021.11.26
21203040316J
한국산업인력공단
SQLD
2023.10.06
SQLD-050016653
한국데이터산업진흥회
HSAT(Level.3)
2023.08.11
HSAT-23-02-241
현대엔지비
LANGUAGE
LANGUAGE
TOEIC(910)
2024.02.04
149327
ACTFL
OPIC(IM3)
2023.11.23
2E6128138353
ACTFL
JLPT(N1)
2021.12.05
N1A438419A
일본국제교류기금
SKILL-SET
SKILL
FRONT-END

HTML
CSS
JavaScript
VUE
android
electron
unity
BACK-END

Java
spring boot
python
flask
DEPLOYMENT

aws
oracle cloud
docker
nginx
jenkins
github action
OTHERS

mysql
git
github
jira
PROJECT
PROJECT
자동 출첵
2024년 1월 (1인 프로젝트)
1 /

'자동 출첵'은 현재 진행 중인 코딩 캠프의 출석체크 시스템의 헛점을 파악하여 이를 악용하는 사례가 있을 수 있다는 것을 확인하기 위해 제작하였습니다.

'자동 출첵'은 안드로이드 앱으로, 로그인으로 aws 서버에서 크롬창을 열어 출석체크 페이지에서 정해진 스케쥴에 따라 출석의 체크인과 체크아웃을 진행하고, 이를 자신의 모바일기기로 push 알림메시지를 통해 알려줍니다.

파이썬과 플라스크를 사용하여 백엔드를 구성해 보았습니다. selenium, apscheduler 라이브러리를 사용하여 정해진 시간에 서버 컴퓨터가 직접 브라우저를 조작할 수 있도록 하였습니다.

본 프로젝트는 현실에서 있을 수 있는 악용사례를 생각해내어 직접 구현해보고 그 해결책을 제시해 보았다는 점에서 의미가 있었고, 앱 설계 시 의도하지 않은 봇에 의한 조작을 미연에 방지하며, 동시에 사용자의 편의성을 해치지 않을 수 있는 시스템을 개발해야겠다고 느끼게한 프로젝트였습니다..


arrow_right
참여역할
  • 서버에 http 요청을 보낼 수 있는 간단한 버튼과 몇가지 레이아웃으로 구성된 안드로이드 앱을 제작하였습니다.
  • 백 단에서는 크롬드라이버를 사용하여 로그인과 출석체크를 진행하는 파이썬으로 작성한 rest api 서버를 제작하였습니다. 또한 FCM을 사용하여 모바일기기에 수행결과를 표시할 수 있도록 하였습니다.
  • 솔브커밋
    2023년 12월 (1인 프로젝트)
    1 /

    '솔브커밋'은 코딩테스트를 준비하는 프로그래머 지망생들을 위한 크롬 익스텐션입니다. '솔브커밋'이 설치된 크롬 브라우저는 백준, 프로그래머스 그리고 리트코드 사이트에서의 문제풀이를 감지하여 자동으로 자신의 레포지토리에 풀이 코드가 푸쉬될 수 있도록 도와줍니다.

    백준 사이트의 문제풀이의 감지와, 깃허브 로그인 Rest Api 서버를 만들기 위해 Spring Boot로 서버를 제작하였습니다. 또한 Spring Boot 코드의 자동배포를 위해 Github Action라는 기술을 사용해봤다는 점에서 의미가 있었던 프로젝트입니다.

    문제풀이를 감지하면 파일을 만들고 내용을 작성하여, github api를 통해 풀이정보와 코드가 내 프로젝트에 자동으로 push 됩니다.

    단순히 페이지에 자바스크립트를 삽입하는 걸 넘어 크롬 익스텐션이 제공할 수 있는 다양한 가능성과 확장성에 대해 체감할 수 있었던 프로젝트였습니다.


    arrow_right
    참여역할
  • 익스텐션의 팝업창과 브라우저의 백그라운드에서 작동하는 서비스 워커 및 백엔드의 Rest-api 서버를 제작하였습니다.
  • 피움
    2023년 04월 (6인 프로젝트)
    1 /

    '피움'은 유저 맞춤의 온라인 미술관을 컨셉으로 하여 사용자들에게 꼭 맞는 예술작품을 제안하고 이 작품들을 기반으로 한 메타버스 미술관을 제공하는 웹 서비스 입니다.

    unity와 web-gl기술을 활용하여 웹에서 메타버스를 제공하는 방법을 경험하는 의미가 있었던 프로젝트였습니다. 특히 oculus quest2 라고 하는 VR기기 착용을 통해 가상 미술관 속에 있는 듯한 기분을 유저에게 제공하는 기능을 구현하였습니다.

    메타버스는 유저 정보를 기반으로 선호하는 그림을 불러와 미술관 내부를 구성하고, pun2엔진을 도입하여 실시간으로 서로의 움직임을 공유하며 채팅기능을 제공하였습니다.

    또한 이미지분석 ai, chat-GPT api 및 google translation api, google tts api를 사용하여 그림에 대한 해설을 자동으로 생성하여 음성으로 제공하는 서비스를 구현하였습니다.

    아울러 본 프로젝트의 ci/cd를 담당하여 젠킨스, 도커, nginx의 원리와 사용법에 대해 익힐 수 있었던 의의가 있었습니다.


    arrow_right
    참여역할
  • 주로 unity를 활용하여 메타버스 미술관을 제작하고 유저간의 실시간 소통 및 오브젝트와의 상호작용을 구현하였습니다.
  • docker, jenkins, nginx를 활용하여 프로젝트의 계속적 통합 및 배포를 구현하였습니다.
  • 챌린멍스
    2023년 03월 (5인 프로젝트)
    1 /

    '챌린멍스'는 반려견들을 위한 기부 문화를 게임을 통해 자연스럽게 즐길 수 있도록 하며 블록체인 기술을 활용해 가상화폐인 '클레이튼'을 주고받을 수 있도록 만든 기부 플랫폼입니다.

    '챌린멍스'는 일상에서 실천할 수 있는 반려견을 위한 생활을 인증하는 것, 지역민들과 지도위에 얼마나 많은 면적을 반려견과 산책했는지 경쟁하는 게임을 통해 참여자들이 자연스럽게 기부를 할 수 있도록 유도합니다.

    Spring Boot에서 데이터 베이스를 조작하는데 이때 까지는 myBatis를 사용해 왔지만 처음으로 jpa를 적용해보고 원리를 파악해 볼 수 있었던 의미가 있는 프로젝트 입니다.

    ERD 설계 과정 중의 데이터 베이스 테이블 간의 의존관계를 설정하는 것과 정규화 과정이 프로젝트의 유지관리에 정말 중요하다는 것을 느낄 수 있었습니다.

    또한 지역민들이 산책을 통해 지도 위에 자신이 지나온 구역을 실시간으로 표시하기 위해 Web-Socket사용하여 서버를 중심으로 한 유저 간 통신을 구현해 보았습니다.

    특히 코틀린을 사용하여 안드로이드 화면을 개발 해 볼 수 있었다는 점에서 새로운 언어와 새로운 개발 플랫폼을 경험해 볼 수 있었다는 점에서 큰 의미가 있었습니다. 레트로핏과 리사이클러 뷰를 사용하여 데이터를 취합하고 스타일을 입혀 원하는 모양으로 표시해보는 것을 경험해 볼 수 있었습니다.


    arrow_right
    참여역할
  • 주로 백 단에서 Rest-API 서버를 제작하였고 데이터베이스에서 필요한 정보를 효율적으로 추출하여 가공하는 작업을 주로 수행했습니다.
  • 또한 WebSocket라이브러리를 사용하여 실시간으로 사용자의 위치정보를 받아 지도에서 사용자가 위치한 구역을 표시하고 저장하여 다른 사용자들에게 전달하는 컴포넌트를 제작하였습니다.
  • 코틀린을 사용하여 앱의 메인 화면과, 반려견에게 필요한 시설을 표시하는 지도화면을 제작해 보았습니다.
  • 추노
    2023년 01월 (5인 프로젝트)
    1 /

    '추노'는 플레이어 간 실시간 공유되는 모바일 기기의 카메라 영상과, 구글 지도 위의 위치정보를 단서로 '추노꾼'과 '노비'의 역할을 한 플레이어 사이의 야외추격전을 구현한 게임 플랫폼입니다.

    Web-RTC를 사용하여 플레이어의 영상정보를 공유하고, geo-location 라이브러리를 사용하여 사용자의 위치정보를 공유하였습니다. 또한 아이템의 사용과 채팅 및 개임상황을 알려주는 시스템 메시지 기능등을 사용하여 추격전의 진행상황을 알 수 있게 하였습니다.

    Web-RTC를 사용해 봤다는 것에서 큰 의미가 있었던 프로젝트 였지만, 이를 사용하기 위한 라이브러리인 openvidu 도커 이미지를 사용하며 이론적으로만 알고 있었던 도커의 개념과 사용법을 알아볼 수 있었던 점에서 큰 의미가 있었던 프로젝트였습니다.

    또한 Web-RTC가 제공하는 클라이언트간의 실시간 통신을 프론트에서 직접 구현하여 영상, 음성 등의 미디어 정보와 텍스트 정보의 송수신의 원리를 파악해 볼 수 있었던 의미가 있었습니다.

    프로젝트의 로그인 로직의 프론트 단과 백 단을 모두 담당하여 Oauth2의 개념과 활용법을 익히는데 큰 도움이 되었습니다.

    Vue 프레임워크를 사용하며 앱 내에서 openvidue 객체와 로그인 상태관리 및 전역적 변수 관리를 위해 vuex를 도입하였습니다. 이를 통해 복잡한 컴포넌트 구조에서 발생하는 상태 관리의 어려움을 해결하고 유지관리의 효율성을 향상 시킬 수 있었습니다.


    arrow_right
    참여역할
  • 주로 프론트 단의 화면 개발 특히 게임 대기방, 게임 화면, 게임 결과 창등 메인 서비스와 관계된 컴포넌트를 담당하였습니다.
  • 백 단에서는 Login을 위한 Rest API를 제작하였습니다.
  • 신우기전
    2022년 7월 (1인 프로젝트)
    1 /

    '신우기전'은 저희 아버지가 운영하시는 회사의 홈페이지 입니다. 제가 공부하는 분야로 가족에게 도움이 되면 좋겠다는 마음으로 직접제작하여 드리고 싶단 마음으로 진행한 프로젝트입니다.

    처음 자바스크립트를 배우고 난뒤 제작해본 웹사이트로 FireBase Database와 json 형식의 NoSql를 이용하여 게시판을 만들고 로그인한 유저의 권한에 따라 글을 삭제하고 답변할 수 있도록 기능을 구현하였습니다.


    arrow_right
    참여역할
  • 회사 홈페이지의 전체를 제작하였습니다.
  • Firebase의 Cloud Databse를 사용하여 게시판과 로그인, 회원가입 및 회원관리을 구현하였습니다.