미리보기
기본 정보
프론트의 상태관리 로직과 백엔드 로직을 설계할 수 있으며, 시각화, CI|CD 환경까지 구축이 가능한 백엔드 엔지니어입니다.
기술 스택
Java, Spring Boot, spring-jpa, Spring Security, React, redux-saga, MySQL
경력
(주) 렉플
계약직 | 데이터정제
2023.08. ~ 2023.10. (3개월)
'렉플'이라는 기업에서 근무하면서 중요한 프로젝트에 참여하였습니다. 이 회사는 정부로부터 '알앤디 시나리오'라는 인공지능 학습용 데이터 구축사업을 수주받았으며, 이 프로젝트에서 핵심적인 역할을 맡았습니다.
저의 주요 임무는 30일 안에 1800명의 한국인 전신 신체 데이터를 수집하고, 이 데이터를 인공지능 딥러닝 템플릿에 맞게 정제하여 개발사에 전달하는 것이었습니다. 각 개인마다 4개의 타입과 8개의 가상 시나리오, 한글 번역본 및 영어 번역본이 필요했으며, 결과적으로 10만 개 이상의 데이터가 담긴 엑셀 파일을 정제하는 작업이 필요했습니다.
처음에는 방대한 데이터 처리에 어려움을 겪었지만, 엑셀 파일을 텍스트로 드래그하면 띄어쓰기와 줄바꿈 단위로 나뉘어져 있는 것을 확인하고, 이 점을 이용하면 간단하게 작업할 수 있겠다는 아이디어를 얻었습니다.
각 단위마다 번역 템플릿을 적용할 떄, 자바 코드를 사용해서 처리 후, CSV파일로 추출했습니다, 이런 작업을 3일 동안 번역 템플릿에 맞춰 10만 개 이상의 한글 번역본 및 영어 번역본 데이터를 생성한 후, 이를 csv 파일로 변환하여 데이터 라벨링 작업을 완료했습니다. 그 결과, 예정된 기한보다 4일 더 일찍 개발사에 데이터를 전달할 수 있었습니다.
또한, 파이썬 언어를 사용해 수집된 10만 개의 신체 3D 데이터 중 더미 데이터가 있는지 확인하고, 데이터 수집팀에 보고하여 개발사에 전달하는 데이터에 오류가 없도록 점검하는 역할도 맡았습니다. 프로젝트 진행 중 데이터 수집팀의 일부 인원이 일을 그만두어 어려움이 발생했을 때는, 추가 근무를 자청해 신체 측정 및 신체 3D 스캔 작업까지 직접 수행한 경험까지 있습니다.
이 과정에서 제가 공부했던 알고리즘이 크게 도움이 되었으며, 특히 자바 언어를 활용해 10만 개가 넘는 데이터의 각 단위별 한글 번역본 및 영어 번역본 시나리오를 처리하는 데 많은 도움을 받았습니다. 이를 통해 데이터를 코드로 다루는 사고력이 크게 향상되었습니다. 또한, 전반적인 개발 작업은 아니지만 실무 회로가 어떻게 돌아가는지 알게 된 소중한 경험이었습니다.
프로젝트
WORDWAVE
개인
2023.11. ~ 2024.05.
이 프로젝트는 영어 학습자들이 쉽고 재미있게 영어를 공부할 수 있는 웹사이트를 개발하는 것을 목표로 합니다. 사용자는 단어 퀴즈, 문법 퀴즈를 통해 학습할 수 있으며, 개인 맞춤형 단어장을 만들어 사용할 수 있습니다.
팀구성
풀스택 1명
상세역할
프로젝트 기획 및 아키텍처 설계,
백엔드와 프론트 전체적인 구현 및 배포
회원가입/로그인
Redis를 통해 이메일 인증코드 기능 구현,
Cookie에 로그인 AccessToken정보를 저장하고, Refresh Token를 서버측과 통신하여 로그인 유지 기능 구현
영단어 및 문법 퀴즈
데이터베이스에 저장된 문제들을 SpringBoot를 통해 요청하고, Redux Saga로 상태 관리하며, 사용자에게 하나씩 출력합니다. 스택 데이터 구조를 이용하여 퀴즈를 진행하며, 모든 문제를 마치면 결과를 표시합니다.
나만의 단어장 생성/수정/삭제/퀴즈
사용자는 원하는 썸네일 이미지를 선택하여 개인 단어장을 생성할 수 있습니다. 생성된 단어장에는 사용자가 선택한 단어를 추가하여 퀴즈 형태로 학습할 수 있습니다. 전역 상태 관리를 위해 Redux Saga를 사용하였고, 썸네일 이미지는 AWS S3에 저장됩니다.
REACT-DUCKS 패턴을 활용한 효과적인 상태 관리와 데이터 전달
반응형 디자인
반응형 웹 디자인으로 다양한 디바이스에서의 접근성 향상
AWS EC2 , Docker, GitHub Actions를 활용하여 CI/CD 구축
프론트, 백엔드 SSL인증서 설치를 통한 HTTPS 보안 강화
포트폴리오
교육
국가평생교육진흥원
대학교(학사) | 컴퓨터공학
2015.04. ~ 2024.05. | 졸업
김해분성고등학교
고등학교 | 인문
2012.03. ~ 2015.02. | 졸업
대외활동
우아한테크코스 6기 프리코스
우아한형제들
우아한 테크코스 6기 프리코스에 참여하여 4주 동안 자바 언어를 이용한 다양한 프로그래밍 미션을 성공적으로 수행하며, 제 기술 역량을 심화시켰습니다. 이 과정에서 각 주차별로 제시된 미션을 성공적으로 완료해야만 다음 단계로 진행할 수 있는 구조였기에, 지속적인 학습과 실습이 요구되었습니다.
미션 수행 과정에는 주로 TDD(Test-Driven Development) 방식을 적용하여 기능 단위별 테스트 코드를 작성하고, 이를 통해 MVC(Model-View-Controller) 패턴을 구현하는 CBD(Component-Based Development) 개발 방법론을 준수하는 것이 중요했습니다. 또한, Google Java Style Guide를 준수하여 메소드당 최대 15줄의 코드를 넘지 않도록 하며, 코드의 유지보수성과 협업을 위한 컨벤션을 엄격히 지켰습니다.
이러한 실무 중심의 교육 방식을 통해, 미션 완료 후 동료들과 코드 리뷰를 진행함으로써 의사소통 능력을 크게 향상시킬 수 있었으며, 우수한 알고리즘을 제시한 동료들의 코드를 분석하며 사고력을 확장했습니다. 이 과정을 통해 소프트웨어 개발의 기본 원리와 효과적인 코드 작성법에 대한 깊은 이해를 얻었고, 이는 제 프로그래밍 능력과 문제 해결 능력을 크게 향상시키는 데 기여했습니다.
자격증
네트워크관리사
2급 | 한국정보통신자격협회
2023.12.
정보처리산업기사
산업기사 | 한국산업인력공단
2023.09.
컴퓨터활용능력
1급 | 대한상공회의소
2022.06.
자기소개
복싱으로 얻은 성장
저는 성장과정중에 가장 오랜 시간 동안 몰입했던 경험은 학창 시절 5년간의 복싱 선수생활이었습니다.
복싱을 하면서 두 가지 큰 도전과 어려움을 마주하게 되었습니다.
첫 번째는 비효율적인 체력 분배로 인해 시합 도중 제대로 된 운영을 하지 못했다는 점 입니다.
두 번째는 시합 중 공간을 활용한 기술적인 운영 능력이 부족했다는 점이었습니다.
이런 어려움을 극복하기 위해 다양한 노력을 했습니다. 매일 새벽에는 5km 러닝을 통해 체력을 키우는 데 집중했습니다. 그리고 프로 선수들과의 스파링을 통해 기술적인 부분을 보완하기 위한 훈련을 반복했습니다. 이러한 노력의 결과로 체력 분배 능력과 기술적인 단점도 점점 개선되었습니다.
결국, 그 노력이 도민체전에서의 3위라는 결과로 이어졌습니다, 비록 작은 성과였지만, 그것은 큰 의미가 있었습니다. 이는 단순한 순위를 넘어 노력의 결실이었고, 시련을 극복한 결과였기에 그 순간의 감정은 말로 표현하기 힘들 정도로 감동적이었습니다.
이 경험을 통해 두 가지 중요한 교훈을 얻었습니다.
첫째, 목표를 향해 노력하면 결국 긍정적인 결과를 얻을 수 있다는 것,
둘째, 과정 속에서의 도전과 어려움이 결과에 큰 의미를 부여한다는 것입니다.
이러한 경험은 현재 제 성장 방식에 큰 영향을 주었으며, 무엇을 하든지 항상 최선을 다하고 도전하는 자세를 갖게 해주었습니다.
자신을 믿는 개발자
제가 생각하는 좋은 개발자란 자신에 대한 의심 없이, 문제 해결을 위해 끝까지 자신을 믿고 전진하는 사람입니다. 개발의 길은 수많은 도전으로 가득하지만, 자기 자신에 대한 신뢰 없이는 그 어떤 장애도 극복하기 어렵습니다.
WORDWAVE 프로젝트를 진행하며, 여러 난관에 부딪혔습니다. 팀원의 개인 사정으로 인한 이탈, 생업과 프로젝트를 병행하며 느낀 체력적 한계, 그리고 급기야 올해 4월에는 왼발등 골절이라는 불의의 사고까지 겪었습니다.
이러한 어려움 속에서도 결코 포기하지 않았습니다. 이 프로젝트를 완성해야만 앞으로 나아갈 수 있는 발판이 마련될 것이라 믿었고, 그 믿음은 저 자신에 대한 신뢰에서 생겼습니다.
6개월이 넘는 시간 동안의 노력 끝에, WORDWAVE 프로젝트를 성공적으로 배포할 수 있었습니다.
이 과정에서 저의 원동력은 바로 저를 포기하지 않고 계속해서 믿은 것이었습니다.
비록 현재 WORDWAVE 웹사이트의 이용자 수는 많지 않지만, 실제로 토익 시험 준비에 도움을 받았다는 지인의 칭찬을 듣게 되었을 때, 그 어떤 것보다도 보람을 느꼈습니다.
작지만 의미 있는 이 성과는 저의 개발 능력이 누군가에게 긍정적인 영향을 미쳤다는 증거이며, 모든 노력이 헛되지 않았다는 확신을 주었습니다.
이 경험을 통해, 자신을 믿고 꿋꿋이 나아가면 어떠한 어려움도 극복할 수 있다는 귀중한 교훈을 얻었습니다.
저는 이러한 신념을 바탕으로 앞으로도 지속적으로 도전하고 발전해 나갈 것입니다.
기록하는 습관
저는 프로그래밍을 공부하면서 생기는 어려운 지식들을 개인 기술블로그에 2년이 넘는 시간동한 기록하며, 300개가 넘는 포스팅을 하며 이를 완전히 제 것으로 만드는 삶을 지향하고 있습니다. 프로그래밍 분야는 무궁무진한 동시에 어려운 지식이 항상 등장하지만, 이를 블로그를 통해 독자들이 이해하기 쉽도록 글로 정리하는 과정에서 진정한 학습이 이루어진다고 생각합니다. 제 기술 블로그는 단순한 정보 저장 공간을 넘어, 저의 생각과 해결 과정을 남기는 중요한 자산입니다.
개발을 할 때, 이러한 습관으로부터 큰 도움을 받았습니다. 사례로, 울산에서 개발자 스터디 모임을 진행할 당시 한 개발자가 프로그래밍 분야에 막 입문하여 공부 방향을 어떻게 잡아야 할지 혼란스러워하는 상황이었습니다. 이 혼란을 해소하기 위해, 그동안 성실히 학습한 내용을 기록해 둔 저의 개인 기술블로그를 소개해주었습니다.
해당 개발자는 제 기술 블로그의 내용을 바탕으로 자료구조, 알고리즘, 자바 언어를 학습하며 SSAFY 부트캠프 코딩테스트에 도전했고, 최종적으로는 합격하지 못했지만, 코딩테스트를 통과하는 성과를 이뤄냈습니다.
지금까지 학습한 내용을 기록해 둔 기술 블로그가 타인에게 도움이 되었다는 사실은, 저의 노력이 입증된 결과이며, 개발자로서의 길을 걷는 데 있어 많은 긍정적인 영향을 준다는 것을 증명했습니다.
이러한 경험을 통해, 저는 기록하는 습관의 중요성을 더욱 신뢰하게 되었고, 문서화가 얼마나 중요한지를 깊이 이해하게 되었습니다.
지원 동기
저는 개발자로서 항상 새로운 도전을 추구하며 성장해왔습니다. 특히 프로그래밍 역량을 강화하는 것과 동시에 영어 학습에도 관심이 많아, 이 두 가지 열정이 저를 영어 학습 웹 플랫폼인 WORDWAVE 프로젝트 개발로 이끌었습니다. 이 경험을 통해 교육 플랫폼 개발에 대한 깊은 이해와 열정을 얻었습니다.
WORDWAVE 프로젝트에서는 서비스의 목표인 사용자의 학습성을 위해 여러 노력을 했습니다. 접근성이 높은 서비스가 콘텐츠 지속성을 증대한다는 연구를 바탕으로, PC와 모바일 환경 모두에서 사용할 수 있는 반응형 레이아웃을 React를 이용해 구현했습니다. 또한, 백엔드에서 프론트로 넘겨주는 퀴즈 데이터를 순서와 유형을 랜덤으로 전달하여 퀴즈를 사용하는 사용자가 퀴즈의 본질을 이해하고 장기 기억으로 이끌기 위한 학습 효과를 극대화하려 노력했습니다.
이러한 경험 외에도, 기술적 도전을 통해 프로젝트의 완성도를 높이는 데 중점을 두었습니다. 예를 들어, JSON Web Token 로직을 활용하여 보다 안전한 로그인 기능을 구현하였고, 이는 사용자 인증과 보안성을 강화하는 데 중요한 역할을 했습니다. 또한, Docker와 AWS EC2를 활용하여 GitHub Actions를 통한 CICD 환경을 구축함으로써, 추가적인 기능 구현이나 변경 사항이 있을 때 배포된 서비스에 신속히 반영할 수 있는 환경을 만들었습니다. 이러한 경험은 제가 백엔드 개발뿐만 아니라 DevOps 영역에서도 역량을 발휘할 수 있음을 보여줍니다.
이제 저는 해당 포지션을 통해 제 경험과 열정을 바탕으로 더 큰 가치를 창출하고자 합니다. 이전 프로젝트에서 사용자의 학습 효율을 증진시키고자 했던 경험과 지식을 바탕으로, 귀사의 서비스를 사용자 중심의 효율적이고 혁신적인 웹 플랫폼 개발에 기여하고자 합니다. 실무에서는 사용자 피드백을 적극적으로 수집 및 반영하여 사용자 만족도를 높이는 방향으로 플랫폼을 지속적으로 개선할 계획입니다.
저는 이 포지션을 통해 제 경험과 지식을 활용하여 회사의 목표 달성에 기여하고, 함께 성장해 나가고 싶습니다.
신입으로 지원하게 되어서 경험과 실력은 부족할지 모르지만, 앞으로 계속 배우며 성장할 수 있다고 생각합니다.
긴 글 읽어주셔서 감사합니다.