채용공고 올리기

차윤범님을 응원해보세요!

INFCON 참여
이직/구직 중이에요
책임감
협업 지향
효율적
신뢰
긍정적

미리보기

기본 정보

이름
차윤범
직업
백엔드 개발자
간단 소개

💡 반갑습니다! 3년 차 백엔드 개발자 차윤범입니다. - 개발을 수행할 때 개발만을 중시하는 것이 아닌, 서비스의 품질이나 개선 방향, 확장성 등 기획의 방향성을 고려하여 사용자에게 접근하고자 합니다. - 다양한 도메인에 적응하고자 여러 프로젝트에 참여하고 활동하여 적응력을 키우고 있습니다. - `코드 리뷰`에 대한 두려움보다는 재미를 느끼며 성장을 하고 있습니다. - 어려운 지식을 저만의 언어로 쉽게 풀어내 많은 사람에게 `지식을 전파`할 수 있는 사람이 되고자 합니다. - 언제든 `가능하다`라고 말하는 개발자가 되고자 합니다. - 다양한 방면의 기술을 공부하고 적용하는 데에 관심이 많습니다. - 레거시 프로젝트를 개선하는 것에 보람과 성취감을 느낍니다:)

기술 스택

기술 스택

Node.js, Spring Boot, JPA, NestJS, MySQL, Java, TypeScript, TypeORM, AWS, Go, Kotlin, webflux, PostgreSQL

경력

회사명

스페이스워크 주식회사

직급 | 부서 | 근무 유형

Backend Engineer | Product | 재직 중

근무 기간

2024.02. ~ 재직 중 (1년 1개월)

담당 업무
  • AI 건축분석 목록 조회 성능 개선

    • 문제: 전체 분석 기록에 대한 연관 테이블을 N만큼 SELECT 하는 성능 이슈

    • 유저별 AI 건축분석하였던 기록를 불러오는 쿼리에서 15~16초가량 응답 시간을 2~3초로 개선

    • 불필요 및 중복 filter, map 메서드 최소화

    • Cursor 페이지네이션 방식을 채택하여 lastId와 size를 QueryString으로 요청받아 Infinity Scroll 방식에 맞는 로직으로 개선


  • 사업성지표 분석 파일 PDF → JPG 파일 변환 (Serverless)

    • Spring 프로젝트에서 API 리소스 낭비를 줄이고자, Serverless 기술로 해결

    • AWS의 Lambda, API Gateway, S3를 사용하여 Lambda 함수 작성(Python) 및 계층 구성과 API Gateway를 사용한 배포 구성

    • S3를 사용한 이유는 List<String>으로 구성된 Base64 코드를 Response 하기엔 제한적이여서 S3의 Put, GetObject를 활용


  • 멤버십 결제 고객 해지 플로우 개선 및 할인 정책 수립

    • 멤버십 이탈율 개선을 위한 멤버십 및 쿠폰 사용 현황 표기

    • 멤버십 고객 대상 오픈채팅방 형성

    • 첫 멤버십 고객 중 해지 시 50% 할인이 가능한 모달을 통해 전환 시 다음 달 자동 결제 예약 생성


  • MSA 기반의 프로젝트 Gradle Build Cache 도입

    • Spring 프로젝트 내에 Github Actions gradle-build-action 도입으로 빌드 시간 7분 → 4분 30초 정도로 시간 단축


  • 연간/주간 Slack 알림 중복 보고 해결

    원인: 현재 MSA 구조의 EKS 여러 Pod 내에서 @Scheduled 를 사용하여 k8s 환경 각 Pod에 스케줄러가 실행되어 Pod 수만큼 메세지가 중복 전송되는 현상

    → 이를 해결하기 위해 AWS EventBridge 스케줄러와 Lambda를 활용하여 Schedule 어노테이션을 걷어 냈음


  • B2C 플랫폼 멤버십 에러 대상 Slack 메세지 전송

    • 멤버십 결제 고객 대상으로 에러가 발생된 케이스에 대해 Slack 메세지를 전달하는 API 엔드포인트 설계

    • 기존 Slack 라이브러리에서 attachments 변경 사항을 인터페이스 정의 후 리팩토링

