채용공고 올리기

유선아님을 응원해보세요!

지금 만족하고 있어요
성실함
책임감
커뮤니케이션
긍정적
적응력

미리보기

기본 정보

이름
유선아
직업
백엔드 개발자
간단 소개

효율적인 업무처리를 좋아합니다. IT 스타트업에서 인사팀 직원으로 재직하며 개발자들의 업무를 지켜보며 업무 자동화에 흥미를 느끼며 개발의 매력에 빠진 유선아입니다. 인사 업무 자동화를 위해 구글 시트와 슬랙을 연동하여 인사 자료를 처리하는 작업을 진행했습니다.

기술 스택

기술 스택

Java, Spring Boot, JPA, Node.js, NestJS, Python, MySQL, Docker, aws-ec2, aws-rds, GitHub, github-actions, Redis, TypeORM

경력

회사명

주식회사 위티

직급 | 부서 | 근무 유형

인턴 | 개발팀

근무 기간

2024.08. ~ 2024.08. (1개월)

담당 업무

주요 업무

  • NestJS 및 TypeORM을 사용한 퀴즈 서비스 MVP 백엔드 구축

  • 기획의도 분석을 통해 ERD 설계 및 API 문서 작성

  • Python, requests, BeautifulSoup, Selenium을 활용한 데이터 수집, 가공 및 시각화

Projects

  1. MVP 개발 프로젝트 “창업해보카”

    • ERD 설계 : 데이터베이스 테이블 간 관계 정의

    • API 명세서 작성 : 팀 내 원활한 소통을 위한 API 명세서 작성

    • API 개발 : 문제 조회 및 풀이 내용 저장, 문제 활성화 기능 API

    • CRUD API 및 테스트 코드 작성

  2. 데이터 수집 및 크롤링 자동화

    • Google Play Store & Apple App Store: 무료 게임 앱 데이터 100여 개 수집

    • BeautifulSoup & Requests: HTML 파싱 및 CSV 파일 저장

    • Selenium: 네이버 블로그, 브런치 스토리, 티스토리에서 수천 건의 피드 크롤링

  3. 대규모 데이터 수집 및 가공

    • Google Play Store & App Strore 내 게임 앱 리뷰 5만 건 크롤링

    • 프로젝트 관리 협업툴 관련 게시글 리뷰 5만 건 크롤링

    • Pandas를 활용한 데이터 중복 제거 및 리뷰 데이터 최적화

회사명

샤플앤컴퍼니

직급 | 부서 | 근무 유형

매니저 | 경영지원팀

근무 기간

2021.06. ~ 2023.08. (2년 3개월)

담당 업무

주요 업무 :

  • 회계 관리 (매출 관리, 전자세금계산서 발행, 급여지급 , 비용관리)

  • 인사 업무 (온보딩, 입사 및 퇴사 과정 관리, 다면 평가, 자산관리)

회사명

서림통상(주)

직급 | 부서 | 근무 유형

사원 | 회계팀

근무 기간

2021.04. ~ 2021.06. (3개월)

담당 업무

주요 업무 :

세금계산서 발행, 매출계산서 및 매입계산서 입력, 입출금내역, 매출 현황 관리

프로젝트

프로젝트명

오점머 (오늘 점심 뭐먹지?)

소속/기관명

개인

프로젝트 기간

2023.08. ~ 진행 중

프로젝트 내용

서비스 링크 : https://lunch.picksay.com/

Github 링크 : https://github.com/YOOSUNAH/meal-recommendation

기술 스택 : Java 17, Spring Boot 3.1.0, MySQL8.0.35

프로젝트 설명 : 이 서비스는 점심메뉴를 고민하는 시간을 덜어주기 위해, 실제 사용자의 현재 위치를 중심으로 사용자가 선택한 카테고리(한식, 중식, 일식, 양식)의 식당을 랜덤으로 추천해주는 서비스 입니다.

주요 기능 및 구현

데이터 수집 및 저장

  • 공공데이터 활용 : 서울 열린 데이터 광장에서, 약 50만건의 서울시 일반 음식점 정보를 수집

  • 웹 크롤링 : Selenium WebDriver를 활용한 데이터 수집

  • 스케줄링 : @Scheduled 어노테이션을 활용한 자동화 구현

  • 데이터 저장 방식 :

    • DELETE + INSERT: 13,479ms

    • UPDATE: 1,017ms (약 13배 성능향상)

    • UPDATE 방식 채택

