채용공고 올리기

권지환님을 응원해보세요!

이직/구직 중이에요

미리보기

기본 정보

이름
권지환
직업
백엔드 개발자
간단 소개

어떤 문제를 마주하더라도 포기하지 않고 끝까지 물고 늘어져서 반드시 해결하는 백엔드 개발자 권지환입니다! 이런 성향으로 공모전에서 수상하였고 성능 개선 및 업무 효율성 개선 경험이 있습니다. 코드 리뷰 및 팀원들의 피드백을 적극 수용하고 새로운 기술 습득을 좋아합니다.

자기소개

자기소개
저는 이런 사람입니다!
  • '근본적 원인'을 탐구하는 열정적인 백엔드 개발자 권지환입니다.

  • 구름 풀스택 개발 성장 과정을 최우수 팀으로 완수하며 탁월한 역량을 입증하였습니다.

  • 한국정보방송통신대연합 주관 공모전에서 동상을 받았습니다.

  • 이미지 등록 프로세스의 처리 시간을 15초 단축, 시스템 성능을 획기적으로 개선하였습니다.

  • Git Action을 사용하여 배포 자동화를 구현하여 업무 효율성을 극대화한 경험이 있습니다.

기술 스택

기술 스택

Java, python3, Kotlin, AWS, MySQL, MongoDB, GitHub, spring-framework

경력

회사명

소셜라우더

직급 | 부서 | 근무 유형

사원 | 개발 부서

근무 기간

2022.12. ~ 2023.09. (10개월)

담당 업무
  • DB 설계 및 관리

  • 백엔드 개발

  • 배포 자동화 및 AWS 서버 구축

프로젝트

프로젝트명

무비보드

소속/기관명

소셜라우더

프로젝트 기간

2023.04. ~ 2023.07.

프로젝트 내용

프로젝트 소개

  • 영화 관람 후 반응을 수집하여 감정 분석 API를 통해 긍, 부정 수치로 수치화

프로젝트 필요성과 목표

  • 영화 개봉 후 수집한 데이터의 긍, 부정 수치를 통해 영화의 전체적인 후기 확인 가능

  • 영화 홍보에 고용하는 인플루언서 명단 확인 수월

  • 인플루언서 고용 시 지출하는 비용 견적을 확인 가능

  • 영화 제목과 날짜를 입력하면 기간에 맞는 영화에 대한 긍, 부정 수치를 도표화 하여PDF로 저장 가능

구현한 내용

  • 프로젝트 기획 및 DB 설계

  • AWS 환경 구축

  • 검색 필터 구현

  • 인플루언서 시스템 적용

  • 배포 자동화로 인한 업무 효율성 증가

  • 웹 크롤링

프로젝트 진행 중 발생한 이슈 이슈 페이지로 이동

  • MongoDB 동적 필터링 구현 중 발생한 이슈

    • 유지보수의 수월함을 위해 ORM을 Querydsl과 JPA로 결정

    • 프로젝트 진행 과정에서 MongoDB에서 데이터를 필터를 거쳐 Find 하는 기능을 구현하고자 함

    • MongoDB로 select 쿼리 전송 오류 발생으로 Criteria를 사용하여 기능 구현

프로젝트 퀄리티 향상을 위한 나의 고민과 노력

  • ORM 변경

    • MongoDB 검색 필터 구현 중 오류로 인해 Querydsl이 아닌 Criteria를 사용하여 구현

    • Criteria는 좋지 않은 가독성과 불안전한 기술로 실무에서 사용을 꺼려한다는 내용 습득

    • 이 후 MongoDB에 있는 데이터를 Querydsl로 find하는 기능 구현

  • MongoDB 백업

    • 크롤링한 데이터들은 EC2에 구축한 MongoDB에 저장

    • 데이터 손실 및 빠른 복구를 위해 데이터 백업

    • 매일 자정에 데이터를 백업하여 AWS S3에 파일 저장

프로젝트명

러닝 플래닛

소속/기관명

사이드 팀 프로젝트

프로젝트 기간

2024.05. ~ 진행 중

프로젝트 내용

프로젝트 소개 소스코드로 이동

  • 산책 및 러닝으로 소모한 칼로리 측

  • 크루 또는 개인 미션을 수행 시 부여된 황폐화된 행성을 살리는 게이미피케이션 도입

프로젝트 필요성과 목표

  • 러닝 목표 거리를 성취했을 때 수치가 아닌 이미지를 통해 시각적으로 성취도를 확인 가능

  • 러닝 거리에 따라변화하는이미지를 통해 시각적인 즐거움 및 100% 진행 되었을 때 이미지 변화에 대한 기대감으로 러닝 빈도 증가