회사명

(주)탑코

직급 | 부서 | 근무 유형

사원 | 해외백엔드개발팀

근무 기간

2022.04. ~ 2023.12. (1년 9개월)

담당 업무
  • 이상형 월드컵 서비스 개발

    • 백오피스 및 플랫폼 이상형 월드컵 페이지 구성할 CRUD 기능 개발

    • 이상형 월드컵 게임 리워드, 만화 이용권 지급으로, 어뷰징 체크와 동시성 이슈를 해결하여 사용자에게 하루에 한 번만 지급

      • 어뷰징은 기존 fingerprint 라이브러리를 사용한 방문자 고유ID를 검증

      • 검증된 ID 대상의 사용자 ID와 이용권 ID unique-index를 사용하여 동시성 이슈를 임시적으로 해결

    • 이상형 월드컵 진행 중 사용자의 행동 분석 및 지급 내역을 쌓는 로그 데이터를 MySQL 데이터베이스에 축적

    • 초기 MAU 26만 달성


  • 플랫폼 검색 서비스 개발

    • 최근 검색어에 대한 개발은 프론트엔드의 LocalStorage의 가장 최근 순으로 alasql 라이브러리를 활용해 개발

    • 인기 검색어는 DB에 누적된 검색 키워드 히스토리 Count를 SELECT 하여 가장 Count가 많은 순으로 Response

      • Explain 실행계획으로 다량의 rows와 latency를 확인하여 복합 인덱스를 사용


  • 앱 푸시 기능 개발 및 리팩토링

    AWS Lambda 목적인 Go 프로젝트에서 Lambda SDK를 사용하여 주마다 발송되는 푸시 알림 개발

    Topic 관리를 위해 백오피스에서 관리할 수 있는 기능 추가하여 Topic을 DB에서 관리

    조회된 Topic을 yml에 정의한 CRON 식에 맞춰 푸시 알림 전송


  • 통계 데이터 응답 시간 최소화

    원인: 각 이용권, 만화, 회차 등 사용된 결제 내역과 코인에 대한 데이터를 사내 백오피스 통계 페이지에 Response 하였지만, 최대 2000만 건에 달하는 데이터에 대한 지연 Latency 발생

    → 대용량 통계 DB 테이블에서 PK, INDEX, 복합 INDEX 활용 및 코드 리팩토링하여 실제 6~7초 페이지를 3초 정도 감소시켜 최적화

    [통계 페이지 로딩 속도 개선 회고]


프로젝트

프로젝트명

왈왈

소속/기관명

디프만

프로젝트 기간

2024.06. ~ 2024.09.

프로젝트 내용

💡 Project: 반려동물과 함께 미션을 수행하는 새로운 펫 커뮤니티 서비스

📌 반려동물과 함께하는 소중한 순간을 모두와 나눌 수 있는 세상으로 CTR(클릭율), CVR(전환율)을 통해 일상 기록뿐만이 아닌 미션을 함께 수행해 피드로 공유하여 커뮤니티 형성

📌 다양한 상호작용은 피드 체류시간을 늘리고 리액션 기능은 흥미를 유발할 것인 가설을 검증하여 리액션 기능 도입


