소개 / About Me
기회를 만드는 개발자 이은경입니다.
대학 입학 후, 코로나 19로 인해 사람들과 교류하기 어려운 환경에서도 어플 개발 동아리에 임원진으로 지원해 2년간 활동을 했습니다. 그 과정에서 대전 경찰서와 협력하여 비대면 고지서 발급 어플 개발 백엔드에 참여하여, 백엔드 역량을 쌓아왔습니다. 앞으로도 이러한 적극적인 태도를 바탕으로 업무를 수행하는 과정에서 꾸준히 성장하기 위해 노력하겠습니다.
Birthday | 2002.07.04 |
---|---|
[email protected] | |
Mobile | 010-8401-2510 |
Address | 서울특별시 영등포구 영등포동 |
블로그 | https://p-kyung.tistory.com |
깃허브 | https://github.com/pkyung |
기술 스택
구분 | Skill |
---|---|
Programing Languages | java, python, java script |
Framework/ Library | Spring, SpringBoot, Jpa |
Server | Linux |
Tooling/ DevOps | gcp, ncp, aws, docker |
Database | mysql, oracle |
ETC | Git, Github |
프로젝트 경험
hirehigher : 외국인 노동자 매칭 서비스 (백엔드 개발)
작업 기간 | 2024.09 ~ 2024.11 |
---|---|
인력 구성 | 프론트엔드 4인, 백엔드 4인 |
프로젝트 개요 | 한국에서 일하는 외국인 노동자는, 근로의 전 과정에서 불리함을 느끼기 쉽습니다. 그리고 외국인 노동자를 고용하려는 사업주는 외국인 노동자를 쉽게 고용할 수 없습니다. |
이러한 페인포인트를 분석하여, 외국인 근로자와 한국 고용주 사이의 신뢰를 구축할 수 있는 구인구직 및 근로계약서 작성 서비스를 기획하였습니다. | |
주요업무 | |
및 | |
상세역할 | 요청 시, 요청 정보와 함께 근로계약서 pdf 작성 기능 구현 (서명 이미지 추가) |
사용언어 | |
및 개발환경 | java 21, spring JPA, mysql, nginx, docker |
기여한 점 | |
및 | |
성과 | 기여: 근로계약서를 PDF 파일로 생성하고 서명 후, 이를 구글 클라우드 스토리지에 저장하는 기능을 구현했습니다. |
문제 정의: 근로계약서 작성 시 계약서의 표준 양식을 유지하며 정확한 정보가 반영되어야 했습니다. | |
문제 해결: 스프링 라이브러리 중 pdf를 다루는 라이브러리는 iText와 Apache PDFBox가 있습니다. 그 중 iText를 활용하여 근로계약서의 양식을 유지하며 요청된 정보를 텍스트로 입력하는 기능을 구현했습니다. iText를 선택한 이유는 Apache PDFBox에 비하여 iText가 서식과 스타일을 세밀하게 제어하고 이미지를 삽입 시 직관적인 메서드를 제공하여 코드가 간결하고 효율적이기 때문입니다. | |
itext : scaleAbsolute(width, height), scaleToFit(width, height) | |
apache pdfbox : drawImage(image, x, y, width, height) |
기여: 파일 구조 관리를 도메인 주도 설계 방식으로 도입하여 도메인 별로 책임을 명확히 분리하여 협업 효율성을 극대화했습니다. 문제 정의: 기존 계층형 아키텍처에서는 계약서 관리, 지원 관리, 인증 처리 등의 서비스가 같은 패키지에 있어 코드 복잡도가 증가하고, 협엽 시 충돌이 빈번하게 발생했습니다. 문제 해결: 협업 과정에서 명확한 도메인 경계를 설정하기 위해 DDD를 도입하여 프로젝트 구조를 재설계했습니다. | | github | Code : https://github.com/kakao-tech-campus-2nd-step3/Team18_BE |
학수고대 : 온라인 롤링페이퍼 서비스 (백엔드 개발)
작업 기간 | 2023.12 ~ 2024.06 |
---|---|
인력 구성 | 디자인 1인, 프론트엔드 1인, 백엔드 1인 |
프로젝트 개요 | 온라인 롤링페이퍼 서비스 ‘학수고대’는 서로의 성장을 편지로 응원하는 플랫폼입니다. |
사용자가 자신의 목표를 담아 ‘유리병’을 생성하고, 해당 링크를 공유하면 익명의 사람들이 유리병 속에 응원이 메시지를 담은 종이학 편지를 작성할 수 있는 서비스입니다. | |
주요업무 | |
및 | |
상세역할 | Kakao 소셜 로그인 기능 구현 |
사용자 별 유리병 생성 및 삭제, 조회 API 설계 및 구현 | |
유리병 내 종이학 편지 생성 API, 본인만 조회할 수 있는 조회 API 설계 및 구현 | |
사용언어 | |
및 개발환경 | java 8, spring, spring JPA, mysql, centos |
기여한 점 | |
및 | |
성과 | 기여: 종이학 편지 데이터를 효율적으로 조회하기 위해 Hibernate의 로딩 전략을 학습하고 적용해보았습니다. |
문제 정의: 초기 설계에서는 종이학 데이터를 조회할 때마다 연관된 유리병 데이터를 즉시 로딩(EAGER) 방식으로 가져오도록 설정했습니다. 유리병 데이터는 종이학 데이터를 사용할 때 항상 필요한 정보가 아니었으나, 조회 성능에 미치는 영향을 분석하거나 최적화 방안을 검토하지 않은 상태였습니다. | |
문제 해결: Hibernate의 로딩 전략 중 LAZY 로딩 방식을 학습하고, 필요할 때만 연관 데이터를 조회하도록 코드를 개선했습니다. 이를 통해 유리병 데이터가 실제로 필요한 경우에만 로드되도록 변경했습니다. | |
결과: EAGER 로딩은 쿼리 수가 적지만 데이터 양이 많아질수록 초기 로드 시간이 오래 결렸으나, LAZY 로딩은 초기 조회는 빠르지만 연관 데이터를 호출할 때마다 추가 쿼리가 발생하여 트랜잭션 관리가 중요했습니다. | |
github | Readme : https://github.com/HakSuGoDae |
Code : https://github.com/HakSuGoDae/BekSuGoDae |
비대면 시위 소음 고지서 발급 어플 (백엔드 개발)
작업 기간 | 2023.02 ~ 2023.07 |
---|---|
인력 구성 | 모바일 2인, 백엔드 2인 |
프로젝트 목적 | 시위 고지 어플 |
주요업무 | |
및 | |
상세역할 | 백엔드 총괄 |
pdf 파일 글자 추가 후 이미지 변환하는 기능 구현 | |
사용언어 | |
및 개발환경 | java 8, spring boot, ncp |
기여한 점 | |
및 | |
성과 | 기여: 서버 배포 과정에서 ssh 포트를 잘못 설정하여 보안 사고가 발생했지만, 이 문제를 해결하고 보안 강화를 위한 조치를 주도했습니다. |
문제 정의: 클라우드 서버를 배포하는 과정에서 ssh 포트에 모든 IP에서 접근 가능하도록 설정했습니다. 이로 인해 외부 공격자가 서버에 침입할 수 있는 취약점이 생겼고, 결국 서버가 해킹 당하는 사고가 발생했습니다. | |
문제 해결: 해킹 사건 발생 후, 즉시 서버를 내리고 클라우드 서비스의 관리자 비밀번호를 재설정했습니다. 또한, ssh 설정을 수정하여 접근을 특정 ip (my ip)로 제한했습니다. | |
결과: ssh 포트 접근을 제한함으로써 서버의 보안을 강화했고, 서버의 무단 접근이 차단되었습니다. 이 경험을 통해 보안 설정의 중요성을 깨달았고, 향후의 ssh 포트 설정에 신중하게 되었습니다. | |
github | readme.md : https://github.com/JungWooGeon/DemonstrationService |
code : https://github.com/pkyung/motion_backend |
공공데이터 활용한 아카이브 서비스 (백엔드 개발)
작업 기간 | 2023.04 ~ 2023.06 |
---|---|
인력 구성 | 프론트엔드 1인, 백엔드 2인 (본인 포함), 디자이너 1인 |
프로젝트 목적 | 충남대학교 공공데이터를 활용한 공모전, 인턴, 세미나 정보 모음 웹사이트 |
주요업무 | |
및 | |
상세역할 | 백엔드 총괄 |
공공데이터를 검색어에 따라 크롤링하여 반환하는 기능 구현 | |
관심 공모전 저장 기능 구현 | |
사용언어 | |
및 개발환경 | java 8, spring boot, spring boot jpa, gcp(최초 배포), aws(최후 배포) |
기여한 점 | |
및 | |
성과 | 기여: http로 배포한 웹 서비스에서 프론트엔드가 https로 배포되면서 프로토콜 오류가 발생했습니다. |
문제 정의: 초기 배포 시, 백엔드 서버는 http 프로토콜을 사용했으나, 프론트엔드는 https로 배포되어 서로 다른 프로토콜 간의 통신이 이뤄지면서 CORS 오류 및 보안 경고가 발생했습니다. 이로 인해 사용자는 서비스에 접근할 수 없게 되었습니다. | |
문제 해결: 도메인을 구매하고 SSL 인증서를 추가하여 백엔드 서버도 https 프로토콜로 재배포를 진행했습니다. | |
결과: ssl 인증서 추가 및 https 프로토콜의 전환 이후, 프로토콜 오류 해결 뿐 아니라 보안이 강화된 서비스를 제공함으로써 사용자 경험이 개선되었습니다.70 | |
github | readme.md : https://github.com/cnu-data-contest |
code : https://github.com/cnu-data-contest/cnu-data-contest-backend |