채용공고 올리기

이강욱님을 응원해보세요!

이직/구직 중이에요
책임감
협업 지향
꼼꼼함
커뮤니케이션

미리보기

기본 정보

이름
이강욱
직업
백엔드 개발자
간단 소개

사내 저작도구 프로젝트에서 PNG 사진 파일을 Webp 파일로 변환해주는 기능을 구현하여 사진 용량 및 로딩 속도를 약 3배 이상 개선한 경험이 있습니다. 동료들과 적극적인 정보공유를 하는 것을 즐깁니다. 최근에는 이펙티브 타입스크립트 스터디를 참여하고 모던 JavaScript Deep Dive 스터디를 운영한 경험이 있습니다. 사람들의 삶에 편리함을 더해주는 서비스를 만들고 싶다는 목표를 가지고 있으며 적극적인 커뮤니케이션을 하는 것을 좋아합니다.

경력

회사명

JEI재능교육

직급 | 부서 | 근무 유형

연구원 | 교육시스템팀 | 재직 중

근무 기간

2024.05. ~ 재직 중 (10개월)

담당 업무

현재 학습 시스템 설계를 연구하고 있으며 사내 기술 블로그 운영을 위한 프로젝트를 개발하고 있습니다. 최근에는 재능스스로AI수학 신상품을 출시하였고 온라인진단 서비스를 고도화하는 작업에 참여했습니다.

기술스택

TypeScript, Koa, MariaDB, Redis

업무내용

  • PNG 사진 파일을 Webp 파일로 업로드 시 자동 변환해주는 기능을 구현하여 사진 용량 및 로딩 속도 약 3배 이상 개선

  • 재능스스로AI수학 프로젝트에서 학습자 LMS, 선생님의 학습자 관리 파트 API 개발을 담당했습니다. (2024.08~2024.10)

  • 온라인진단 프로젝트 고도화 작업 참여 (2024.06 ~ 2024.07)

    • 과목 추가 및 기능 확대로 인한 API 추가 개발

    • 작성된 API 문서가 없어 Swagger를 적용하여 문서화 진행

  • 효율적인 소스코드 관리를 위해 Git Branch 전략 도입을 추진하려고 노력했지만 적용되지 않았습니다. 팀의 작업 생산성을 위해 깊은 고민을 하고 반영하기 위해 노력합니다.

회사명

(주)아이엔지스토리 픽코파트너스 개발팀

직급 | 부서 | 근무 유형

인턴 | 개발팀

근무 기간

2022.07. ~ 2022.12. (6개월)

담당 업무

업무내용

  • 다른 팀들로부터 들어오는 중복적인 요청 및 소통을 줄이기 위한 ERP 업무 자동화 시스템 개발 (Google App Script, CodeIgniter3)

    • 다른 팀에서 주로 필요로 하는 데이터의 유형을 파악했습니다. 대표적으로 가장 많이 들어왔던 요청은 매 월마다 운영되고 있는 모든 지점의 매출을 조회하는 작업이었습니다.

    • 이후 다른 팀들이 사용하는 엑셀 시트에 사내 API 서버와 Google App Script를 연동하여 필요로 하는 기능을 구현하였고, 개발팀에게 물어보지 않고 직접 메뉴얼을 보면서 작업할 수 있도록 메뉴얼을 자세하게 문서화하여 공유하였습니다.

    • 위의 과정들을 통해 눈에 띄게 약 70% 정도 불필요한 소통이 줄었으며 실제로 다른 팀원들에게 업무가 조금 더 수월해졌다는 긍정적인 평가를 받은 경험이 있습니다.

  • 커피온리 교대본점 브랜드 인수로 인한 DB 설계 및 Local Cache 도입 (MariaDB, Redis)

    • 가격, 추가 옵션 등 메뉴에 대한 대부분의 정보를 Column에 JSON 형태로 저장하였고, CSR 방식을 통해 키오스크 화면을 렌더링하는 방법을 선택했습니다.

    • 로컬 장비인 키오스크 라는 기기의 특성과 네트워크 문제나 서버에 문제가 발생했을 경우에도 키오스크가 작동할 수 있도록 하기 위해 Local Cache 방법을 선택하였습니다.

    • Local Cache를 사용할 경우 데이터 불일치가 발생할 가능성이 있습니다. 지점 오픈날짜가 임박하였기 때문에 변경사항이 생긴다면 키오스크를 부팅하여 DB로부터 최신의 데이터를 받아오는 방법을 선택했습니다.

  • 모노소프트 회사 인수로 인한 간단한 유지 보수 및 기능 개선(Java)

    • 실제로 점주님들의 애로사항 및 추가 건의사항을 관리팀으로부터 전달받아 매장 운영에 발생한 간단한 이슈들을 해결하는 업무를 맡았습니다.

    • Spring 프레임워크와 Jenkins 경험이 없어 이전에 구축되어 있는 아키텍처와 코드를 분석하는데 어려움을 겪었습니다. 하지만 필요한 지식들은 틈틈이 학습하였고 사수 개발자님에게 도움을 요청하여 문제없이 유지보수를 할 수 있었습니다.

  • 키오스크 V2 카카오페이 정/역방향 QR코드 외부 API 연동 (Nginx, CodeIgniter3)

    • 카카오페이 개발팀과 온/오프라인 미팅을 주기적으로 가지면서 적극적인 커뮤니케이션을 하여 업무를 더욱 효율적이고 집중력있게 수행할 수 있었습니다.

    • Nginx를 활용하여 카카오페이와의 Gateway 서버를 구축하였습니다.

    • 키오스크 화면에 출력되는 QR코드를 생성하는 기능과, 카카오페이로부터 전달받은 비즈 앱과의 연동을 구현했습니다.

    • 사업자 번호와 PG사 등 정책적인 부분을 이해하는데 어려움을 겪었습니다.

    • 한정된 개발 기간으로 인해 실제 서비스 제공하기까지 참여하지는 못했지만 결제 기능을 제외하고 실제 테스트까지 성공하여 다른 팀원분에게 문서화 하여 인수인계 진행했습니다.