개발 내용 및 역할

  • Spring 프로젝트 초기 구성

    • 도메인 레이어 아키텍처, 코드 포맷팅 pre-commit hook을 사용한 Spotless 포맷팅, Spring Actuator 구성

    • 코드 스멜 및 버그 체크를 위한 SonarCloud 연동

    • Redis 로컬 환경 구성

    • application yml 책임 분리

    • Querydsl의 버전이 5.0에서 업데이트 Stop되어, Openfeign에서 관리하는 Querydsl 6.0 + 사용

    • Mocking 데이터 활용을 위한 FixtureMonkey 도입

  • AWS Elastic BeanStalk 배포

    • docker-compose 내에 redis, nginx 등 컨테이너 배포 워크플로 작성 및 환경 변수 설정

    • 개발, 운영 서버 분리로, amd64에 따른 운영 서버 워크플로 별도 작성

    • 프리티어 메모리 부족으로 인한 메모리 스왑과 인스턴스 업그레이드

  • Docker Compose 배포로 전환

    • EB에서 반복적인 스왑 메모리 사용과 무리한 인스턴스 업그레이드로 인해 Docker Compose 방식으로 전환

    • ECR이 아닌 Docker Hub를 사용하여 비용 절감

    • 운영, 개발 서버 전환 워크플로 작성

    • Nginx conf를 사용한 로드 밸런싱을 CloudFlare로 대체

  • 소셜 로그인 및 회원가입 구현 (애플, 카카오)

    • Spring Security 환경 구성

    • RestClient 네트워크 통신 라이브러리 구성

    • Apple 로그인 - authorizationCode를 통한 id_token 추출 및 애플 유저 정보 조회

    • Kakao 로그인 - 카카오 서버 GET user/me 엔드포인트를 통한 유저 정보 조회

    • 소셜 로그인 유저 정보로 JWT 토큰 발급 및 회원가입 처리

    • Switch-Case 활용하여 Provider에 따른 소셜 로그인 처리

  • 팀 내 데일리 스크럼 도입 및 개발 문화 형성

    • Slack 리마인더를 활용해 팀 내부 일정 공유하도록 데일리 스크럼 제도 도입

    • Slack 스레드를 활용한 내부 커뮤니케이션 형성 및 Merge, CI 단계 Slack 웹훅 알림 이벤트 추가

    • iOS - Backend 파트 간 작업 단위 스쿼드 형성

    • Notion 칸반보드를 사용하여 태스크 및 일정 공유 커뮤니케이션 형성

  • 모니터링 구축

    • Prometheus, Grafana를 위한 별도 모니터링 서버 구축

    • Grafana 시각화에 대한 UI 커스텀

    • Loki, Promtail를 통한 logging

  • 댓글 기능 구현

    • 댓글, 대댓글 추가 및 조회 기능

    • 대댓글 시 self join을 통한 부모 댓글, 자식 댓글 추가하도록 설계


프로젝트명

세종피어

소속/기관명

개인

프로젝트 기간

2024.01. ~ 진행 중

프로젝트 내용

개발 내용 및 역할


세종대학교 재학생들만을 위한 캠퍼스 네트워킹 서비스

Backend Contribute

  • Spring 프로젝트 구성

  • 코드 컨벤션 Spotless 도입

  • 세종대학교 학생 인증 Webclient 적용

  • AWS EC2 + CodeDeploy + Docker 배포 및 Nginx 구성

  • Spring Actuator 적용 및 Grafana + Prometheus 모니터링 도입


Frontend Contribute

  • S3 정적 웹 사이트 배포 워크플로 작성

    • CloudFront, ACM, Route53 구성

  • 아이디/패스워드 검증 방식 수정

  • eslint, prettier 구성

프로젝트명

10분만

소속/기관명

디프만 14기

프로젝트 기간

2023.11. ~ 2024.02.

프로젝트 내용

💡 Project: 최대 집중 시간이 짧은 2030을 위한 10분의 미션으로 습관형성하는 서비스

저희는 다양한 목표를 갖고 꾸준히 작은 시간을 투자하면서 자기 발전을 원하는 사람들에게 도움을 줄 수 있는 서비스를 생각했습니다. 그래서 조금 더 쉽게 자신의 목표를 달성하게 하고, 매일매일 유지하며 이를 습관화 하도록 하는 서비스를 디자인하였습니다.
그래서 초기 가설로 10분이라는 짧은 시간이 습관을 형성하기에 최적의 시간이라 생각하고, 부담이 적은 10분이라는 짧은 시간을 투자하여 미션을 수행하는 방식의 자투리 시간 활용 서비스를 서비스의 방향성으로 잡았습니다.

개발 내용 및 역할


