미리보기
기본 정보

모르는 것을 배우는 거에 즐거움을 느끼는 취업 준비생 김동오 입니다.
자기소개
모르는 것이나 배워야 하는걸 서스럼 없이 학습하려고 합니다!
SBS 컴퓨터 아카데미에서 처음 개발을 접하여 공부를 하였고 수료하고 나서 개인적으로 기량이 많이 부족하다고 느꼈습니다.
정말 딱 게시판을 만들 수 있을 정도의 CRUD만 배운 수준이라고 판단이 되었고 이렇게 현업에 발을 들이면 분명히 오래동안 현업에 있지는 못하겠다라는 판단을하여 인프런에서의 학습과 사이드 프로젝트 참여, 프로그래머스 데브코스 참여를 하게되었습니다.
그로 인해 스프링과 JPA만 알고 있었던 제가 얕은 지식이더라도 Querydsl, Redis, SpringSecurity, OAuth2, Github, Confluance, Jira, Next.js, Typescript 등을 경험을 하게 되었고 조금은 응용해서 사용할 줄 아는 개발자가 되었다고 생각합니다.
협업할 때 좋은 의견이 있거나 프로젝트에 적용하면 좋겠다 하는 기술들은 공유합니다.
아래에도 기술하였지만 AllLink라는 첫 사이드 프로젝트에서도 Confluence, Jira 도입을 건의했고 Jira 이슈 및 요구사항 정의를 직접 만들어서 프로젝트 진행 순서 및 관리를 편하게 할 수 있게 하였습니다.
프로그래머스 사이드 프로젝트 기간에는 팀원들에게 브랜치 전략, PR, 이슈, 요구사항 정의 등의 방법을 팀원들에게 공유해주었고 그로 인해 협업이 처음이었던 팀원들이 협업에 큰 부담을 느끼지 않게 되었고 초반부터 순차적으로 진행이 원할하게 되었습니다.
기술 스택
Java, Spring, Spring Boot, JPA, TDD, MySQL, GitHub, Docker, JIRA, Confluence
교육
(주)그렙
사설 교육 | 프로그래머스 클라우드 기반 백엔드 엔지니어링 데브코스
2024.11. ~ 현재 | 재학 중
인프런
사설 교육 | 우아한형제들 최연소 기술이사 출신 김영한의 스프링 완전 정복
2023.10. ~ 2024.02. | 수료
인프런
사설 교육 | 김영한의 스프링 부트와 JPA 실무 완전 정복 로드맵
2023.07. ~ 2023.09. | 수료
SBS 컴퓨터 아카데미
사설 교육 | 웹개발
2022.01. ~ 2023.06. | 수료
프로젝트
커피 메뉴 관리 시스템
사이드 프로젝트
2025.01. ~ 2025.01.
설명
프로그래머스 데브코스 1차 프로젝트이며 커피 주문 및 관리자 페이지 구현이라는 기능 요구사항이 주어졌고 토대로 완성 후 추가 기능을 더 구현하여 완성시켰습니다.
백엔드 & 프론트엔드 & 프로젝트 기간내 팀장
백엔드 기능 일부를 담당하였고 프로젝트 기간 내 팀장 역할을 수행하였습니다.
기여
팀장
각 기능 요구사항 정의를 맡아서 하였습니다.
기능 요구사항 정의에 기능 ID를 이용하여 PR, Issue, Branch 명에 붙이도록 하였고 소통시 기능 ID를 이용하여 어떤 파트를 담당하고 있는지 빠르게 파악할 수 있게 하였습니다.
기능들이 완료되어 PR이 올라오면 최종 검토를 담당하였습니다.
Github Webhook을 이용하여 PR시 디스코드로 알림을 전송하여 수업 시간 외에도 빠르게 확인할 수 있게 하였습니다.
각 파트별 진행 상황을 수시로 확인하며 조금 진행이 늦는 팀원이 있으면 해당 팀원의 파트를 도와주면서 일정 내에 프로젝트를 완성하였습니다.
백엔드
공통
이메일 전송 기능
비동기로 이메일 전송을 구현하였고 사용자 응답성을 높였습니다.
처음엔 회원 서비스에서 이용할 템플릿에 파라미터를 설정해 메일 서비스를 호출하게 구현을 해놨으나 회원 서비스에 단일 책임 원칙이 지켜지지 않아서 메일 서비스에 해당 로직을 옮겨 단일 책임 원칙을 준수하게 리팩토링 하였습니다.
Scheduler
스케줄러를 사용하여 전날 오후 2시부터 당일 2시까지의 주문을 배송 시작 처리로 변경하고 해당 주문을 한 사용자에게 주문을 시작했다는 이메일을 발송하는 기능을 구현하였습니다.
회원 파트
비밀번호 재설정 및 이메일 인증 기능
Redis를 사용해 인증 코드에 시간을 설정하여 관리하였고 DB보다 빠른 처리 속도를 이용하여 응답성을 높였습니다.
프론트엔드 (관련 지식이 깊이있지는 않아 간략하게만 작성하였습니다.)
Next, TypeScript, React 사용
공통 파트
메인 페이지 기능을 구현하였습니다.
회원 파트
내정보, 비밀번호 재설정, 회원 정보 수정, 주문 내역 등의 기능을 구현하였습니다.
상품 파트
상품 상세 조회 기능을 구현하였습니다.
AllLink
사이드 프로젝트
2024.05. ~ 2024.10.
설명
ALLLINK는 기존에 사용자가 URL을 저장할 때 주로 카카오톡 개인 메시지에 복사 붙여넣기 방식으로 저장하던 불편함을 해소하기 위하여, 사용자가 URL을 쉽게 저장하고 관리할 수 있도록 하며, URL을 다른 사람들과 간편하게 공유할 수 있도록 지원하는 것을 목표로 삼음용 기술
역할
백엔드
백엔드 기능 일부를 담당하여 진행하였습니다.
기여
백엔드
회원가입 파트 담당
SpringSecurity + JWT를 사용하여 회원가입 구현하였습니다.
Redis를 사용해 JWT를 관리하였고 블랙리스트도 구현하여 로그아웃 후 토큰 재사용시 악용을 방지하였습니다.
이메일 전송 및 인증 담당
Redis를 사용해 인증 코드에 시간을 설정하여 관리하였고 DB보다 빠른 처리 속도를 이용하여 응답성을 높였습니다.
컨트롤러 단위 테스트
컨트롤러 단위 테스트를 작성하였고 Swagger + RestDocs를 활용해 API 문서화를 진행하였습니다.
요구사항 문서화
Confluence, Jira에 요구사항을 문서화하여 팀원 간에 소통 및 프로젝트 관리 효율을 향상 시켰습니다.