채용공고 올리기

차성원님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
차성원
직업
백엔드 개발자
간단 소개

Java, Spring 을 공부하는 백엔드 개발자 차성원입니다. ‘코더’가 아닌 ‘개발자’가 되기 위해 사용자의 관점부터 다양한 시각으로 문제를 바라봅니다. 단순 구현 이상의 좋은 코드에 대해 고민합니다. 원활한 협업뿐만 아니라 서로의 성장을 이끌어 낼 수 있는 소통의 중요성을 이해합니다.

포트폴리오

URL

link

개발 블로그

티스토리
link

GitHub

깃허브

기술 스택

기술 스택

Java, Spring, Spring Boot, Git, MySQL, JPA, mybatis, Redis, Docker, Spring Security

경력

회사명

현대오토에버(주)

직급 | 부서 | 근무 유형

책임 | 엔터프라이즈 | 재직 중

근무 기간

2024.09. ~ 재직 중 (6개월)

담당 업무

백엔드 개발 및 운영

  • ERD설계, 서버개발

    • 로그 적재 및 모니터링

    • 다국어 처리

    • 메모리, 메시지큐 관리 툴

  • 클라이언트 소통 및 유지보수

프로젝트

프로젝트명

BID (개인 경매 플랫폼)

소속/기관명

SSAFY

프로젝트 기간

2024.01. ~ 2024.02.

프로젝트 내용

GigHub : https://github.com/Team928/BID
Notion : https://henry-cha.notion.site/BID-0fddbc8ca9c14578b9c72383b9b64478?pvs=4
기간 : 2024년 1월 8일 → 2024년 2월 16일 (6주)
팀구성 : 백엔드3인, 프론트엔드3인
역할 : 팀장, 기획, 설계, 백엔드

React, Spring을 사용하여 개발한 PWA기반 ‘개인 경매 플랫폼’입니다.
openvidu를 활용한 라이브 스트리밍 기능을 경매에 도입하여, 개인 간의 경매거래에서 신뢰도를 높였습니다.
라이브 경매, 라이브 가이드라인 , 라이브 녹화, 녹화 STT, 내용 요약 등으로 사용자에게 즐겁고 편리한 ‘거래자 경험’을 제공합니다.

사용 기술

  • Java 17, SpringBoot 3.2.1, Spring Security, OAuth2, JWT
  • Spring Data JPA, Querydsl, MariaDB, MongoDB, Redis
  • AWS EC2, Swagger, Rest API
  • Git, Gerrit, JIRA

내 구현 내용

  • 공통 응답 객체 구현 및 ExceptionHandler를 사용한 에러 처리
  • Spring Security와 JWT를 활용한 인증/인가 처리
  • 추상화를 통해 다양한 OAuth2 소셜 로그인 구현
  • 외부 API를 활용하여 경매 라이브 녹화 영상 STT 및 내용 요약 구현
  • 거래(판매,구매) entity 다형성 활용가능한 설계 및 CRUD 구현
  • 스케쥴링을 통한 경매 시작 및 마감 구현
  • SSE를 사용하여 이벤트 푸시 알림 구현

어려웠던 경험, 문제 해결