프로젝트

프로젝트명

욕창변화모니터링 아웃소싱 프로젝트

소속/기관명

낫다바이오텍

프로젝트 기간

2024.11. ~ 진행 중

프로젝트 내용

프로젝트 설명

환자들의 욕창부위 변화를 AI를 활용하여 분석하고 확인할 수 있는 프로젝트입니다. 현재 백엔드 개발을 홀로 맡아 API 개발 및 인프라 구성을 진행하고 있습니다.

기술스택

TypeScript, NestJS, Prisma, Docker, GitHub Actions, AWS

업무내용

  • 매일 약 10만건의 병원 리스트 동기화 속도 개선 (평균 1분 30초 -> 약 50초) (Prisma)

    • 기존에는 Upsert 방법과 Delete and Insert 방식 사용

    • 속도 개선을 위해 임시 테이블을 활용하여 Swap 방식 적용

  • Docker와 GitHub Actions를 활용하여 배포 자동화 파이프라인 구축

  • Microsoft Azure OpenAI 적용하여 욕창부위 이미지 분석 및 분석 결과 파싱 진행

관련링크

프로젝트명

Mappilogue

소속/기관명

개인

프로젝트 기간

2023.10. ~ 2024.04.

프로젝트 내용

프로젝트 설명

지도를 기반으로 현 위치 중심의 일정 및 추억을 관리할 수 있는 서비스입니다.

기술스택

  • TypeScript, NestJS

  • MySQL, TypeORM, Redis

  • AWS (EC2, RDS, S3), GitHub Actions

업무설명

  • 1인 백엔드 개발로 서버 개발환경 및 DB 설계부터 기능 구현까지 주도적으로 진행

  • 개발에서 발생한 트러블 슈팅을 블로그 포스팅으로 꾸준히 기록

  • GitHub Action + Shell Script를 활용하여 배포 자동화 구현

  • Redis를 활용한 Refresh-Token 방식 도입 (RTR, Access-Token BlackList)

  • Look-Aside + Write-Around 캐싱 전략을 활용하여 읽기 성능을 개선 (Redis)

    • 맵필로그 프로젝트에서는 읽기 연산이 많고 데이터의 실시간성보다는 읽기 성능이 중요한 특성을 가지고 있었기 때문에 Look-Aside + Write-Around 전략을 선택하게 되었습니다.

    • Look Aside + Write Around 전략을 사용하게 되면 캐시와 DB의 데이터 불일치가 발생할 수 있습니다. 생성/수정/삭제 작업이 수행될 때는 캐시를 삭제해주고, 읽기 작업이 수행될 때만 캐시를 저장하면서 DB와 캐시 사이의 데이터 불일치를 막을 수 있었습니다.

