미리보기
기본 정보
안녕하세요 백엔드 개발자 이동규입니다. - 저는 가독성과 유지보수성을 중시하여 코드를 작성하려고 합니다. - 서비스 개발을 할 때 꾸준히 개선점을 파악하려고 합니다. 요구 사항을 만족 시킨 후에도 개선을 고민하고 문제점은 없는지 찾습니다. - 활발한 커뮤니케이션과 코드 리뷰 문화를 좋아합니다. 서로가 서로에게 인사이트를 주고 받는 팀을 지향합니다. - 조금이라도 꾸준하게 학습하기 위해 하루에 한 페이지라도 학습 기록을 깃허브에 남기고 있습니다.
기술 스택
Java, Spring, JPA, AWS, Docker, MySQL, JWT, oauth2
프로젝트
Wannafly
큐시즘
2023.03. ~ 2023.05.
개요
- 동아리 및 대외활동에 지원하는 대학생들을 위한 지원서 관리 서비스
소개 자료
담당 업무
- 팀원들과 약 140여개의 테스트 코드 작성
- 리드 개발자를 맡아 API 설계 및 일정 산출 주도
- 도메인 및 ERD 설계
- 스프링 시큐리티와 소셜 로그인으로 인증 기능 구현
- 레디스와 리프레시 토큰으로 사용자 경험 개선
- 운영 환경에서 외래키 제약의 잠금 전파로 인한 데드락 해결
- 맞춤법 검사 기능을 위해 파이썬 라이브러리와 AWS Lambda 이용
- Github Action과 docker를 이용한 CI/CD 구축
- main 브랜치에 merge 시 운영 서버에 배포 자동화
- develop 브랜치에 merge 시 도커 허브에 로컬용 서버 이미지 push 자동화
→ 프론트엔드 개발자가 로컬에서 API를 테스트하기 용이
Three More Days, 스모디
우아한테크코스
2022.06. ~ 2022.11.
개요
- SNS 기반의 작심삼일 극복을 위한 습관 형성 서비스
- 3일 간의 짧은 주기의 도전을 반복하도록 유도합니다.
소개 자료
담당 업무
- 팀원들과 약 370여개의 테스트 코드 작성
- 도메인 및 ERD 설계
- 알림 기능을 도입하여 사용자에게 지속적인 도전 유도
- 결합도를 낮추기 위해 이벤트 형식으로 구현
- 알림 이벤트 처리 로직의 예외가 이벤트를 발행하는 로직에 전파되는 문제 해결
- Spring Scheduler로 예약 알림 발송 구현
- 랭킹 기능을 도입하여 사용자의 도전 욕구 고취
- 인덱스를 사용한 쿼리 최적화
- 날짜 기반의 조회가 일어나는 쿼리 다수 발견 → 시간 칼럼에 인덱스 적용
- row가 약 70만개인 테스트 환경에서 0.72sec → 0.00sec 성능 개선
- 날짜 기반의 조회가 일어나는 쿼리 다수 발견 → 시간 칼럼에 인덱스 적용
- 테스트 클래스마다 상이한 MockBean을 사용하는 것으로 인해 스프링 컨텍스트를 재사용하지 못하는 문제를 해결
- 동일한 스프링 빈 구성으로 묶을 수 있는 테스트 클래스들을 상속 구조로 묶음
- 테스트 컨텍스트 18개 → 5개까지 감소
- 테스트 간 독립적인 실행을 위해 테스트 격리 환경을 구성
포트폴리오
교육
우아한테크코스
사설 교육 | 백엔드 과정
2022.02. ~ 2022.11. | 졸업
한국외국어대학교
대학교(학사) | 융합일본지역전공
2017.02. ~ 2024.01. | 졸업
대외활동
한국 대학생 IT 경영학회, 큐시즘(kusitms)
기타
- 기획자, 디자이너와의 협업 경험
- IT 서비스를 기획하여 프로토타입을 시연하는 ‘밋업데이’에서 장려상 수상
- 프로젝트 진행 시 리드 개발자를 맡아 PM과의 소통 및 개발 일정 관리 담당
자기소개
진로를 고민하면서 우선순위에 둔 것이 어떤 경험과 학습을 해야 흥미를 잃지 않고 꾸준히 할 수 있을까 였습니다. 개발 분야를 알아갈수록 개발자라는 직업이 제가 원하는 가치를 실현하기에 충분하다고 확신했습니다.
개발자로서 꾸준한 학습과 성장을 할 수 있겠다고 생각한 것은 개발 학습엔 목적의 명확성과 남다른 성취감이 있기 때문입니다. 개발은 학습을 통해 하고자 하는 바가 명확합니다. 프로젝트를 진행하면서 데이터베이스 데드락을 경험한 적이 있습니다. 이 경험을 통해 락과 데드락에 대해 학습하게 되었는데 해결하고자 하는 목적이 있어서인지 빠르게 학습할 수 있었습니다. 학습의 결과 데드락의 원인을 찾았고 문제를 해결했을 때의 만족감은 어떤 학습을 경험했을 때보다 선명했습니다. 개발의 뚜렷한 목적성은 의지를 강하게 다져주고, 만족스러운 성취감은 꾸준히 개발을 할 수 있게 하는 원동력이 될 것입니다.
백엔드 개발자를 희망한 이후부터 필요한 역량을 쌓기 위해 꾸준히 학습해왔습니다.
기본적인 언어와 프레임워크에 대한 학습을 시작할 때는 인터넷 강의를 활용했습니다. 자바, 스프링, JPA, HTTP 등의 강의를 약 10개 이상 학습하였고 모두 기록으로 남겨두어습니다. 실무에 필요한 언어와 프레임워크 활용법에 대해 기초적으로 학습을 할 수 있었습니다.
다양한 개발자들과 교류하고 프로젝트도 해보고 싶었기에 ‘우아한테크코스’라는 교육 프로그램에 지원했습니다. 한 달 간 코딩 테스트와 과제 전형을 거쳐 합격할 수 있었습니다. 교육 중에는 매주 과제를 수행하고 코드 리뷰를 받으며 읽기 좋은 코드란 무엇인지에 대해 고민하는 시간을 가질 수 있었습니다. 뿐만 아니라 TDD, 페어 프로그래밍과 같은 개발 방법도 경험할 수 있었습니다. 학습이 어느정도 진행된 후에는 5개월 간 팀 프로젝트를 진행했으며 지속적인 배포와 유지보수를 경험할 수 있었습니다.
‘우아한테크코스’를 수료한 이후에도 꾸준한 학습에 대한 관성을 잃어버리지 않기 위해 ‘1일 1커밋’을 생활화하고 있습니다. 코딩 또는 간단한 학습을 매일 꾸준히 진행하며 현재 약 1년 가까이 진행하고 있습니다. 주로 하는 활동은 TIL(Today I Learned) 깃허브 저장소에 학습한 것을 기록하는 활동입니다. 강의, 책 등으로 공부한 내용을 카테고리 별로 분류하여 정리하여 작성합니다. 일정이 바쁘더라도 책을 5페이지라도 읽고 기록합니다. 많이 하는 것보다 꾸준히 하는 것이 더 중요하다고 생각해 습관을 유지하고 있습니다.
개발자로서 가까운 미래에 제가 되고 싶은 모습은 팀과 함께 성장하는 개발자입니다.
IT 동아리에서 프로젝트를 처음 진행하는 팀원과 백엔드 개발을 담당했을 때의 경험을 소개하고 싶습니다. 저는 팀원을 도와주기 위해 업무 프로세스와 코딩 컨벤션을 문서화하여 전달했습니다. 또한 코드 리뷰를 통해 팀원의 PR에서 어색한 부분을 알려주고 개선하는 데 도움을 주었습니다. 반대로 팀원이 제 코드를 리뷰할 때 질문을 하나 이상 남기게 하여 설명과 학습의 기회를 제공했습니다. 이러한 과정을 통해 함께 서비스를 완성했고 동아리 내 시상에서 장려상을 수상할 수 있었습니다. 큰 도움이 되었다고 말해주는 팀원을 보며 제 작은 노력이 팀원과 팀의 성과에 기여했다는 사실에 기뻤습니다.
지금은 비록 신입이지만 앞으로 조직 내에서 협력과 소통을 장려하는 역할을 하며, 팀원들의 성장과 조직의 성장에 기여하는 개발자가 되고 싶습니다.