미리보기
기본 정보

안녕하세요, 조직에서의 협업을 통한 행복(Eudemonia)을 추구하는 백엔드 개발자 박한수 입니다.
경력
주식회사카카오
재직 중
2024.01. ~ 재직 중 (1년 3개월)
(주)카카오
인턴 | 클라우드데이터플랫폼파트
2024.01. ~ 2024.02. (2개월)
2개월 동안 인턴으로써 근무하며, 속해있는 클라우드데이터플랫폼파트의 여러 제품들을 한 눈에 확인하고 관리할 수 있는 "Krint"라는 웹 서비스를 개발하는 과제를 맡았습니다.
1,2주차에는 팀원분들의 개발 모습을 참관하고 Go, React 등에 대해 학습하였으며
이를 바탕으로 3-8주차에 지라-스프린트를 활용하여 기획 - 서비스 개발 - 배포를 경험했습니다.
프로젝트
Krint - 팀 제품 관리 프로젝트
데이터플랫폼파트/카카오
2024.01. ~ 2024.02.
Krint는 파트 내의 다양한 제품을 한 눈에 확인할 수 있어야 하고 관리하기 편리해야한다는 요구사항에 입각하여 하나의 서비스에서 제품들의 아키텍처를 확인하고 정보를 관리할 수 있는 서비스입니다.
기획, UI/UX 설계, 프론트엔드 & 백엔드 개발 등 전 과정을 맡았습니다. (총 기여도: 50%)
스토리보드 기법으로 요구사항을 가시화했고, 이벤트 스토밍으로 구체적인 도메인과 기능을 팀원 간 동기화하였으며, 이후 Figma로 화면을 구체적으로 설계했습니다. 멘토분들의 피드백을 수용하여 "제품을 조회한다"는 핵심 기능에 맞춰 여러 기능을 설계했습니다.
개발 이전에 필요한 그라운드 룰, 코딩 컨벤션, 스프린트 룰, Git 전략 등을 직접 세우고 문서화한 후 이를 기반으로 서비스를 개발했습니다.
Typescript, Next.js 기반 조직 내 프론트엔드 템플릿인 create-kcp-template-v2와 kcp-ui를 활용해 일관성있는 웹페이지를 빠르게 구현했습니다. 아키텍처를 표현하기 위해 라이브러리를 조사한 결과, (1) MIT 라이센스이며 (2) 마우스를 통해 노드의 이동이 가능하며 (3) 노드를 원하는대로 커스텀할 수 있는 React Flow를 라이브러리를 적용했습니다. 전체 아키텍처를 조회하는 데 있어 불편함을 주는 일부 구성 구성요소를 특정 마우스 동작에만 보이도록 수정하여 사용성을 높였습니다.
Golang와 Golang에서 대중적이며 파트 내에서 주력으로 사용하는 Gin 프레임워크를 이용하여 백엔드를 구성했습니다. 디렉터리 구조 및 프로젝트 초기 설정, 환경 변수 셋업과 예외 처리 방식을 직접 설계 및 개발했습니다. 빈번히 변경될 데이터 구조와 복잡한 연관관계를 조회해야 한다는 어려움을 해결하기 위해 Neo4j를 도입하였습니다. Neo4j는 (1) Schemaless이고 (2) GraphDB에 속해 이러한 어려움을 해결할 수 있을거라 예측했습니다. 실제로 빈번한 데이터 구조 변경에도 쿼리 수정만으로 빠르게 대응할 수 있었고, depth 5의 조회를 2줄의 쿼리로 해결하는 등 큰 효과를 보았습니다. 다만 Driver의 부족한 에러 핸들링과 자료 부재로 개발 시간 소요가 컸고, 직접 DBMS를 운영해야 한다는 점, 고가용성 측면을 크게 고려하지 못했습니다.
사용자가 마우스 동작을 통해 제품 내 플랫폼이나 기술스택을(이하 컴포넌트) 표현하는 기능을 개발하고 컴포넌트 간 의존성을 설정하고 텍스트와 정보를 추가하는 기능을 개발했습니다. 사용자의 수정내역들은 버전별로 저장되고 조회할 수 있도록 했으며, 제품의 하위 제품을 표현하고 자동생성되는 링크를 통해 제품에서 하위제품으로 간편하게 이동할 수 있도록 했습니다.
팀 문화를 경험하며 커뮤니케이션을 통해 빠르게 문제를 해결하는 습관을 익혔으며, 학습 지식을 문서화하고 공유함으로써 나와 동료 모두 성장하는 방법을 배웠습니다. 7번의 스프린트를 통해 경험기반 의사결정 방식에 대해 습득했으며, 두 달간 10회 이상의 회의를 통해 빠르게 결론을 도출하는 방법을 찾았습니다.
이상입니다.
자기소개
대외활동
포트폴리오
교육
네이버/부스트캠프
사설 교육 | 소프트웨어
2021.07. ~ 2021.08. | 중퇴
한국기술교육대학교 (24.9 졸업 예정)
대학교(학사) | 컴퓨터공학부
2019.03. ~ 현재 | 재학 중
기술 스택
Java, Spring, MySQL, JavaScript