관련링크

프로젝트명

반려동물 전용 소셜 커뮤니티 아웃소싱

소속/기관명

(주)페타버스

프로젝트 기간

2023.03. ~ 2023.09.

프로젝트 내용

[프로젝트 설명]
반려동물을 대상으로 한 소셜 커뮤니티 플랫폼 애플리케이션입니다. 동아리에서 연계받은 아웃소싱 프로젝트로 2차 개발 및 QC과정에 참여했습니다.

[업무 내용]

  • 회원가입 시 친구 추천 기능 구현 개발
  • 스케줄러를 활용하여 랭킹시스템 기반 후원금 페이백 제도 기능 개발
    • 처음 기능을 구현할 당시에는 3중 이상의 반복문을 사용하여 동작은 하지만 비효율적인 코드 작성을 하게 되었습니다.
    • 더욱 효율적인 코드를 작성할 수 있겠다는 생각으로 고민 끝에 2중 반복문으로 반복 횟수를 줄였고, 불필요하게 사용되었던 DB 접근을 줄이면서 간결하게 코드를 수정하였습니다.
    • 또한 적지 않은 시간이 소요되는 기능이고, 데이터가 많아질수록 부하가 생길 수 있다고 판단되어 스케줄러를 활용하여 새벽 시간대에 페이백을 실행할 수 있도록 구현을 하였으며 Covering Index를 적용하고, MySQL의 COUNT 메서드를 개선하면서 후원금 페이백 계산 시간을 대폭 감소시킬 수 있었습니다.
  • QC과정에 참여하여 단순하게 코드레벨에서 발생하는 문제점과 잘못된 로직으로 수행되고 있는 기능만 확인하는 것이 아니라 전체적으로 꼼꼼하게 보면서 불필요하게 사용된 반복문, 트랜잭션 시 connection release 누락 및 검색 기능에 적용되지 않은 인덱스 등 프로젝트의 결함 등을 해결하면서 프로젝트의 품질을 향상시킬 수 있었고 코드를 분석하는 능력도 기를 수 있었습니다.
  • PM과의 커뮤니케이션 이슈가 발생하여 QC과정에 약간의 딜레이가 발생하는 문제가 있었습니다. 정기적으로 진행되는 고객사와의 미팅에 직접 참여한다고 정중하게 의사를 밝혀서 적극적인 의사소통을 통해 요구사항과 문제점을 정확하게 파악하여 딜레이되는 작업을 신속하게 처리할 수 있었습니다.

[기술 스택]

  • JavaScript, Express.js
  • MySQL
  • AWS (Bastion Host, RDS, ELB)
  • GitHub Action + Code Deploy

[관련 링크]

프로젝트명

GRIDGE 페이지 개발 아웃소싱

소속/기관명

(주)소프트스퀘어드

프로젝트 기간

2022.09. ~ 2022.11.

프로젝트 내용

[프로젝트 설명]

  • GRIDGE는 IT 프로젝트 작업자 실시간 자동 매칭 온디맨드 클라우드 플랫폼입니다. 동아리에서 연계받은 아웃소싱 프로젝트로 작업자 및 의뢰자 스쿼드에 참여했습니다.
  • 초기에는 GRIDGE에서 제공하는 기능이 모두 엑셀로 작업되고 있었습니다. 개발이 필요한 기능들에 투입하여 작업자와 의뢰자들이 더욱 편하게 업무 내용을 기록할 수 있도록 개선하였습니다.

[업무 내용]

  • 작업자와 의뢰자의 포인트 대시보드 관련 기능 개발
  • 포인트 대시보드를 기반으로 일일 및 정산 보고서 HTML 변환
    • 작업자가 포인트 대시보드에 작업내용을 기록하고 자동으로 보고서를 생산해주는 기능을 구현하면서 사용자의 편의성을 향상시켰습니다.
  • 프로젝트 팀 내에서 CTO님과 함께 Git 컨벤션을 정해서 효율적으로 협업할 수 있었습니다. 그리고 주기적인 코드 리뷰를 통해 코드의 품질을 향상시킬 수 있었고 다양한 지식을 공유할 수 있었습니다.
  • 약 1주일 단위의 개발 목표를 설정하고 스크럼 방식을 도입하여 효율적으로 업무 관리를 할 수 있었습니다.

[기술 스택]

  • TypeScript, NestJS, handlebars
  • MySQL, TypeORM,
  • Swagger
  • GitLab, GitLab CI/CD Pipelines