구현한 내용

  • 프로젝트 기획 및 DB 설계

  • 게시글 작성 및 수정 기능 구현

    • BulkInsert로 구현하여 시간 단축 (73초 -> 58초)

  • 댓글 기능, 좋아요 기능

  • AWS S3 환경 구축

    • 게시글 작성 시 업로드한 이미지를 S3에 저장 및 삭제 기능 구현

  • 행성 진행도 구현

    • 사용자가 이동한 거리 및 경험치에 따라 행성 이미지 변경 구현

  • 랭킹 시스템 구현

    • 요청에 대해 동적으로 처리 하기 위해 Querydsl을 사용하여 크루 및 개인 랭킹 조회 구현

  • 예외 처리

    • Controller Exception Advice를 사용하여 예외처리 형식을 통일

  • 테스트 코드 환경 구성

    • 테스트 시 S3에 접근을 줄이기 위해 interface를 활용하여 mock 이미지 URL 반환

프로젝트 진행 중 발생한 이슈 이슈 페이지로 이동

  • Soft Delete 기능 구현 후 테스트 실패

    • Delete시 DB에서 데이터 삭제가 아닌 deleted_at의 값을 null에서 현재 시간으로 update하는 soft delete로 구현

    • Entity 클래스에서 @SQLDelete와 @SQLRestriction을 사용

    • @SQLRestriction 조건에 "deleted_at is null" 넣음

    • 게시글 삭제 테스트 작성 시 tearDown 메서드에 deleteAllInBatch에서 Repository가 정리 되지 않아 오류 발생

    • JPA가 아닌 JdbcTemplate을 사용하여 tearDown 메서드 구현

    • @SQLRestriction 조건에 걸리지 않고 delete가 되어 테스트 통과

프로젝트 퀄리티 향상을 위한 나의 고민과 노력

  • 이미지 저장 로직 변경

    • 게시글 작성 시 이미지 등록을 할 경우 한 개의 이미지가 아닌 여러 이미지 등록이 가능

    • JPA를 사용하여 이미지 저장 로직 구현 시 이미지의 개수 만큼 Insert 쿼리 전송

    • 트래픽이 많을 경우 성능 저하 우려

    • Jmeter를 사용하여 100명의 사용자가 10장의 사진을 등록을 가정하여 부하 테스트 진행

      • JPA: 73초 소모

    • JdbcTemplate을 사용하여 BulkInsert를 구현하여 InsertAll로 로직 변경

    • 같은 조건으로 부하 테스트 진행

      • JdbcTemplate: 58초 소모

      • 15초 시간 단축

    • 성능 개선을 확인 후 JPA에서 JdbcTemplate BulkInsert로 로직 변경

프로젝트명

CodeyThon

소속/기관명

사이드 팀 프로젝트

프로젝트 기간

2024.03. ~ 2024.05.

프로젝트 내용

프로젝트 소개 소스코드로 이동

  • 코딩 테스트 및 알고리즘 공부를 위해 WebIDE 사용

  • 같이 공부할 수 있는 환경 제공 및 게임화를 도입하여 흥미 유도

프로젝트 필요성과 목표

  • 기존 알고리즘 공부 사이트 이용 중 같이 공부할 수 있고 채팅을 통해 아이디어를 제안할 수 있는 기능이 필요함

  • 게이미피케이션을 도입하여 알고리즘 해결 속도 및 정답률에 따라 순위 결정을 하여 흥미 유도

  • 순위에 따라 경험치를 차등 지급하고 메인 페이지에 전체 순위를 보여주어 경쟁심 유도

구현한 내용

  • 프로젝트 기획 및 DB 설계

  • 회원 가입 및 로그인 구현

    • 회원 가입 시 비밀 번호는 bcrypt로 암호화 하여 DB에 저장

  • STOMP를 활용한 게임 환경 구현

  • 문서 관리

    • 서브 모듈을 활용하여 application.yml 파일 관리

  • 예외 처리

    • Controller Exception Advice를 사용하여 예외처리 형식 통일

프로젝트 진행 중 발생한 이슈 이슈 페이지로 이동

  • Spring Security 적용 후 모든 error 상태 값 403 문제 해결

    • Spring Security를 적용 후에 모든 에러의 상태값이 403으로 통일 되는 현상 발생

    • 보안상 기본적으로 모든 요청을 차단하는 특성을 파악하여 http 접근 제어 설정에 "/error" 추가

  • 테스트 환경 정보가 없어서 빌드 시 테스트 실패 문제 해결

    • 배포 클라우드 특성 상 원격 저장소에 있는 프로젝트 파일을 clone후 build하여 실행

    • build시 실행되는 테스트 과정에서 DB 정보가 없어 테스트 실패 및 build 실패

    • private인 서브 모듈을 추가하여 build시 DB 정보를 찾을 수 있도록 하여 문제 해결

  • 소켓 연결 시 connect 후 바로 disconnect 현상 발생

    • 프론트에서 소켓 연결을 요청을 보낸 후 바로 disconnect 됨

    • JWT 토큰 검증 하는 인터셉터가 없어 발생하는 오류로 판단

    • StompHandler에 인터셉터를 추가하여 JWT 검증 로직 추가

    • http 접근 제어 설정에 "/ws/**" 추가하여 문제 해결

