미리보기
기본 정보
사람들에게 편리함을 주기 위해 노력하는 개발자입니다. 대학교 재학 동안 IT 동아리를 하면서 웹에 대한 지식을 넓혀갔으며, 해커톤을 진행하면서 협업 능력을 키워나갔습니다. 또한, 특정 지식에 대해 스스로 납득할 때까지 깊게 파고들어 이해하는 것을 좋아하며, 잊어버리지 않기 위해 블로그에 문서화를 틈틈이 하고 있습니다.
기술 스택
Java, Spring, MySQL, JPA, nginx, letsencrypt-nginx-proxy-companion, Shell Script, aws-ec2, aws-rds, Slack, Notion
프로젝트
도메인 이름은 SnapEvent이고, 특정 사이트의 이벤트 DOM 구조를 크롤링하여, 사용자에게 이벤트 푸시 알림 서비스를 제공하는 웹 플랫폼
대학교 졸업 프로젝트
2024.03. ~ 2024.06.
인력 구성: 백엔드 2 명, 프론트 1 명
프로젝트 목적: 학습한 스프링부트 개념을 체화하기 위해 졸업 프로젝트로 진행/FE 개발자 팀원과 협업
주요업무 및 상세역할:
특정 사이트에서 진행하는 이벤트 DOM 구조들을 Jsoup 라이브러리를 사용하여 크롤링해서 크롤링 데이터들을 프론트한테 전달
프로젝트 아이디어 기획부터 버전 관리 및 서버 배포를 담당
aws ec2 서버 내에 certbot 라이브러리를 활용하여 https 설정
사용언어 및 개발환경:
Java/Spring, Jsoup, JPA, mySQL, AWS, EC2, RDS, Nginx, FCM
느낀 점:
프론트와 api 통신을 할 때 Nginx 리버스 프록시를 활용하여 CORS 문제를 해결하였음
gitflow 전략을 활용하여 브랜치 별로 기능 구현하는 것을 배움
쉘 스크립트를 작성하여 프론트 및 백엔드 어플리케이션을 동시에 관리하는 것을 배움
도메인 이름은 Merit고, 고용주와 프리랜서 간에 매칭 및 모니터링 해주는 웹 서비스 개발
Aim for Impact(디스코드 글로벌 해커톤)
2024.02. ~ 2024.03.
인력 구성: 백엔드 1 명, 프론트 1 명, UX 디자이너 2 명, PM 1 명
프로젝트 목적: 제한된 시간 내에 MVP 프로젝트를 만들어서 해커톤 심사위원들한테 어필/외국인 팀원들과의 영어 커뮤니케이션 경험 및 스프링 지식 체화
주요업무 및 상세 역할:
어드민 페이지 개발
graphQL을 활용하여 클라이언트와의 api 통신을 하나의 엔드포인트로 관리
사용언어 및 개발환경: Java/Spring, JPA, mySQL, GraphQL
느낀 점: MVP 프로젝트임에도 불구하고 생각보다 기능 구현이 많아서 PM 과의 적절한 조율이 필요하다는 것을 배움
포트폴리오
교육
홍익대(서울)
대학교(학사) | 컴퓨터공학과
2022.03. ~ 2024.08. | 졸업
한성대
대학교(학사) | 경제학과
2016.03. ~ 2021.08. | 중퇴
한영외국어고등학교
고등학교 | 인문계
2011.03. ~ 2014.02. | 졸업
대외활동
백엔드 스터디
GDSC 홍익
백엔드 서버 프레임워크로 사용되는 스프링의 기초를 학습했으며, 그 과정에서 "스프링 입문을 위한 자바 객체 지향의 원리와 이해" 서적을 읽으며 객체지향적인 코드 설계를 배웠음.
자격증
OPIc in English
IH | ACTFL
2024.06.
정보처리기사 합격
한국산업인력공단
2024.09.
외국어
영어
비즈니스 회화 가능
자기소개
자기소개서
사람들에게 편리함을 주기 위해 노력하는 개발자입니다.
[백엔드 개발자를 선택하게 된 이유]
대학교 재학 동안 개발 동아리를 하면서 웹에 대한 지식을 넓혀갔으며, 서버를 통해 데이터가 오고 가는 것에 흥미를 느껴 백엔드 직무에 지원하고자 합니다. 저는 백엔드에 대한 이해를 깊게 하려고 개발 동아리에서 주최한 백엔드 스터디를 통해 스프링 프레임워크와 DBMS의 전반적인 구성 및 원리를 학습하였고, 병원 환자 관리 시스템을 간단하게 만들어서 데이터베이스 구축 및 설계 과정도 학습하였습니다. 또한, 학습한 지식을 잊어버리지 않기 위해 블로그에 문서화를 틈틈이 진행해오고 있습니다.
[기억에 남는 개발 프로젝트]
대학교 4학년에 진행한 캡스톤 프로젝트가 가장 기억에 남았습니다. 왜냐하면 저는 프로젝트를 진행할 때 개발이 가장 우선순위가 높은 건 줄 알았는데 그보다는 아이디어 기획 및 와이어프레임 설계에 80% 정도를 투자해야 개발 과정에서 문제가 생겼을 때 기획 단계로 다시 돌아가는 일이 적음을 몸소 깨달았기 때문입니다. 그리고 AWS 클라우드 서비스를 사용하여 웹 배포를 처음 진행하였는데 RDS 연결 및 보안 규칙 등 여러 가지 설정해야 할 것이 많아서 시간 투자를 많이 했었고, 스프링 프레임워크를 통한 RESTful API 설계 외에도 https 설정, nginx 리버스 프록시를 사용하여 포트 번호가 다른 프론트와 성공적인 API 통신, 그리고 노션을 통한 API 문서화와 같이 안정적인 웹을 설계하기 위해 부수적인 업무들이 있다는 것을 알았습니다.
[성격의 장점과 단점]
저는 맡은 역할에는 끝까지 책임지고 전력을 기울인다는 사명감이 있기 때문에 도중에 프로젝트를 포기하지 않고 최대한 투자하여 프로젝트를 끝내고자 하는 성향이 있습니다. 그래서 팀원 간에 사정이 생기면 카카오톡 외에도 슬랙, 디스코드를 통하여 프로젝트에 대한 의견 및 피드백을 적극 받아서 프로젝트에 빠르게 반영했습니다. 그러나 저는 새로운 사람들에 대해 낯을 가리는 성격이 있어서 처음에는 프로젝트에 대한 의욕이 낮아 보이고 팀원들과 만나서 직접 소통하는 방식이 적합하지 않다고 보일 수도 있습니다. 저는 그러한 점을 잘 알고 있기 때문에 현재는 여러 가지 프로젝트를 진행하면서 소통 능력 증진 및 효율적인 의견 공유를 연습하면서 단점을 개선해 나가고 있습니다.
[협업 및 팀워크 경험]
지인의 추천으로 온라인 해커톤에 참가를 하였는데, 다양한 나라 출신의 프로덕트 리드, UX 디자이너, 그리고 프론트엔드 엔지니어들과 같이 한 팀을 구성하였습니다. 저희는 제한된 한 달 기간 동안 MVP 프로덕트를 만들어야 했고 팀원들의 시간대가 달라서 디스코드를 통해서 프로덕트를 만들기 위한 아이디어 및 소프트웨어 개발 회의를 진행하였습니다. 비록 의사소통하는데 언어 장벽에 부딪혔지만, 디스코드 채팅과 같은 실시간에 따르는 방식을 통해 사용자의 요구사항이 반영된 소프트웨어 서비스와 같은 팀원들이 생각하는 공동의 목표에 도달하는 데 노력하였습니다.
[팀 활동에서 협업했던 사람 중 본인과 ‘잘 맞는 사람’과 ‘잘 맞지 않는 사람은’ 어떤 유형의 사람인가]
대학교 4학년에 진행한 캡스톤 프로젝트와 관련이 있기 때문에, 이 프로젝트에서 협업을 진행했던 팀원들에 관해 이야기를 하겠습니다. 팀원은 저 포함해서 백엔드 2명, 그리고 프론트 1명으로 구성되었는데 이 중에 저와 잘 맞았던 사람은 백엔드 팀원이었습니다. 프로젝트 전체를 포괄해서 판단하기에는 무리가 있어서, 아이디어 도출 및 기획 과정과 개발 과정 2가지로 나누어서 말씀드리겠습니다. 먼저 첫 단계인 아이디어 도출 및 기획 과정에서 처음에는 AI 데이터셋 확보에 대한 한계 때문에 주제를 바꾸게 될 수밖에 없었는데 각자 1주일 동안 새로운 프로젝트에 대한 참신한 주제 및 기능과 동작 과정을 생각하는 시간을 보냈습니다. 여기서 저와 잘 맞았던 사람은 저와 비슷하게 기존에 존재하는 어플리케이션이 있는지를 파악하기 위한 시장 조사를 꼼꼼히 하였고, 동작 과정도 순서도를 활용하여 파악하기 쉽게 구성하였으며 기능 구현에 대한 기술 스택도 다양하게 조사하였습니다. 반면에 저와 잘 맞지 않은 사람은 이 과정에서 상당히 소극적인 태도를 보였는데, 주제만 단순하게 노인이라는 키워드만 던지고 시장 조사나 기능에 대한 기술 스택도 조사하지 않아서 실망했습니다. 다음으로 개발 과정에서 저와 잘 맞았던 사람은 코드 리뷰를 성실히 하고, 깃허브로 커밋 내용 및 오류 해결 과정을 공유하였습니다. 반면에 잘 맞지 않은 사람은 기능 구현 마감기한을 지키지 않고, 오류가 발생하면 무턱대고 오류 사진만 협업 툴에 첨부하고 다른 팀원들한테 해결해달라고만 하고 본인이 직접 구글링해서 오류에 대해 찾아볼 생각을 하지 않았습니다.
[입사 후 포부]
입사 후 저는 팀의 일원으로서 항상 협력적인 태도를 유지할 것입니다. 이를 위해 첫째로, 제가 개발 지식을 학습하고 기록한 블로그를 팀원들과 공유함으로써 공동의 목표를 달성하고자 노력하겠습니다. 이를 통해 팀의 전체적인 역량을 향상하고, 협업의 시너지를 극대화할 수 있을 것입니다. 현재 IT 기술은 빠르게 변화하기 때문에 신기술 습득도 중요합니다. 이를 위해 사내 교육 프로그램이나 세미나가 열리면 적극 참여해서 IT 기술 동향을 파악하고 회사의 성과를 높이는데 이바지하겠습니다.