Backend Contribute

  • 프로젝트 초기 세팅

  • Naver Cloud 배포 환경, CORS, 스토리지 환경 구성

  • Swagger 초기 세팅

  • Jacoco + SonarCloud 코드 커버리지 분석 도입

  • 미션 및 미션 기록 도메인 개발

    • DTO 컨벤션 Class가 아닌 Java 17의 Record 사용

  • 테스트 코드 최적화 및 트랜잭션 격리

    • Database Clean 중복 코드 개선으로 JUnit Extension 활용 및 AutoDetection 도입

  • 피드 탭 무한 스크롤에 따른 No-offset 구현

    • 여러 Proxy 객체를 참조하는 현상으로 Select 쿼리를 줄이고자 Projections을 활용하여 단 쿼리 Querydsl로 리팩토링

  • 미션 재촉 및 리액션 등 도메인 활용에 따른 FCM 푸시 알림 도입

    • sendMulticastAsync Deprecated로 인한 sendEachForMulticastAsync 으로 다중 푸시 알림 구현

  • Naver Cloud → AWS 마이그레이션

    • Object Storage → S3 데이터 마이그레이션

    • CloudFront 적용

  • 랭킹 API 개발

    • 초기 랭킹 데이터 생성과 갱신을 위해 insert duplicate Native-Query를 활용


Frontend Contribute

  • 문의 채널 버튼 컴포넌트 추가

  • 무한 스크롤 피드 v2 API 연결 및 개선

  • AWS 마이그레이션 중 점검 시간 활성화


10MM 성과
  • 1차 MVP 이후 141건의 QA 처리

  • 디스콰이엇 트렌딩 프로덕트 2등

  • Max DAU 440 달성

  • 총 회원 수 800명 이상 유입


Product Link

📌 앱스토어

https://apps.apple.com/kr/app/10분만-10mm-10분으로-시작하는-습관-형성/id6475635740

📌 구글 플레이 스토어

https://play.google.com/store/apps/details?id=com.tenminuteapp&hl=ko

📌 웹 사이트

https://www.10mm.today/

프로젝트명

개인 블로그 프로젝트

소속/기관명

개인

프로젝트 기간

2023.03. ~ 2023.10.

프로젝트 내용

개요: 개인 블로그를 직접 CRUD 및 AWS 인프라를 구축하면서 학습하고자 하는 프로젝트

사용 기술: Java 17, Spring boot, JPA, AWS, Spring Security

개발 내용

  • Spring Data JPA로 게시글, 댓글 API 구현
  • 게시글과 댓글 스키마는 1:N 일대다 매핑으로 1+N 이슈를 해결하고자 Fetch join 활용
  • 게시글 내용은 MarkDown Editor 라이브러리 사용하여 작성 가능하도록 개발
  • Spring Security에서 JWT 토큰으로 인증 구현, 토큰은 Session Storage에서 관리
  • Vue.js를 활용하여 게시글, 댓글, 로그인/로그아웃 페이지 기능 구현
  • SCSS 활용한 반응형 디자인
  • CodeDeploy - EC2를 통한 자동 배포, 프론트엔드는 S3 정적 웹 호스팅을 사용한 자동배포(배포 시 즉시 반영을 위한 CloudFront 캐시 무효화 활용) 구현
프로젝트명

ESL을 활용한 스마트오피스

소속/기관명

세종대학교

프로젝트 기간

2021.09. ~ 2021.12.

프로젝트 내용

스마트 오피스에서 활용하는 기업 내부 좌석 및 회의실 배치와 예약을 관리하는 서비스입니다.
사용자가 예약한 좌석 및 회의실의 정보를 자동으로 읽어서 연결된 ESL Tag에 노출되는 방식입니다.

사용 기술: Typescript, NestJs, AWS

  • 좌석, 회의실, 시설 등 DB 스키마 정의
  • 회의실 및 좌석 등록, 질의, 답변 등등, REST API 개발
  • Swagger API 문서 작성

포트폴리오

URL

link

왈왈 서버 깃허브

깃허브
link

velog 블로그

URL 링크
link

10분만 서버 깃허브

깃허브
link

개인 깃허브

깃허브
link

Notion 이력서

노션
link

Tistory 블로그

티스토리

교육

소속/기관명

세종대학교

종류 | 전공

대학교(학사) | 컴퓨터공학과