프로젝트 퀄리티 향상을 위한 나의 고민과 노력

  • 랭킹 시스템 Batch 시스템 사용제안

    • 현재 사용자가 로그인 할 때 GET 요청을 보내 모든 사용자의 경험치를 계산 후 정렬하여 순위 전달

    • Batch 시스템을 사용하여 설정한 주기마다 사용자의 경험치를 계산

    • 수치만 저장하는 테이블을 새로 생성 후 계산한 경험치 수치를 저장

    • 계산된 값을 정렬만 하여 값을 보여주기 때문에 대폭적인 시간 감소

  • 신뢰성 있는 기능을 위해 테스트 코드 작성

    • Junit5를 사용하여 단위 테스트를 작성하여 신뢰성 있는 기능 구현

    • 테스트 코드 작성으로 인해 예외 처리 및 버그를 쉽게 발견할 수 있었음

프로젝트명

ToDaDiary

소속/기관명

사이드 팀 프로젝트

프로젝트 기간

2024.02. ~ 진행 중

프로젝트 내용

프로젝트 소개

  • GPT API를 사용하여 키워드 및 주제를 작성 시 자동으로 요청에 맞게 일기 작성

  • 사용자는 이미지 및 일기 내용을 직접 작성 가능

  • 일기의 내용을 감정 분석을 통하여 평균 감정 파악

프로젝트 필요성과 목표

  • GPT API를 사용하여 키워드 및 주제를 작성하면 자동으로 요청에 맞게 일기 작성 기능

  • AI의 기술을 이용하여 한 주의 감정 분석

  • AI를 사용한 일기 작성으로 재미 부여

구현한 내용

  • 일기 CRUD 기능 구현

    • 일기 작성 후 내용, 이모지, 이미지 저장 기능 구현

  • AWS 환경 구성

    • S3에 이미지 저장을 위해 AWS S3 환경 구축

  • 테스트 코드 환경 구축

    • Controller 테스트 통과 후 RestDocs 생성 및 Swagger에 자동 API 문서 추가

    • interface를 활용하여 테스트 시 S3 접근을 피하고 Mock url 반환

프로젝트 진행 중 발생한 이슈 이슈 페이지로 이동

  • API 명세서 자동화 오류

    • 일기 작성 시 내용 및 이미지를 등록하기 위해 @RequestPart로 DTO 및 MultiparFile 타입의 이미지 파일 동시 요청

    • Controller 테스트 성공 시 RestDocs + Swagger로 API 명세서 자동 생성 목표

    • @RequestPart로 구현한 DTO 및 이미지 파일이 Swagger에 누락되는 현상 발생

    • 조사 결과 RestDocs와 Swagger 단독으로 사용할 경우는 누락이 되지 않지만 아직 RestDocs + Swagger에서는 @RequestPart 미지원

    • 팀원들과 회의 후 프로젝트 구현 완료 후 Swagger에 직접 반영하기로 결정

포트폴리오

URL

link

기술 블로그

티스토리

교육

소속/기관명

전북대학교

종류 | 전공

대학교(학사) | IT정보공학과

재학 기간 | 재학 상태

2017.03. ~ 2022.02. | 졸업

소속/기관명

구름

종류 | 전공

사설 교육 | 풀스택 개발 과정

재학 기간 | 재학 상태

2023.12. ~ 2024.06. | 졸업

대외활동

활동명

전북대학교 IT 정보공학과 시각 지능 연구실 학부 연구생

소속/기관명

전북대학교

연도

내용

Image Detection 기술을 사용하여 폭력 감지 CCTV 개발

학과 학부 연구생으로 들어가 이미지 화질 개선 및 이미지 감지 학습에 관한 논문을 읽고 세미나를 진행하였습니다.

또한 팀원 1명과 함께 사회적 약자를 위한 폭력 감지 CCTV를 Image Detection 기술을 이용하여 AI 학습을 시킨 후 폭력 상황이 발생 시 보호자와 경찰서에 신고를 할 수 있는 기능을 개발하였습니다.

이 후 교내 공모전에서 프로젝트 완성도 및 기획에 높은 평가를 받아 우수상을 받았습니다.

활동명

프로보노 공모전 수상

소속/기관명

팀 프로젝트

연도

내용

Unity + Blender를 활용한 장애인 화재 대피 프로그램 제작

Blender를 사용하여 가상 현실을 모델링 하였고 Unity를 사용하여 프로그램을 제작하였습니다.

이로 인해 장애인 분들이 더욱 현실감 있는 상황에서 화재 대피 훈련을 할 수 있었고 실제 착용 후 프로그램을 진행하였습니다.

이러한 기획력과 완성도를 인정 받아 한국정보방송통신대연합 주관 공모전에서 동상을 받았습니다.

외국어

외국어명

영어

점수

일상 회화 가능

댓글