[관련 링크]

대외활동

활동명

월간CS 스터디 참여 및 운영

소속/기관명

월간CS

연도

내용

평소 스터디에 참여하여 다양한 사람들을 만나고, 정보공유를 하는 것을 굉장히 좋아합니다.
최근에는 스터디 운영에도 관심이 생겨 실제로 스터디를 운영한 경험이 있습니다.

스터디 참여

https://github.com/monthly-cs/2024-05-effective-typescript

스터디 운영

https://github.com/monthly-cs/2024-07-modern-javascript-deep-dive

활동명

제 2회 가천대학교 와글와글 해커톤

소속/기관명

가천대학교

연도

내용

[관련 링크]

[주요 내용]

  • 가천대 IT 개발자 & 스타트업 경력개발방 커뮤니티에서 개최한 해커톤 행사에 1박2일 동안 참여하였습니다.
  • "나만의 AI, 내가 원하는 이와의 커피챗" 인 Capella에서 백엔드 개발로 참여하여 사용자 커스텀 AI 모델 구축 및 채팅 기능 구현을 맡았습니다.
  • 프레임워크에 익숙하지 않은 동료 개발자 분에게 멘토 역할을 하면서 누군가에게 조금이나마 도움이 된다는 점에서 자신감이 생겼고 많은 사람들과 함께 개발에 참여하면서 협업 능력도 키웠습니다.

[프로젝트 구현중 어려웠던 부분]
<사용자 커스텀 옵션을 활용한 ChatGPT 학습>

  • 사용자가 선택한 옵션들을 가지고 어떻게 조합해서 ChatGPT에게 학습시켜야 하는지 많은 고민을 하게 되었습니다. 다행히 ChatGPT Prompt Generator에서 제공하는 포맷을 활용하여 사용자의 첫 질문을 포함하여 학습시킬 수 있었습니다.
  • 하지만 행사의 성격상 많은 시간을 투자하지 못하고 기술력의 깊이가 부족하여 사용자가 선택한 모든 옵션들을 만족시키기에는 어려움이 있어 높은 정확도를 구현하지는 못하였지만 일반적인 시나리오에서는 적절한 답변을 얻을 수 있었습니다.

<이전 채팅 내용 기억으로 인해 발생하는 API 응답 시간 지연>

  • ChatGPT API에서 이전의 대화 내용을 어떻게 기억하게 해야할 지 많은 고민을 하게 되었습니다.
  • 행사 당시에는 DB에 이전 채팅 내용을 모두 저장하고 사용자가 채팅을 전송할 때 직전 채팅 내용을 먼저 모델에 학습시키고 질문에 대한 답변을 모델에서 할 수 있도록 구현했습니다. 하지만 이 방법은 생각보다 긴 API 응답 시간을 야기하였습니다.
  • API 응답 시간을 개선하기 위해 다음과 같은 방법을 생각했습니다.
    • 모든 대화 내용을 캐시에도 저장하여 API 응답 속도를 개선합니다.
활동명

대학교 앱 개발 연합 동아리 University MakeUs Challenge (UMC) 2기

소속/기관명

가천대학교 지부

연도

내용
  • Node.js 백엔드 파트 리더를 담당해서 초기 동아리에서 약 1.5배 확장된 50명 규모로 동아리를 운영한 경험이 있습니다.
  • 1기 스터디를 운영하면서 발생했던 불만사항들을 적극적으로 수렴하여 더욱 발전된 모습으로 운영할 수 있었습니다. 교육 컨텐츠와 질의응답 시스템 만족도 설문조사에서 긍정적인 평가를 이전 기수에 비해 약 2배 이상 받았습니다.
  • 1기 스터디에서 설계했던 테이블 설계도를 공유하면서 실시간 피드백을 진행했습니다. 그리고 카카오 소셜로그인 기능 구현 과정을 동아리원들에게 공유하면서 구현에 어려움을 느끼는 동료에게 조금이나마 도움을 줄 수 있었습니다.
  • 위의 경험들을 토대로 동료들에게 좋은 영향력을 주고 받을 수 있는 개발자가 되고 싶다고 다짐을 하는 계기가 되었습니다.
활동명

대학교 앱 개발 연합 동아리 University MakeUs Challenge (UMC) 1기

소속/기관명

가천대학교 지부

연도

