이영주

풀스택개발자

백엔드 개발자로 3년간 다양한 프로젝트를 경험하며 서비스 전반을 설계하는 능력을 키웠습니다. 개발 과정에서 프론트엔드와의 긴밀한 협업이 서비스 완성도에 큰 영향을 준다는 것을 깨달았고, 현재는 풀스택 개발자로 확장하여 더 원활한 협업과 서비스 개발을 목표로 하고 있습니다.

Profile
Logo
세샤트
백엔드
2021년 11월 - 2024년 1월 | 2년 3개월

학습 콘텐츠 전문 전자책 드로잉 플랫폼입니다. 맡은 부분: 어드민 페이지 및 서버 API 개발 전반 담당 외부 서비스 연동 (결제 시스템, 이메일/SMS 인증) CI/CD 유지보수 (ArgoCD, Docker, AWS EKS) 외부 협업을 통한 대량 데이터 동기화 크론 작업 핵심 기술 경험 & 도전 과제: 1. 결제 시스템 연동 & 비동기 트랜잭션 설계 결제 기능을 PG사 API와 연동 웹훅(Webhook) 기반의 비동기 결제 처리 구조를 설계 결제 실패 후 재시도 구현하여 결제 성공률 개선 2.이벤트 기반 아키텍처 도입 (AWS SQS, SNS 활용) 내부 서비스 간 비동기 이벤트 처리를 위해 AWS SQS, SNS를 활용하여 이벤트 기반 아키텍처를 설계 주요 기능: 결제 완료 후 주문 상태 업데이트, 이메일 알림 발송 등의 비동기 처리 자동화 문제 발생 지점: SQS 메시지가 중복으로 처리되면서, 동일한 이벤트가 두 번 실행되는 현상이 발생 원인 분석: 로드 밸런서가 두 개의 서버에 요청을 균등하게 분배하면서 중복 이벤트 발생 해결 방향: Redis Lock을 적용하여 특정 서버에서만 요청을 처리하도록 수정해야 했으나, 일정상 구현하지 못해 향후 개선 포인트로 남김 배운 점: 이벤트 기반 시스템이 분산 서버 환경에서 동작할 때의 주의점을 경험 Redis Lock을 활용한 중복 방지 기법을 고려할 필요성을 인식 후 개선 방향을 고려할 수 있었음 3.CQRS 적용: 읽기(Read) & 쓰기(Write) 분리 전략 CQRS 패턴을 적용하여 데이터 읽기(Query)와 명령(Command)을 분리 읽기 성능 최적화를 위해 Read Replica를 도입했지만, 성능 향상 효과를 크게 체감하지 못했음. 문제 발생 지점: 특정 쿼리에서 7초 이상의 슬로우 쿼리가 발생 해결 방향: 쿼리 최적화(Index 추가, TypeORM 옵션 조정, 캐싱 적용)를 통해 성능을 2초대로 개선 배운 점: CQRS와 Read Replica가 무조건 성능을 개선하는 것은 아니고 서비스 특성과 트래픽 패턴에 따라 효과가 다를 수 있음을 경험함 실제 조회 성능 최적화에서는 쿼리 튜닝과 인덱스 최적화가 더 효과적일 수 있다는것을 경험함 기술스택: nodejs, javascript, typescript, docker, aws, eks, argocd

Logo
두들린(인턴)
백엔드
2021년 9월 - 2021년 10월 | 2개월