재학 기간 | 재학 상태

2020.03. ~ 2022.02. | 졸업

소속/기관명

숭실대학교 전산원

종류 | 전공

대학교(학사) | 컴퓨터공학전공

재학 기간 | 재학 상태

2015.03. ~ 2019.02. | 졸업

소속/기관명

여의도고등학교

종류 | 전공

고등학교 | 인문계

재학 기간 | 재학 상태

2012.03. ~ 2015.02. | 졸업

대외활동

활동명

SIPE 3기

소속/기관명

SIPE

연도

내용
활동명

글또 10기

소속/기관명

글또

연도

내용

글쓰는 또라이 모임

활동명

디프만 15기

소속/기관명

디프만

연도

내용

디프만 15기 활동에 참여하여 팀장 및 백엔드 파트 리드를 담당
왈왈이라는 프로젝트로 반려동물 커뮤니티 서비스 개발

주제 선정부터 기획 및 빌딩 후 요구사항에 따른 도메인 개발 및 인프라 구성


인프런 스터디 활동 (스터디장)

IT 동아리 내에 인프런 스터디 구성

  • Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트 강의를 선정하여 스터디 원 모집

  • 스터디 그라운드 룰과 코드 실습환경 구성

  • 주 1회 강의 수강 후 한명씩 발표 후 토픽에 대한 의견 제시 및 토론

  • 의존성 역전 법칙에 따른 Testability를 어떻게 올리는가?

  • 도메인과 영속성 객체 분리로 도메인 객체 테스트

  • 왜 헥사고날 아키텍처를 사용하는 지 레이어드 아키텍처와의 비교 후 적용

활동명

디프만 14기

소속/기관명

디프만

연도

내용

디프만 14기 활동에 참여하여 팀에서 백엔드 서버 개발 파트를 담당
10분만이라는 프로젝트로 하루 10분 습관형성 서비스 개발

인프런 스터디 1등 수상

인터뷰 링크

자격증

자격증명

정보처리산업기사

점수 | 발급기관

등급없음 | 한국산업인력공단

취득연월

2018.11.

자격증명

정보처리기사

점수 | 발급기관

등급없음 | 한국산업인력공단

취득연월

2021.06.

자기소개

자기소개

안녕하세요 3년차 백엔드 개발자 차윤범입니다!

  • 개발을 수행할 때 개발만을 중시하는 것이 아닌, 서비스의 품질이나 개선 방향, 확장성 등 기획의 방향성을 고려하여 사용자에게 접근하고자 합니다.

  • 다양한 도메인에 적응하고자 여러 프로젝트에 참여하고 활동하여 적응력을 키우고 있습니다.

  • 코드 리뷰에 대한 두려움보다는 재미를 느끼며 성장을 하고 있습니다.

  • 어려운 지식을 저만의 언어로 쉽게 풀어내 많은 사람에게 지식을 전파할 수 있는 사람이 되고자 합니다.

  • 언제든 가능하다라고 말하는 개발자가 되고자 합니다.

  • 다양한 방면의 기술을 공부하고 적용하는 데에 관심이 많습니다.

  • 레거시 프로젝트를 개선하는 것에 보람과 성취감을 느낍니다:)


🛠 Available Skills.

  • Front-End: JavaScript, TypeScript, React.js, Next.js, React Query, Vue.js 3.0

  • Back-End: Java, Kotlin, Typescript, Node.js

    • Spring Boot, Spring Data JPA, Querydsl, Spring Security, Spring WebFlux, Nestjs(TypeORM)

    • AWS: EC2, S3, Lambda, CloudFront, CodeDeploy, RDS, Load Balancing, Route53, ACM, IAM

    • Naver Cloud Platform: Server, Container Registry, Source Deploy, Object Storage, Load Balancer, Cloud for Redis

  • Database: MySQL, Postgres, Redis

  • Monitoring: Datadog, Prometheus - Grafana, AWS CloudWatch, NewRelic

  • IDEs: IntelliJ, Vscode, Webstorm

  • Version Control: Git

  • Communication & Collaboration: Notion, Slack, Jira

댓글