내용
  • 동아리 부회장 및 Node.js 백엔드 스터디 리더를 담당해서 약 30명 규모의 가천대학교 지부를 운영한 경험이 있습니다.
  • 약 10주간 동아리 내 교육 내용을 바탕으로 주제별 중요 개념들을 워크북을 통해 정리하고 발표합니다. 그리고 클론코딩 프로젝트를 진행하며 각자 발생했던 트러블 슈팅 및 구현하기 어려웠던 기능을 어떻게 구현했는지 등을 서로 공유하는 방식으로 스터디를 운영했습니다.
  • 교육 내용 및 질의응답 시스템에 대해 불만 사항으로 중도 탈퇴자가 발생했었습니다. 이후 운영진들과 교육 컨텐츠 및 질의응답 시스템 활성화를 중심으로 개선방안을 제안하고 적용한 경험이 있습니다.
  • 위의 경험들을 통해 적극적인 커뮤니케이션 태도와 리더십을 기를 수 있었습니다.
  • 동아리 최종 앱 런칭 프로젝트에서 여행 기록을 공유할 수 있는 플랫폼 애플리케이션인 "모두의 여행, 트리퍼"을 개발하고 약 1개월 간 실제 운영을 한 경험이 있습니다.

포트폴리오

URL

link

GitHub

깃허브
link

Tistory 개발 블로그

티스토리

교육

소속/기관명

가천대학교 글로벌캠퍼스

종류 | 전공

대학교(학사) | 소프트웨어학과

재학 기간 | 재학 상태

2016.03. ~ 2023.02. | 졸업

자격증

자격증명

TOEIC Speaking

점수 | 발급기관

IH (150) | YBM

취득연월

2023.01.

기술 스택

기술 스택

TypeScript, JavaScript, NestJS, Express, MySQL, AWS, Docker

자기소개

자기소개

사람들에게 편리한 서비스를 제공할 수 있도록 노력합니다.

최근에 인턴으로 근무한 회사에서 다른 팀들로부터 중복되는 요구사항이 들어와서 개발팀과 외의 팀에서도 불편함을 평소 느꼈습니다. 불편함을 해소하기 위해 개발팀 내에서 논의 후에 주도적으로 간단하게 시스템을 구축하게 되었습니다.
다른 팀에서 작업하고 있는 엑셀에 사내 API 서버와 Google App Script를 활용하여 연동을 하고 다른 팀에서 주로 필요로 하는 데이터를 파악하고 해당 데이터를 개발팀에게 요청하지 않고 직접 얻을 수 있도록 구현했습니다. 그리고 구현한 프로그램을 어렵지 않게 사용할 수 있도록 메뉴얼을 자세하게 문서화하여 제공하였습니다.
이에 대한 결과로 약 70% 정도 불필요한 소통이 줄은 것을 확인할 수 있었고 실제로 다른 팀들로부터 업무가 수월해졌다는 긍정적인 평가를 받았습니다.

다른 사람들과 적극적인 커뮤니케이션 하는 것에 자신있습니다.

반려동물 전용 소셜 커뮤니티 아웃소싱 프로젝트에서 2차 개발 및 QC과정에 참여하였습니다. 해당 프로젝트의 QC과정에서는 PM으로부터 어떤 에러가 발생하고 있는지, 기획 변경으로 인한 로직 변경 등과 같은 작업들을 담당했습니다. 하지만 PM으로부터 각 이슈에 대한 정확한 설명을 받지 못하였고, 궁금한 점에 대해 질문을 해도 불만족스러운 답변을 많이 받았습니다.
이로 인해 정기적으로 진행되는 미팅에 직접 참여하겠다는 의사를 밝혔고 고객사 측과 적극적인 의사소통을 통해 정확하게 어떤 것을 요구하는지, 어떤 기능에서 어떤 문제가 있는지를 확실하게 알게 되었고 반대로 고객사 측에서 개발적으로 질문하는 것에 대해 최대한 자세하게 답변할 수 있도록 노력하였습니다. 또한 PM에게 정중하게 미팅 요청을 하여 어떤 부분에서 문제가 있었는지 조심스럽게 말씀드렸고 다행히 서로 간의 갈등을 해소할 수 있었습니다.
위의 과정들을 통해 문제가 되고 있던 부분을 조금 더 신속하고 정확하게 처리하여 딜레이 되고 있었던 QC과정에 도움을 줄 수 있었습니다.

댓글