채용 최적화 프로세스 제공 플랫폼이며 사용자와 기업을 연결해주는 Saas입니다. 맡은 부분: 업무 프로세스에 직접 참여하여, 실무진들과 함께 스프린트를 수행 디자이너 및 기획자와 협업하여 서비스 요구사항을 분석하고, 기능을 구현 Kubernetes CronJob을 활용하여 외부 이메일 발송 시스템과 연동 핵심 기술 경험 & 도전 과제: 1. Kubernetes CronJob을 활용한 이메일 발송 자동화 Kubernetes CronJob을 활용하여 일정 주기로 외부 마케팅 서비스와 연동하여 이메일 발송을 자동화 기존 서버와는 분리된 별도의 크론잡 서버를 생성 기존 서버와 동일한 DB(MySQL)를 연동하여 데이터 동기화 유지 고민했던 점: 크론잡 서버가 기존 서버와 분리된 상태에서, 같은 DB를 공유하는 방식이 최적의 설계인지 고민 배치 작업이 많아질 경우, 크론잡 서버와 기존 서버가 DB 부하를 공유하는 구조가 확장성 면에서 적절한지 의문이 있었음 배운점: 크론잡과 애플리케이션 서버가 같은 DB를 공유할 경우, 트랜잭션 충돌이나 부하 문제를 고려해야 함을 학습 장기적으로 크론잡을 위한 별도의 데이터베이스를 운영하는 방안도 고려할 필요가 있음을 인식 이메일 발송 로그 저장 및 재시도를 위한 큐 시스템(RabbitMQ, SQS 등) 도입 가능성 검토 필요 2. GraphQL을 활용한 데이터 조회 최적화 GraphQL을 활용하여 클라이언트가 원하는 데이터만 효율적으로 조회할 수 있도록 API 설계 기존 REST API와 비교하며, GraphQL의 요청 방식과 데이터 처리 방식 학습 배운점: API 요청 시, 불필요한 데이터를 줄일 수 있었음 Query와 Mutation을 활용하여, 프론트엔드에서 더 유연한 요청이 가능함을 경험 GraphQL을 활용한 실무 경험을 쌓으며, API 설계 및 데이터 최적화에 대한 이해도를 높임 기술 스택: flask, pathon, mysql, moongo, graphql, aws, eks

Logo
브랜디(인턴)
백엔드
2020년 12월 - 2021년 1월 | 2개월

admin 페이지 클론 인턴 프로젝트 진행 총 12명 (백엔드 9명, 프론트엔드 3명)과 협업하며, 대규모 협업 환경에서의 실무 경험을 쌓음 모델링 단계부터 API 설계, 어드민 페이지 기능 구현까지 직접 참여 핵심 기술 경험 & 도전 과제: 팀원들과 협업하여 ERD(Entity Relationship Diagram)를 설계하고, 데이터 모델링 진행 MySQL을 기반으로 데이터 정규화(Normalization)를 고려하여 모델링 어드민 페이지에서 필요한 API를 정의하고, 백엔드-프론트 협업을 위한 명확한 API 문서화 진행 코드 리뷰를 통한 기술적 성장 & 소통 능력 향상 실무 팀장님과 팀원들 간의 코드 리뷰를 통해 코드 품질을 개선하는 경험을 함 고민했던 점: 코드리뷰 과정에서 가독성과 유지보수성을 높이기 위한 코드 스타일을 맞추는 방법을 고민 쿼리 최적화 & 성능 개선을 위해, ORM 활용 방식과 Raw Query 선택 기준을 학습 기술 스택: flask, pathon, mysql, JenKinsJenkins

Project Image
MBTI별 좋아하는 컬러