위치 기반 추천

  • 사용자 위치 파악 : Geolocation API 를 통해 사용자의 위도 경도 수집

  • 반경 200m 내 음식점 검색 : Haversine 공식을 사용해, 사용자의 위치를 기준으로 거리를 계산

  • 추천 알고리즘:

    • 사용자가 선택한 카테고리(한식, 중식, 일식, 양식)에 맞는 음식점 추출

    • 필터링된 음식점 중 무작위 10개 추천

트러블 슈팅 1 - 서울시 공공 데이터 좌표계 변환 오류

  • 문제 : 서울시 공공 데이터 좌표계와 geolocation 좌표계 차이로 인해 잘못된 위치 정보 발생

  • 원인 :

    서울시 일반음식점 인허가정보'의 좌표계는 중부원점 TM(EPSG:2097) 좌표계를 따름 UTMK 좌표계로 잘못 파악하여 좌표 변환 오류 발생

  • 해결 : 변환 후 좌표의 위치가 크게 상이함을 통해 문제 확인 후 좌표계 정의 수정

트러블 슈팅 2 - JPA saveAll() 사용 시 중복 데이터 저장 문제

  • 문제: JPA의 saveAll() 메서드 사용 시 모든 컬럼이 동일해야만 UPDATE가 이루어졌고, 일부 컬럼이 다르면 INSERT가 발생하여 데이터 중복 저장 문제 발생

  • 원인: 고유 식별자가 없어 기존 데이터와 비교되지 않아 INSERT가 반복됨

  • 해결:

    • "관리 번호"를 기준으로 고유 식별자를 설정하고 unique 제약 조건 추가

    • 기존 데이터를 메모리에 로드한 후 배치 단위로 처리 (배치 크기: 5000)

    • 성능 최적화 (30분 → 23.5초, 약 76배 개선)

  • 결과: 중복 저장 문제 해결 및 대량 데이터 처리 성능 개선

프로젝트명

Want it 경매 플랫폼 (나만의 애장품을 경매에 붙일 수 있는 경매 플랫폼 서비스)

소속/기관명

내일배움캠프

프로젝트 기간

2024.03. ~ 2024.04.

프로젝트 내용

시연영상 링크 : https://www.youtube.com/watch?v=QvSy95vkQpo

Github 링크 : https://github.com/DCNsProjects/WantIt

기술 스택 : Java 17, Spring Boot 3.2.4, MySQL8.0.35, JWT, Refresh Token, Redis, SSE

인원 : BE 4명


프로젝트 설명 : 나만의 애장품을 경매에 붙일 수 있는 경매 플랫폼 입니다. 판매 희망 상품을 등록하면 원하는 날짜와 기간동안 경매를 진행할 수 있습니다.

담당 역할 :

로그인, 회원가입, 회원 정보 관련 CRUD, 좋아요 , 이메일 인증 코드 발송, SNS 로그인

  • 로그인 및 회원가입

    • JWT를 사용하여 보안성을 향상. 사용자 요청 시 JWT를 검증하여 인증된 사용자만이 접근할 수 있도록 하여 보안성을 강화

    • 실제 회원가입과 유사한 프로세스로 이메일 인증 코드를 발송하는 기능을 추가하여 보안성 향상

    • SNS 로그인을 통해 사용자의 편의성 향상

  • 회원 정보 관련 CRUD

    • 회원 정보 조회는 관리자 계정으로 로그인할 때에만 가능하도록 설정하여 보안성을 강화

    • 회원 정보 수정 기능은 일반 정보와 비밀번호를 각각 수정할 수 있도록 나누어 제공하여 사용자 경험을 향상

    • 회원 정보 삭제 기능은 탈퇴를 고려하여 구현되었으며, 실제로는 데이터베이스에서 삭제되지 않고 소프트 삭제 형태로 구현하여 데이터 보존을 유지

  • 좋아요 및 좋아요 취소

    • 사용자가 좋아요 한 기록을 저장하기 위해 좋아요 상태를 boolean 값으로 지정해 한 번 선택하면 좋아요를 활성화하고, 두 번 선택하면 비활성화할 수 있는 기능을 구현

