More than Just Lines on a Map: Best Practices for U.S Bike Routes
이력서 버전3
1. 이력서:
황성찬
인적사항 성명 황성찬
휴대전화 010.3297.1897
E-mail dbfpzk142@gmail.com
생년월일 1995. 04. 07
학력사항 2018.03 ~ 2022.02 (졸업예정)
한남대학교 컴퓨터통신무인기술학과 재학 중
2011.03 ~ 2014.02
성남서고등학교 졸업
웹페이지 Blog https://velog.io/@prayme
Github https://github.com/plzprayme
Notion https://notion.so/bf86355af5e942e4990098ee2b07035b
보유기술 Language
Framework
DBMS
Infra
VCS
Java, Kotlin
Spring
MariaDB
AWS, Github Action, Nginx, Docker
Git
경력 사항 기간 2021.03 ~ 2021.06 (4개월)
장소 SI Analytics
직무 및 직급 개발직(인턴)
▪ Kotlin, Armeria 기반 gRPC API 서버 개발
기간 2020.07 ~ 2020.08 (2개월)
장소 한국과학기술정보연구원 (KISTI)
직무 및 직급 개발직(풀타임 아르바이트)
▪ 풀스택 백오피스 개발
수상경력 수상날짜 2020.10
수상 명 JunctionXSeoul SIA Track 2nd
Winner
수여 기관 Junction
2. 수상날짜 2019.11
수상 명 한남대학교 빅데이터 경진대회 우수상
수여 기관 한남대학교
수상날짜 2019.08
수상 명 INTEL AI 드론 경진대회 최우수상
수여 기관 INTEL
영어 TOEIC 690점
기타 활동 활동 명 AWSKRUG University Student Group. AUSG (대학생 IT 연합 동아리)
기간
설명
2019.07 ~ 활동 중
지식 공유를 목적으로 활동하고 있습니다.
활동 명 글쓰는 또라이가 세상을 바꾼다. 글또 (글쓰기 모임)
기간 2021.07 ~ 활동 중
설명 글쓰는 습관 습득과 글쓰기 능력 향상을 기대하며 활동하고 있습니다.
활동 명 Dynamic Designer Developer. DDD (IT 연합 동아리)
기간 2020.02 ~ 2020.05
설명 현업자와 협업하여 사이드 프로젝트를 진행했습니다.
활동 명 PIONEER (한남대학교 스터디 동아리)
기간 2019.03 ~ 2021.03
설명 스터디 동아리를 개설 후 2년간 운영했습니다.
3. 자기소개서:
황성찬
도전적이며 주도적인 개발자
목표를 이루기 위해서 도전하고, 어떤 환경에서나 주도적인 인생을 살아왔습니다.
결국에는 영향력 있는 사람이 되고 싶습니다.
Dev History
▶ 게이머에서 프로그래머로
유치원 생활기록부에 “원 내 PC에 게임을 설치해서 플레이 함” 이라고 적혀 있을 만큼 어렸을 때 부
터 게임을 좋아했습니다. 특히, 리그오브레전드 라는 게임에서는 프로게이머와 어깨를 나란히 할 만큼
뛰어난 실력과 재능을 가지고 있었습니다. 시간이 흘러 군복무 후 게임에 대한 실력과 재능이 사라져
버렸습니다. 그렇지만 꼭 컴퓨터를 활용하는 직업을 가지고 싶었습니다. 고민 끝에 프로그래머가 되기
로 결심하고 컴퓨터공학과에 진학하게 되었습니다.
▶ 프로그래밍 황무지 개척자
모교에는 프로그래밍 동아리가 없었습니다. 그래서 직접 개설 후 2년간 운영했습니다. 관심사가 같은
학생들이 모여서 그룹 스터디를 진행하고 최종적으로 대외활동에 참여해 입상을 목표로 하는 동아리
입니다. 제가 6개월간 참여한 인공지능 동아리에서 INTEL AI 드론 경진대회에 참여하고 참여한 두 팀
이 해당 대회의 1등 2등을 석권하는 멋진 경험도 할 수 있었습니다.
학생들의 귀감이 되어 주변 고등학교 멘토링, 후배 멘토링 등 교육 활동도 활발히 하며 프로그래밍 황
무지에서 선한 영향력을 행사한 경험이 있습니다.
▶ 우물 밖이 궁금한 개구리
모교 학생들과 경쟁하는 것을 넘어서 더 넓은 세상에서 경쟁하고 싶다는 생각을 했습니다. 이런 생각
덕분에 경진대회, 공모전, 교육 프로그램, 컨퍼런스, 세미나에 부지런히 참여했습니다. 특히 실무 경험
이 가장 좋은 활동이라고 생각했습니다. 인턴으로 근무하기 위해서 서류 합격을 위한 스펙이 필요하
다고 판단했고 수상 경력과 교육 프로그램에 부지런히 참여해서 스펙을 쌓기 위해서 노력했습니다.
4. ▶ 인생을 애자일하게!
인공위성 이미지 관련 스타트업에서 4 개월간 백엔드 인턴으로 근무하며 애자일 스크럼을 경험했습니
다. 회사에서 데일리 미팅, 스프린트 회의를 경험할 수 있었는데 특히 데일리 미팅이 인상 깊었습니다.
10분만에 모든 팀원들이 서로의 작업 진행 상황을 공유할 수 있다는 점에서 큰 감명을 받았습니다.
근무 기간이 끝난 후에도 “인생을 애자일하게” 라는 슬로건을 가지고 셀프 데일리 미팅을 진행하며 하
루를 시작하고 있습니다.
▶ 선한 영향력을 가진 개발자가 되고 싶습니다.
제가 성장하기까지 너무나 많은 도움을 받았습니다. 자신의 경험을 블로그에 공유한 개발자분들, 대외
활동을 경험시켜주신 선배님, 교수님, 인턴 기회를 주신 회사분들의 배려로 성장할 수 있었습니다.
제가 받은 선한 영향력을 몇 배로 세상에 돌려주고 싶습니다.
블로깅, 발표, 멘토링 등 제가 할 수 있는 것들을 실행하고 있습니다. 이제는 회사에 합류해서 멋진 서
비스를 개발하고 사용자들에게 선한 영향력을 행사하는 개발자가 되고 싶습니다.
5. 포트폴리오:
황성찬
SI Analytics 개발팀 백엔드 인턴
2021.03 ~ 2021.06
#Kotlin #Armeria #Kotest #gRPC #protocol buffers
개요
실무 현장이 궁금해서 인턴에 도전했습니다. 인공위성 이미지 분석 솔루션 서비스를 제공하는 스타트업에서
백엔드 인턴으로 4개월 간 근무했습니다. 인턴으로 근무하며 애자일 스크럼, 레거시 코드 개선, TDD를 경험
할 수 있었습니다.
실무라는 야생에서 살아남기
[실무에서 구르며 습득한 Kotlin 활용 능력]
- 개발 진행 중인 Kotlin 프로젝트에 즉시 투입될 수 있습니다.
- Kotlin DSL, Data Class, Null-Safe, infix, Extension function 등 Kotlin의 특징을 이해하고 있습니다.
- 코루틴을 활용한 비동기 프로그래밍이 가능합니다.
[실무에서 구르며 습득한 Git 활용 능력]
- Git Submodule을 이해하고 있습니다.
- Rebase, Pull Request, Merge, Pull 등의 명령어를 상황에 맞게 사용하며 코드를 관리할 수 있습니다.
- Git Flow를 따르며 Git을 활용해 협업할 수 있습니다.
[실무에서 구르며 습득한 Test 지식]
- 유닛 테스트를 이해하고 있습니다.
- Mocking, Spy를 왜 사용하는지 이해하고 있습니다.
[레거시 시스템 리팩토링으로 생산성을 크게 향상시킨 사례]
- 이미 동작하던 시스템의 코드를 안전하게 리팩토링하며 생산성을 향상시켰습니다.
- 네이밍 통일과 동작 방식을 통일하며 개발자의 생산성을 확보했습니다.
- 마크업 레이어와 스타일 레이어를 분리하여 유지보수성과 코드관리성을 확보했습니다.
- 불필요한 반복을 제거하여 클래스 파일과 코드의 라인도 1/4로 줄었습니다.
- 마크업 로직을 작성할 때 최소한의 시간을 투자하여 일정한 퀄리티의 결과물을 낼 수 있습니다.
6. 아이디어 메모 웹 서비스 “사각사각” 개발
2020.02 ~ 2020.05
#Java #Springboot #Junit5 #Swagger #MariaDB #Docker #Docker-Compose #Github Action #AWS
개요
일상 속에서 번뜩이는 아이디어들을 흘려보내는 문제를 해결하기 위해서 개발한 프로젝트입니다. 메모를 쉽
고 빠르게 할 수 있는 크롬 익스텐션 서비스입니다.
윈도우 메모지 보다는 기능이 많고, 카카오톡 나에게 보내기 보다는 관리하기 편하고, 노션보다는 가벼운
서비스를 만들기 위해 노력했습니다.
실무자와 협업하며 폭발적으로 성장하기
[점진적으로 개선하는 무중단 배포 CI/CD 파이프라인]
- Github Action, AWS Code Deploy, Docker, Docker-Compose를 활용하여 무중단 배포를 구현했습니다.
- 구현한 무중단 배포를 Github Action, Docker, AWS Beanstalk를 활용하도록 개선했습니다.
- 무중단 배포를 개선하며 유지보수성을 저해하는 포인트들을 개선했습니다.
- 무중단 배포를 개선하며 Shell-Script, nginx.config, Docker-Compose 등 관리 포인트를 제거했습니다.
[클린하고 객체지향적인 코드 유지하기]
- 코드 퀄리티 유지를 위해 코드 리뷰를 진행했습니다.
- 코딩 컨벤션과 네이밍 컨벤션을 지키며 클린 코드를 유지했습니다.
- setter 사용을 지향하며 객체지향적인 코드를 유지했습니다.
- 객체에 메시지를 보내며 객체지향적인 코드를 유지했습니다.
- @Embedded 와 VO를 적극적으로 활용하며 객체지향적인 코드를 유지했습니다.
[CORS 안전하게 허용하기]
- CORS를 정확하게 이해하고 있습니다.
- Spring Security의 Filter Chain에 Custom Filter를 추가하여 CORS를 안전하게 허용하고 있습니다.
7. 동아리 관리 웹 서비스 개발
2020.01 ~ 2020.03
#Java #SpringBoot #MariaDB #Travis CI #AWS #Nginx #HTML #CSS #Bootstrap #Javascript
개요
운영 중인 동아리에 신규 회원이 가입할 때 마다 동아리 소개, 스터디 매칭 등 동아리 운영 업무를 수동으
로 반복해야 하는 문제를 해결하기 위해서 개발한 1인 프로젝트입니다.
웹 서비스를 통해 신규 회원에게 동아리 소개, 스터디 매칭 등을 자동화해서 신규 회원을 받을 때 마다
동아리 안내에 소요하는 시간을 아낄 수 있었습니다.
또, 해당 프로젝트를 진행하며 프로젝트 주도 성장이라는 저만의 학습 방법을 가지게 되었습니다.
기획, 디자인, 개발, 배포까지 웹 개발의 모든 프로세스를 경험하기
[나만의 공부방법: 프로젝트 주도 성장]
- 프로젝트 완성 후 코드, 아키텍처 등을 개선하는 시간을 가지며 개선 과정을 포스팅합니다.
- 개선 과정뿐 아니라 내부 동작을 잘 모르고 사용한 기술들을 추가 학습한 후 포스팅합니다.
[REST API 리팩토링하기]
- URI만 보고 API의 동작을 예측할 수 있도록 URL, HTTP Method를 리팩토링했습니다.
- JSON API와 VIEW API를 분리하도록 리팩토링했습니다.
- 프로젝트 완성 후 REST API의 URL 설계 규칙을 숙지하고 URL을 리팩토링했습니다.
- 각 API들이 알맞은 HTTP Method를 사용하도록 리팩토링했습니다.
[Spring 공식문서 읽기]
- SpringBoot에서 사용하던 애너테이션들을 공식문서를 읽으며 학습 후 포스팅했습니다.
- 애너테이션들의 내부 동작을 파악하기 위해서 노력했습니다.
- SecurityContextHolder와 같이 프로젝트 완성을 위해 사용한 기술들을 찾아봤습니다.
[모던 자바 인 액션 8을 읽으며 Java 8 이후 기술 학습하기]
- Stream API의 내부 동작과 다양한 메서드들을 활용할 수 있습니다.
- 함수형 인터페이스, 람다, 메서드 참조를 활용할 수 있습니다.
- Optional을 활용할 수 있습니다.
8. 지역 시장 홍보 어플리케이션 “사오정” 개발
2020.05 ~ 2020.09
#Javascript #ExpressJS #MariaDB #Github Action #AWS #Nginx #Java #Android #Glide #Retrofit2
개요
오정동 농수산물시장 조합과 연계하여 진행한 홍보 애플리케이션을 개발했습니다. 대형 마트와 코로나로 침
체되어 있는 농수산물 시장의 홍보를 돕기 위해서 진행된 프로젝트입니다.
팀장으로서 회의 진행, 프론트엔드 개발, 백엔드 개발, 기술 세미나 진행 등 전방위적으로 리더십을 발휘했
습니다.
원활한 협업을 위해서 고민하기
[기술 세미나 운영으로 팀원들의 개발역량 향상시키기]
- Git 실습 세미나를 통해 팀원들이 Add, Commit, Push, Pull, Branch, Pull-Request, Merge 등 간단한
Git 사용법을 숙지하도록 함으로써 협업이 가능하도록 유도했습니다.
- Android 세미나를 통해 Activity, Fragment의 관계를 이해하고 Life-Cycle을 이해하여 개발을 시작할
수 있도록 유도했습니다.
[회의 아젠다 운영으로 회의 효율성 극대화하기]
- 회의 전 미리 회의 안건을 기록하고 회의 중에는 회의록을 작성하는 아젠다를 도입했습니다.
- 아젠다 도입 전 1 시간 동안 진행됐던 회의가 도입 후에는 10분으로 짧아졌습니다.
- 시간은 짧아진 반면에 회의 결과를 명확하게 기록하며 효율적인 회의를 진행했습니다.
[별점 취합 Batch 프로그램으로 데이터베이스 부하 줄이기]
- 각 상점에 별점을 매길 때 마다 별점의 평균을 계산할 시 데이터베이스의 과부하가 예상됨
- 별점 평균을 계산하고 저장하는 Batch 프로그램을 작성하여 데이터베이스 부하를 줄였습니다.
[Android 개발 능력]
- Glide, Retrofit2 등 써드파티 라이브러리를 활용하여 개발할 수 있습니다.
- Fragment, Activity의 Life-Cycle을 이해하고 있습니다.