FullStack 1인 프로젝트: 선호하는 컬러를 추가할 수 있는 웹 사이트 기획의도: -리액트 학습 사이트의 Clone 프로젝트에서 출발했으나, 단순 모방이 아니라 확장하는 방향으로 발전 -기존 단순 Javascript로 강의를 했으나 TypeScript 학습을 병행하며, 리액트 프로젝트에 적용하는 방법을 학습 -스타일링을 위한 Styled-Components 도입을 통해, 컴포넌트 기반 스타일링 학습 핵심 기술 경험 & 도전 과제: 1. TypeScript & Styled-Components 적용 -TypeScript를 리액트 프로젝트에 적용하여, 정적 타입 검사를 활용한 개발 경험 -스타일 컴포넌트를 활용하여 스타일링을 모듈화하고, 유지보수성을 높이는 방법을 학습 고민했던 점: -기존 JavaScript 프로젝트를 TypeScript로 변환하면서, Props 및 상태(State) 타입을 정의하는 과정에서 초기 러닝 커브가 존재 -스타일 컴포넌트로 변경하는 과정에서 초기 러닝커브가 존재 배운점: -TypeScript를 활용하면, 코드 작성 시점에서 오류를 줄이고 협업에서도 유용할 수 있음을 체감 -컴포넌트 기반 스타일링을 하면, 유지보수성이 개선되고 UI 일관성을 유지하는 데 도움이 됨 2. 풀스택 개발자로서의 첫 도전 -프론트엔드 없이 백엔드만 다뤄왔던 경험에서 벗어나, 풀스택 프로젝트를 직접 구현 -React + TypeScript로 프론트엔드를 구성하고, 간단한 백엔드 기능까지 추가하여 학습의 폭을 확장 도전했던 점: -새로운 기술을 빠르게 학습하고, 러닝 커브를 최소화하여 실전 프로젝트에 적용하는 과정이 도전적이었음 -프론트엔드 입장에서의 데이터 흐름을 관리하는 과정에서, API 설계의 중요성을 경험 배운 점: -단순 Clone이 아니라, 새로운 기술을 직접 도입하고 적용할 때 학습 효과가 극대화된다는 것을 깨달음 -추후 더 복잡한 프로젝트에서도, 새로운 기술을 빠르게 습득하고 적용할 수 있는 자신감을 얻게 됨

mytube

유튜브 클론 1인 프로젝트 기획의도: -실생활에서 가장 많이 사용하는 유튜브의 주요 기능을 직접 구현해보고 싶어 프로젝트를 시작 -나만의 코드로 직접 구조를 설계하고 기능을 구현하는 방식으로 진행 -프론트엔드의 여러 기능(댓글, 좋아요, 구독 등)을 한 프로젝트에서 처음으로 다뤄보며 학습 핵심 기술 경험 & 도전 과제: 1.댓글 트리 구조 구현 -대댓글 기능을 구현하면서, 댓글 데이터를 트리 구조로 관리하는 방법을 학습 -트리 구조를 적용하여 계층적으로 댓글이 표시되도록 구현 고민했던 점: -데이터 구조를 어떻게 설계해야 할지 고민 후 백엔드 설계처럼 트리구조로 설계해야함을 알게되었음 -부모-자식 관계를 유지하면서도, 여러 단계의 댓글을 효율적으로 불러오는 방식을 학습하여 댓글 데이터를 계층적으로 다루는 개념을 처음 적용해본 경험 배운점: 댓글 부분을 구현하면서 댓글 트리구조에 대해 공부하게 되었음

    Project Image
    일단 고

    협업 프로젝트: 위치 기반 자기계발 서비스 프로젝트 기간: 6주 기획의도: 사용자가 특정 위치에 도달하면 인증하여 목표를 달성할 수 있도록 구현 기획 2, 프론트엔드 2, 백엔드 3, 디자이너 1로 협업 진행 핵심 기술 경험 & 도전 과제 1.프론트엔드 협업을 처음 경험하며, 코드 스타일과 컴포넌트 구조를 맞추는 과정 학습 피그마를 활용하여 디자인을 확인하고, 실제 UI로 구현하는 경험을 쌓음 고민했던 점: -디자이너가 제공한 디자인을 최대한 구현하려 했지만, 캘린더의 일부 요소가 기존 라이브러리로 해결되지 않아 직접 개발해야 했음 배운점: -React와 date-fns를 활용하여, 라이브러리 없이 캘린더를 직접 구현 -선택한 날짜의 상태를 관리하고, 컴포넌트 간 데이터 흐름을 설계하는 경험을 쌓음 -팀 코드 스타일을 익히고, 협업 속에서 일관된 코드 작성 방법을 배움

      Logo
      위코드
      백엔드 개발코스
      2021년 1월 수료

      PDF로 접속하신 경우 삽입된 링크가 작동하지 않습니다. 링크로 직접 접속하시려면 웹버전을 확인해주세요. [웹으로 접속](https://yjlee.develofolio.com)

      Powered by