채용공고 올리기

고청천님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
고청천
직업
백엔드 개발자
간단 소개

- 성능 최적화를 위해 고민한 결과, TPS를 2배 향상시켰습니다 - 반복되는 로직은 메서드화하여 재사용성 높은 코드를 작성합니다. - 팀의 문제를 제 문제로 생각하며 함께 해결하고자 노력했습니다

기술 스택

기술 스택

Java, Spring Boot, MySQL, JPA

프로젝트

프로젝트명

my-storage

소속/기관명

개인

프로젝트 기간

2023.10. ~ 진행 중

프로젝트 내용

링크 : https://github.com/C4-ComeTrue/my-storage/tree/base/chung

파일 시스템이 트리 구조인 것을 적극 활용

  • 파일/폴더 이동 시 노드 연결 재정의 하는 것처럼 상위 폴더의 값만 수정
  • 하위 폴더/파일 경로 모두 바꿔야할 문제 해결
  • 폴더 삭제 시 DFS 방식 사용
  • BFS 대비 메모리 관점에서 우수
  • Stack 이용해 구현 ( StackOverflowError 고려 )

커서 기반 페이지네이션 도입

  • 폴더 조회 시 하위 모든 파일/폴더 조회 시 메모리, 응답 속도 문제 존재
  • 페이지네이션 도입
  • Offset 비해 성능상 이점 (500000 건의 데이터 존재 시 최대 API 응답 속도 5초 차이)

트랜잭션 범위 최소화

  • 파일 메타 데이터 저장 로직에만 트랜잭션 설정
  • 실제 파일 업로드는 트랜잭션과 다르게 동작하기 때문

파일 삭제 전략

  • 메타데이터 삭제와 실제 파일 삭제 동기화 문제 발생
  • Dangling pointer 전략 도입

경로 순회 문제

  • 사용자 파일/폴더 이름 저장 시 다음과 같이 보완 문제 존재
  • 경로 정규화를 통한 해결
프로젝트명

TickekEase

소속/기관명

기타

프로젝트 기간

2023.08. ~ 2023.10.

프로젝트 내용

링크 : https://github.com/f-lab-edu/TicketEase

가용 자원을 고려한 동시성 이슈 해결

  • 단일 서버 환경 (vCPU 2, 메모리 8GB)
  • 외부 도구 도입에는 어려움, 네트워크 비용 존재
  • Java의 ReentrantLock에 true 옵션을 통해 구현

티켓 결제 TPS 약 2배 향상

  • 블로그 링크 : https://gree-me.tistory.com/9
  • 타 API 대비 티켓 결제 API 성능이 60% 낮음
  • 쓰레드 수를 늘려봐도 동일 → 락이 과도하게 잡혀있다는 결론
  • ConcurrentHashMap을 도입
  • Bucket 별로 동기화 진행하여 HashMap에 비해 성능상 이점

포트폴리오

첨부파일

첨부파일명

고청천_이력서_자기소개서_포트폴리오.pdf

대외활동

활동명

삼성SW아카데미

소속/기관명

삼성전자

연도

내용

3번의 프로젝트 진행을 통해 개발 역량 향상
각 프로젝트에서 Java, Kotlin, Spring Boot, Android 를 이용해 개발 진행
알고리즘과 웹 기반 교육을 통해 문제 해결 능력 향상

자격증

자격증명

OPIc

점수 | 발급기관

IM1 | ACTFL

취득연월

2023.03.

자기소개

자기소개

“사용자 만족을 개발”
저의 궁극적 목표는 사용자에게 편안함을 주는 서버를 개발하는 것입니다.
우연히 듣게 된 IT 세미나에서 사용자 만족을 위해 복잡한 로직을 만들고 고민하는 개발자에게 매료되었습니다. 저 역시 그러한 개발자가 되고자 마음먹었고 이를 위해 탄탄한 기본기와 프로젝트 경험이 필요하다고 생각했습니다.
이를 위해 2년간 2개의 컴퓨터 과학 학습 모임에 운영하고 참여하였습니다. 또한 2년간 알고리즘 스터디를 운영하여 Solved 기준 상위 3% 정도의 실력을 갖추게 되었습니다. 그리고 7개의 팀 및 개인 프로젝트를 진행하여 개발 능력을 쌓아왔으며 삼성 SW 아카데미 프로젝트 우수상을 수상하였습니다.

"감정을 고려한 부드러운 코드 리뷰 문화"
코드 리뷰 시 부드러운 텍스트 전달 방법을 통해 팀원 간의 갈등을 감소시킨 경험이 있습니다. 팀 프로젝트를 진행하던 중, 코드 리뷰로 인해 팀원의 감정이 상했다는 것을 알게 되었습니다. 이는 코드 리뷰가 글로 이루어진 소통이기 때문이었습니다. 말과 다르게 표정과 음의 높낮이가 없어, 저의 표현이 다소 딱딱하고 공격적으로 전달되었던 것입니다.
이를 해결하기 위해, 우선 동료와 이야기를 나누었습니다. 본래 의도에 대해 먼저 이야기하며, 동료에게 생긴 감정의 골을 없애고자 했습니다.
이후, 주요 기업들과 다른 프로젝트의 코드 리뷰 사례를 분석하였습니다. 그 결과, 부드러운 텍스트 전달을 위해 이모지와 상대 코드 의도를 물어보는 방식을 취하고 있었습니다. 이를 프로젝트 코드 리뷰에 적용해 성공적으로 프로젝트를 마무리하였습니다.
해당 경험을 통해 말과 글은 다르다는 것을 느꼈습니다. 글을 통해 의견을 전달할 때는 곡해되지 않도록 고려할 필요가 있다는 것을 알게 되었습니다. 또한, 의사소통 과정에서 생긴 문제는 진솔한 대화를 통해 해결하는 것이 좋다는 것을 배웠습니다. 솔직함을 통해 문제의 원인을 빠르게 분석할 수 있고 적절한 해결 방법을 찾을 수 있었기 때문입니다.

댓글