SlideShare a Scribd company logo
1 of 8
Download to read offline
이력서:
황성찬
인적사항 성명 황성찬
휴대전화 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
수상날짜 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년간 운영했습니다.
자기소개서:
황성찬
도전적이며 주도적인 개발자
목표를 이루기 위해서 도전하고, 어떤 환경에서나 주도적인 인생을 살아왔습니다.
결국에는 영향력 있는 사람이 되고 싶습니다.
Dev History
▶ 게이머에서 프로그래머로
유치원 생활기록부에 “원 내 PC에 게임을 설치해서 플레이 함” 이라고 적혀 있을 만큼 어렸을 때 부
터 게임을 좋아했습니다. 특히, 리그오브레전드 라는 게임에서는 프로게이머와 어깨를 나란히 할 만큼
뛰어난 실력과 재능을 가지고 있었습니다. 시간이 흘러 군복무 후 게임에 대한 실력과 재능이 사라져
버렸습니다. 그렇지만 꼭 컴퓨터를 활용하는 직업을 가지고 싶었습니다. 고민 끝에 프로그래머가 되기
로 결심하고 컴퓨터공학과에 진학하게 되었습니다.
▶ 프로그래밍 황무지 개척자
모교에는 프로그래밍 동아리가 없었습니다. 그래서 직접 개설 후 2년간 운영했습니다. 관심사가 같은
학생들이 모여서 그룹 스터디를 진행하고 최종적으로 대외활동에 참여해 입상을 목표로 하는 동아리
입니다. 제가 6개월간 참여한 인공지능 동아리에서 INTEL AI 드론 경진대회에 참여하고 참여한 두 팀
이 해당 대회의 1등 2등을 석권하는 멋진 경험도 할 수 있었습니다.
학생들의 귀감이 되어 주변 고등학교 멘토링, 후배 멘토링 등 교육 활동도 활발히 하며 프로그래밍 황
무지에서 선한 영향력을 행사한 경험이 있습니다.
▶ 우물 밖이 궁금한 개구리
모교 학생들과 경쟁하는 것을 넘어서 더 넓은 세상에서 경쟁하고 싶다는 생각을 했습니다. 이런 생각
덕분에 경진대회, 공모전, 교육 프로그램, 컨퍼런스, 세미나에 부지런히 참여했습니다. 특히 실무 경험
이 가장 좋은 활동이라고 생각했습니다. 인턴으로 근무하기 위해서 서류 합격을 위한 스펙이 필요하
다고 판단했고 수상 경력과 교육 프로그램에 부지런히 참여해서 스펙을 쌓기 위해서 노력했습니다.
▶ 인생을 애자일하게!
인공위성 이미지 관련 스타트업에서 4 개월간 백엔드 인턴으로 근무하며 애자일 스크럼을 경험했습니
다. 회사에서 데일리 미팅, 스프린트 회의를 경험할 수 있었는데 특히 데일리 미팅이 인상 깊었습니다.
10분만에 모든 팀원들이 서로의 작업 진행 상황을 공유할 수 있다는 점에서 큰 감명을 받았습니다.
근무 기간이 끝난 후에도 “인생을 애자일하게” 라는 슬로건을 가지고 셀프 데일리 미팅을 진행하며 하
루를 시작하고 있습니다.
▶ 선한 영향력을 가진 개발자가 되고 싶습니다.
제가 성장하기까지 너무나 많은 도움을 받았습니다. 자신의 경험을 블로그에 공유한 개발자분들, 대외
활동을 경험시켜주신 선배님, 교수님, 인턴 기회를 주신 회사분들의 배려로 성장할 수 있었습니다.
제가 받은 선한 영향력을 몇 배로 세상에 돌려주고 싶습니다.
블로깅, 발표, 멘토링 등 제가 할 수 있는 것들을 실행하고 있습니다. 이제는 회사에 합류해서 멋진 서
비스를 개발하고 사용자들에게 선한 영향력을 행사하는 개발자가 되고 싶습니다.
포트폴리오:
황성찬
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로 줄었습니다.
- 마크업 로직을 작성할 때 최소한의 시간을 투자하여 일정한 퀄리티의 결과물을 낼 수 있습니다.
아이디어 메모 웹 서비스 “사각사각” 개발
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를 안전하게 허용하고 있습니다.
동아리 관리 웹 서비스 개발
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을 활용할 수 있습니다.
지역 시장 홍보 어플리케이션 “사오정” 개발
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을 이해하고 있습니다.

More Related Content

Featured

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
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을 이해하고 있습니다.