트러블 슈팅1

  • 문제: 실시간 호가 정보 전송 메서드 실패시 반복문이 종료되어 사용자가 호가 정보를 받지 못하는 문제 발생

  • 원인: 메세지 전송을 담당하는 메서드에서 반복문을 사용하여 한 번의 실패로 전체 반복문이 종료됨

  • 해결: 메세지 전송 메서드와 반복문을 분리하고, 병렬 처리를 위해 parallelStream()을 활용

트러블 슈팅2

  • 문제: CORS 브라우저 정책으로 인한 HTTP 요청 제한 문제 발생

  • 원인: 프론트엔드 서버 포트와 백엔드 서버 포트의 차이로 인해 CORS 정책에 위배되어 요청이 제한됨

  • 해결 : 백엔드에서 WebMvcConfigurer를 상속받는 WebCorsConfig를 만듦

트러블 슈팅3

  • 문제: 로컬 테스트시 파일 이미지 패스 생성 불가로 파일 전송 실패

  • 원인: OS X (mac)의 파일 시스템 쓰기 권한 문제로 이미지 패스가 생성되지 않아 전송이 막힘

  • 해결: 로컬에서 쓰기 권한이 있는 폴더만 생성

교육

소속/기관명

숙명여자대학교

종류 | 전공

대학교(학사) | 중어중문/경영학부 (복수전공)

재학 기간 | 재학 상태

2016.03. ~ 2021.08. | 졸업

대외활동

활동명

SK 대학생자원봉사단 SUNNY

소속/기관명

SK

연도

내용

초심자 눈높이에 맞춘 코딩 원리 봉사활동

  • 활동목표 : 아이들에게 코딩 그 자체가 아닌, 코딩의 원리를 다양한 활동과 놀이를 통해 쉽게 익히도록 하는 것

  • 아이들이 쉽게 흥미를 가질 수 있는 활동으로 순서의 개념을 재미있게 받아들이게 하고, 아이들의 일상생활을 통한 프로그램을 이용하며 코딩이 어려운 것이 아님을 알려주고 보다 쉽게 접근할 수 있게 하는 교육 봉사 대외활동

자격증

자격증명

컴퓨터활용능력

점수 | 발급기관

2급 | 대한상공회의소

취득연월

2021.05.

자격증명

전산회계

점수 | 발급기관

1급 | 한국세무사회

취득연월

2021.03.

자격증명

TOEIC SPEAKING

점수 | 발급기관

LEVEL7 (Advanced Low) | 한국TOEIC위원회

취득연월

2021.03.

자격증명

TOEIC

점수 | 발급기관

880 | 한국TOEIC위원회

취득연월

2021.01.

자격증명

新 HSK

점수 | 발급기관

215점/5급 | HSK한국사무국

취득연월

2019.12.

외국어

외국어명

영어

점수

비즈니스 회화 가능

외국어명

중국어

점수

일상 회화 가능

자기소개

자기소개

안녕하세요, java와 spring 기반으로 공부하는 백엔드 개발자 유선아 입니다.

저는 IT 스타트업에서 경영지원 업무를 수행하며, 개발자들의 업무를 가깝게 지켜볼 수 있었고, 업무를 자동화 하는 모습에 흥미를 느껴서 개발에 입문하게 되었습니다. 경영지원 업무를 수행하며 저또한 한달의 한번씩 매번 반복되는 인사 업무를 구글 시트와 슬랙을 연동하여 알림을 받도록 처리하는 작업을 진행한 경험도 있습니다.

자동화하기 위해 스스로 개발 공부를 시작하게 되었고, 퇴사 후 본격적으로 학원을 다니며, Java와 Spring 기반으로 백엔드 개발 양성 과정에 6개월간 참여하여 수료하였습니다. 이때 팀프로젝트를 여러차례 진행하며 협업 능력 또한 향상시켰습니다. 수료 이후에는 인턴으로써 근무하며, 이전에 배운적은 없지만 업무 진행을 위해 Node와 Python을 독학하며 적극적으로 업무에 임했습니다. 이렇게 기본기를 탄탄히 다지며, 현업에서 필요한 기술과 역량을 갖추기 위해 끊임없이 노력하는 개발자입니다.

댓글