[사진파일과 DTO 함께 RequestBody로 요청받기 (+ Swagger 문제) ]
문제 : 글 작성을 위한 데이터들과 사진데이터를 함께 받아 처리해야하는 상황이었습니다.
문자, 숫자 정보를 가지는 DTO와 이미지 파일을 요청바디로 받아와야하고, 사진은 null이 올 수 있도록 @RequestPart로 처리했지만, 테스트가 잘 되지 않았습니다.
원인 : Swagger에서는 여러타입을 한번에 보내는 방식을 지원하지 않아 테스트가 불가능했습니다.
해결 : octet-stream타입을 파싱해주는 컨버터를 만들어 이를 해결했습니다.
( 관련 포스팅 : https://devsungwon.tistory.com/entry/Spring-MultipartFile이-포함된-DTO-requestBody로-요청받기-swagger-요청 )

프로젝트명

HowLook (익명 패션 SNS)

소속/기관명

계명대학교

프로젝트 기간

2022.11. ~ 2023.06.

프로젝트 내용

GigHub : https://github.com/Team-WHITEBOX/HowLook-BackEnd
Notion : https://henry-cha.notion.site/HowLook-fdd43886b90e44218501628e7a8
기간 : 2022년 11월 1일 → 2022년 12월 13일 (6주)
2023년 3월 2일 → 2023년 6월 13일 (10주)
팀구성 : 백엔드4인, 프론트엔드2인
역할 : 팀장, 백엔드, 기획, 설계

Flutter, Spring으로 개발한 ‘익명 패션 SNS 앱’입니다.
익명 기반으로 자신을 드러내지 않고 패션과 관련된 활동을 할 수 있어 스타일링에 대한 진입장벽을 낮춰주고 패션에 관심 있는 누구나 이용할 수 있는 앱입니다.

사용 기술

  • Java 11, SpringBoot 2.7.5, Spring Security, OAuth2
  • Spring Data JPA, Querydsl, MySQL, MongoDB, Redis
  • WebSocket, rabbitMQ
  • AWS EC2, S3
  • Swagger, Rest API, Git

내 구현 내용

  • 공통 응답 객체 구현 및 ExceptionHandler를 사용한 에러 처리
  • Spring Security와 JWT를 활용한 인증/인가 처리
  • 자체 회원관리 + OAuth2 소셜 로그인 구현
  • 피드 게시글 CRUD 및 스크랩 구현
  • 패션 토너먼트 및 Scheduled를 활용한 랭킹 정산 구현
  • WebSocket과 RabbitMQ를 사용한 N:N 채팅방 구현
  • AWS EC2, S3 환경을 사용한 배포

어려웠던 경험, 문제 해결

[JWT RefreshToken]
문제 : 'RTK도 탈취가 가능하고, 추가정보 없이 단순검증으로 재발급이 가능하면 ATK와 같은 것 아닌가?'라는 생각과 함께 RTK의 효과에 대해 의문이 들었습니다.
해결 : 고민 끝에 정한 방식은 재발급 과정에서 ATK, RTK, DB정보 모두를 활용하여 검증하는 방식이었습니다. 만료된 ATK가 서버에서 발급한 토큰이 맞는지 체크한 뒤, ATK의 정보로 DB에 저장된 RTK와 요청받은 RTK를 비교하였습니다.
배운점 : 학습한 방식에 대해 의문을 가지고 활용법을 고민하는 과정은 이후에도 개발 사고력을 키우는데 많은 도움이 됐습니다.
( 관련 포스팅 : https://devsungwon.tistory.com/entry/Spring-JWT-refreshToken에-대한-고민-사용하기Redis )

교육

소속/기관명

계명대학교

종류 | 전공

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

재학 기간 | 재학 상태

2017.03. ~ 2023.08. | 졸업

소속/기관명

삼성 청년 SW아카데미

종류 | 전공

사설 교육 | Java Web개발

재학 기간 | 재학 상태

2023.07. ~ 2024.06. | 졸업

대외활동

활동명

새싹 해커톤

소속/기관명

개인

연도

내용

'생성형 AI를 활용한 사회적 약자와의 동행'을 주제로한 해커톤에 백엔드 개발자로 참여.

  • 주제 및 기능 기획

  • fastApi를 활용한 생성형 AI활용, 이미지 편집 개발

  • spring 백엔드 개발

  • 서버 배포 및 무중단 CI/CD

자격증

자격증명

SQLD

점수 | 발급기관

한국데이터산업진흥원

취득연월

2023.10.

자격증명

삼성 SW 역량테스트

점수 | 발급기관

Level B (pro) | 삼성전자

취득연월

2023.08.

자기소개

자기소개

백엔드 개발자

대학 교내 해커톤에 참여하여 웹 개발을 처음 접하고 수상한 경험으로 백엔드 개발에 흥미를 가지게 됐습니다.
백엔드의 문제를 고민하고 해결해 나가는 과정이 마치 퍼즐게임처럼 재밌게 느껴졌고, 서비스의 코어를 만든다는 성취감이 좋아 흥미가 생겼습니다.
당시 해커톤에 참여하여 간단한 교육을 들은 뒤, 이론과 문법적인 공부가 아닌 '진짜 개발'을 처음 경험해 보며 학습의 즐거움과 뿌듯함을 느꼈습니다. 흥미를 붙이니 빠르게 이해할 수 있었고, 최종적으로 해당 해커톤에서 최우수상을 받았습니다. 이 경험으로 백엔드 개발에 흥미와 자신감을 느끼게 되었습니다.

지향점

제 목표는 '의미 있는 개발자'입니다.
타깃, 요구사항, 등 문제의 핵심을 파악하고 사용자 경험을 고려한 SW개발을 통해 실제 사용자에게 편의를 제공하고 신뢰를 만들어 주고 싶습니다.
회사와 고객에게 의미 있는, 대체 불가능한 개발자가 되어, 긍정적인 영향력을 미칠 수 있는 인재로 성장하는 것이 향후 목표입니다.
그리고 이런 목표를 이루기 위해서는 넓은 관점으로 문제를 바라보며 흐름을 이해하고, 핵심을 파악하는 능력이 중요하다고 생각합니다.
항상 최종 사용자경험을 고려하며 실질적인 가치를 창출할 수 있는 대체 불가능한 개발자로 발전하여 회사에 기여하겠습니다.

강점

[향상심]
강한 향상심으로 지식이 쌓이고 발전하는 과정을 좋아합니다. Spring으로 처음 프로젝트를 진행할 때는, 깃허브에서 레퍼런스를 찾아 이해가 될 때까지 코드를 한줄한줄 분석했습니다. 모르는 것을 내 것으로 만들었을 때의 즐거움을 원동력으로 학습했고, 덕분에 요구사항을 만족하여 A+성적을 받았습니다. 새로운 기술을 학습하거나 타인의 코드를 분석하는 능력을 향상시킬 수 있었고, 이후에도 개발과 협업하는 과정에 크게 도움이 되었습니다.

[소통]
협업에서 소통의 다양한 기능과 중요성을 이해합니다. 소통을 단순히 업무분담과 진행상황 공유 목적으로 사용하지 않고, 함께 고민하고 배우며, 시너지를 얻어 성장하기 위한 과정으로 삼습니다. 웹, 앱 개발이 처음인 팀원들과 프로젝트를 진행할 때는 서로 학습한 내용을 공유하는 세미나 시간을 만들어 성공적으로 이끌었습니다. 또한 디자인, 심리, 트렌드 등의 뉴스레터를 구독하고 학습하며 인사이트를 넓히고, 소통능력을 키우고 있습니다.

[논리적인 사고]
논리적인 사고를 위해 객관적으로 상황을 분석하기 위해 노력합니다. 기획, 개발, 코드리뷰 등의 과정에서 각각의 방식에 대한 장, 단점을 먼저 고려하고 논의합니다. 이러한 과정으로 팀장과 PM의 역할도 맡으며 프로젝트를 이끌었습니다.

역량

[알고리즘 역량]
기술을 사용할 때는 항상 왜, 어떻게 동작하는 것인지에 대해 궁금해하고 찾아보는 습관이 있습니다. 이런 관심을 갖다 보니 자연스레 개발을 할 때도 좋은 코드에 대해 고민하게 되고, 알고리즘을 풀 때도 제 풀이방법 외에 다양한 풀이를 참고하며 최적화를 고민했습니다. 이런 과정으로 알고리즘 역량이 향상되어, 이후 삼성 SW역량테스트에서 Level B(pro등급)을 취득하였습니다.

[빠른 흡수력과 탐구심으로 개발 역량]
대학 졸업작품으로SNS앱을 개발하며 Spring, RDB, NoSQL, AWS 등을 활용한 경험이 있습니다. 당시 백엔드 개발에 대한 이해도가 부족했고 , 나머지 팀원들은 웹/앱 개발 경험이 없는 상태였습니다. 어려움을 해결하기 위해, 깃허브에서 레퍼런스를 찾아 이해가 될 때까지 코드를 한줄한줄 분석했습니다. 모르는 것을 내 것으로 만들었을 때의 즐거움을 원동력으로 학습했고, 덕분에 요구사항을 만족하여 A+성적을 받았습니다. 본 경험으로 새로운 기술을 학습하거나 타인의 코드를 분석하는 능력을 향상시킬 수 있었고, 이후에도 개발과 협업하는 과정에 크게 도움이 되었습니다.

[다수의 팀장 경험으로 리더십과 소통 역량]
따로 기획자, PM이 없어 팀장이 모두 도맡는 상황이 많았습니다. 진행에 막힘이 없도록 팀원들에게 기술을 알려주고 역할을 분배해 주며 팀원들과 함께 성장해 가는 리더로 노력했습니다. 이 과정에서 협업에서 소통의 다양한 기능과 중요성을 이해했습니다. 소통을 단순히 업무분담과 진행상황 공유 목적으로 사용하지 않고, 함께 고민하고 배우며, 시너지를 얻어 성장하기 위한 과정으로 삼습니다, 이를 위해서는 다른 의견을 받아들이는 자세와 참여 의지가 중요하다는 것을 느꼈습니다. 이후에도 팀장, 자치회 등을 도맡아 하며 리더십과 소통 능력을 키우고 있습니다.

댓글