채용공고 올리기

허상민님을 응원해보세요!

이직/구직 중이에요

미리보기

기본 정보

이름
허상민
직업
가벼운 대화와 검증으로 자동화를 고민하는 백엔드 개발자
이메일
stronghu95@gmail.com
간단 소개

가벼운 대화 와 검증으로 자동화된 기술을 고민하고 토론하여 좋은 서비스를 만드는 신입 개발자 허상민입니다. 문서화에 따른 많은 도움과 장점을 알기에 항상 문서를 남기고 다른 동료들과 함께 공유 하여 함께 발전해 나가는 중입니다.

기술 스택

기술 스택

NestJS, Node.js, JavaScript, MySQL, AWS, Docker, Jenkins, GitHub, Linux

경력

회사명

주식회사스티브랩스

직급 | 부서 | 근무 유형

백엔드 개발자 | 개발팀

근무 기간

2023.08. ~ 2023.11. (4개월)

담당 업무

유전자 검사 서비스 개발

  • 사용자의 유전검사 의뢰 시 사용하게 될 웹 애플리케이션 설계 및 개발

    • Prisma ORM 사용 DB 성능 부하개선 및 Join 횟수 20% 감소

    • DB table 구조 설계 참여 및 API 개발 검증/배포 담당

    • 서비스 사용자의 유전자 검사 결과를 바탕으로 알고리즘을 통해 건강에 위협이 되는 질병을 진단해 주고, 사용자의 건강검진 데이터를 함께 이용하여 진단 결과에 따른 검사를 추천해 주는 기능 개발

    • 국민건강보험공단 API 를 이용하여, 서비스 이용자를 특정하여 사용자의 건강에 위협이 되는 질병 진단 하는 서비스 개발

    • Amazon EC2, RDS, S3, SES, IAM, ELB 를 이용하여 인프라 구축 및 운영

    • CI/CD Jenkins,Docker, Github Action 를 이용하여 무중단 배포 설정 및 운영

    • 사용자의 검사결과 발행, 탈퇴, 등 유저 이벤트 발생시 카카오톡 으로 알림을 보내는 API 개발

  • 기타작업

    • 개발시 무분별하게 작성되는 변수명, 함수명 규격통일을 위해 공통설계 규칙 문서 작성 기여

    • 사내 개발팀의 DB Table명, Column명 공통설계 규칙 문서 작성 기여

프로젝트

프로젝트명

고양이 게시판

소속/기관명

개인

프로젝트 기간

2022.11. ~ 2022.12.

프로젝트 내용

NestJS 를 이용하여회원들이 고양이라는 컨셉을 가진 커뮤니티 사이트를 개발했습니다.
컨셉에 맞춰 고양이에 대한 정보(나이, 종, 이름, 이메일) 을 기반으로 서로 의 친목을 도모하고, 정보를 교류할 수 있도록 커뮤니티를 개발하였습니다. 이후 고양이만으로 한정하기 보다는 반려동물 들로 이용자를 확대 하여 서비스를 발전시키려고 합니다.

  • NoSql DB인 MongoDB 의 Cluster설계 및 구현
  • MongoDBQuery 조회시 관련기록이 Log에 남도록 설계 및 구현
  • DTO 패턴 방식의 설계로 DB 부하를 낮출수있도록 설계 및 구현
  • Schema 필드 가 노출이 제한적으로 되도록 설계
  • 회원가입/로그인 기능을 정규표현식을 활용하여, Sql Injection 에 대비하고 JWTPassport 인증을 통해 로그인 유지 및 권한 기능 구현
  • Multer 를 사용해서 서비스 내에 이미지, 영상, 파일 업로드가 가능하도록 개발
  • 서비스 내에 게시글 마다 추천 기능 과 댓글 기능 개발

프로젝트를 통해 고민했던 부분

  1. API에 대한 고민
  • 게시판을 만들때 NestJS로 API 는 어떻게 설계를 해야 이후 유지보수, 기능추가 할때 편하게 할 수 있을지 고민했습니다.
  • CRUD API 를 고민하고 디자인해서 전체적인 비즈니스 로직에 대해 고민했습니다.

프로젝트를 통해 성장한 부분

  1. 새로운 것을 만드는 경험
    기본이 되는 CRUD를 바탕으로 서비스를 만들어 볼 수 있는 좋은 경험이었습니다.

  2. 다양한 라이브러리 사용경험

JWT, Passport 와 같은 로그인 관련 라이브러리를 상호 보완 형태로 사용해 볼 수 있었습니다. 로그인 관련 API 개발시 여러개의 라이브러리를 가지고 상호 보완 형태로 사용해야 보안성이 향상 될 것 같습니다.

  1. DB 설계시 미디어파일 서비스 저장 방법

Multer 을 이용해서 사용자가 파일, 이미지, 미디어파일 서비스를 업로드 했을때 DB에는 어떤 형식으로 저장을 해야 하는지 몰랐는데 이번에 그 방법을 배울 수 있었습니다.

사용한 기술

Node.js, JavaScript, TypeScript, HTML/CSS, MongoDB, Nest.js, Mongoose

프로젝트명

Slack Clone

소속/기관명

개인

프로젝트 기간

2022.09. ~ 2022.11.

프로젝트 내용

NestJs를 이용하여 유명한 협업 툴인 Slack 을 Clone Coding 하여 가장 유사하게 구현하는 걸 목표로 Socket.IO 를 활용하여 실시간 채팅 을 구현했습니다.

  • ERD 설계 및 개발

  • Passport를 이용하여 로그인, 회원가입, 회원탈퇴, 로그인유지 기능 구현

  • 주요 기능인 워크스페이스, 유저 공간, DM 을 SocketIO 를 이용하여구현

  • Gateway를 사용하여 API 들의 공통에러 와 예외처리 가 되도록 설계

  • Multer 를 사용하여 이미지 및 파일 업로드 기능 개발

  • Unit Test 를 통해서 기능 단위 테스트 를 진행

  • E2E Test 를 통해서 API의 전체적인 기능과 시스템에서 발생하는 시나리오 를 작성하여 테스트 진행

  • Swagger 를 이용해서 API문서 제작 및 공유

프로젝트를 통해 고민한 부분

  1. NestJS 를 어떻게 사용할것인가 (Feat.DI)

  • NestJSExpressJS 에 비하여 비즈니스로직을 따라서 설계를 해야 할지 트랜잭션에 따라 설계를 할지 고민했습니다.

  • ExpressJS 와는 다르게 비즈니스로직에 따를지 트랜잭션에 따라서 분리를 해야 할지 고민했습니다.

  • 하나의 워크스페이스 안에 다수 의 사용자들이 접속했을때 각 사용자들의 접속상태를 구현하는 부분을 고민했습니다.

  • NodeJS 의 특징인 싱글스레드 상태에서 다수작업이 병렬발생시 어떤 방식으로 처리를 해야 할지 고민했습니다.

프로젝트를 통해 성장한 부분

  1. NestJS 사용법 습득

  • TypeScript 를 사용함으로써 코드의 가독성이 기존 javascript 보다 10% 더 좋아지고 이에따른 타입에러나 로직에러 발생가능성을 줄일 수 있었습니다.

  • DI 를 사용해서 코드의 양을 기존의 Express대비 30% 줄일 수 있었습니다.

  1. 보안에 대한 전반적인 이해도
    전공으로 배운 보안에 대해 실제로 코딩하면서 어플리케이션 서비스의 인가와 권한 설계 와 구현에 대한 명확하게 이해할 수 있었습니다.

  2. 친절한 문서를 작성하는 법

  • Swagger 문서를 Controller 로직에 적용하면서 '어떻게 작성하면 프론트 개발자 들이 편하게, 쉽게, 친절하게 API 문서를 만들수 있을까' 에 대해 고민을 하고 문서를 작성했습니다.

사용한 기술

Node.js, JavaScript, TypeScript, MySQL, Nest.js, Typeorm

프로젝트명

InTheForest

소속/기관명

InTheForest

프로젝트 기간

2019.03. ~ 2019.11.

프로젝트 내용

InTheForest 솔루션은 문서 중앙화 솔루션 으로 기업에서 작성된 문서, 파일 들을 랜섬웨어 등 각종 해킹으로부터 안전하게 보관하고 정책을 통해 문서, 파일에 대한 접근을 통제하여 가용성을 높여주는 솔루션 을 개발 했습니다.

  • 관리자 와 유저 간 권한 분리를 위해 Passport를 이용하여 로그인, 회원가입, 회원관리 기능 개발

  • 관리자의 통합 제어와 모니터링을 위해 DashBoard 구현, Event Log 생성 및 저장기능 개발

  • 관리자가 정책을 통해 유저를 제어하고 모니터링 기능 개발

  • 관리자가 이용할 수 있는 정책 중 폴더, 시스템 정책 개발

  • AWS EC2, RDS 를 활용하여 Cloud 시스템으로 Database 와 서버를 이중화 하여 해킹 및 외부 공격으로부터 솔루션을 보호

  • Nostion , Github을 활용하여 협업 및 이슈 관리

프로젝트를 통해 고민했던 부분

  1. 처음 사용하는 AWS
    과거 완성했던 프로젝트를 발전시켜서 사용자의 경험과 내부코드의 개선을 최우선 으로 개선하며, Window Server기반에서 Cloud 환경의 AWS로 마이그레이션 과 UI/UX부분의 중복, API 설계 변경, AWS의 EC2, RDS설정 을 고민했고, AWS에 대한 정보가 많이 없어서 AWS의 영문 매뉴얼을 해석 해서 적용하는 부분을 고민했습니다.

프로젝트를 통해 성장한 부분

  1. AWS 사용법 습득
    AWS의 사용법 및 과금 과정을 확인할 수 있었습니다. 또한 Cloud 환경에서의 서비스와 다중접속시에 CloudComputing 에 대해 배울 수 있었습니다.

  2. 협업에 있어서 필요한 커뮤니케이션 능력 습득
    전보다 다양한 많은 전공과정의 사람들과 함께 협업을 하다보니 개발자 일때 와는 다르게 디자이너의 입장, 기획자의 입장일때의 시각을 볼 수 있었습니다. 같이 프로젝트를 하는 동료의 요구사항이나 희망사항이 어떤건지 또 동료들은 개발자의 관점에서 이해를 시켜주는 과정을 통해 소통이 무엇보다 중요하다는걸 알 수 있었습니다.

사용한 기술

Node.js, JavaScript, HTML/CSS, C#, AWS(EC2, AWS Linux2, RDS, ...etc), MySQL, Express, Handlebars.js, Bootstrap, MetroFramework, Jquery

포트폴리오

URL

link

Notion

노션
link

Blog

티스토리
link

Github

깃허브

자기소개

자기소개

다양한 기술적 문제가 발생하더라도 프로세스를 적립하고 문서화를 할 수 있는 넓은 시야 와 생존력을 지녔습니다!

  • 프로젝트 초기부터 사용하고 있던 데스크톱의 Window Server를 AWS의 EC2로 마이그레이션 하여 사용자의 서비스 접속지연을 30% 감소시키고 사용자의 위치에 따른 접속지연을 50% 감소시켰던 경험이 있습니다. 당시 AWS는 서비스 초기로 한국에서는 많이 알려지지 않았고 Region 또한 서울이 아닌 Tokyo Region 으로 당시 EC2, RDS, ELB를 AWS의 영문 매뉴얼을 보고 구축하여 유지보수했던 경험이 있습니다. 이런 경험을 바탕으로 다양한 환경에서 빠르게 고민하고 해결할 수 있는 능력을 갖추고 있습니다.

항상 매뉴얼을 만들고 교육을 진행합니다.

  • 진행했던 프로젝트는 모두 Github에 업로드을 해서 README 와 자체 매뉴얼을 제작하여 프로젝트의 버전 관리를 하여, 초기 1차 개발 목표 달성 후 프로젝트 고도화 시에 개선해야 할 코드를 찾는 시간을 30% 정도 감소시키며, 테스트 케이스 진행 시에서 발생률을 10% 낮췄습니다.
    새로운 동료가 진행 중인 프로젝트에 참여시 기존 매뉴얼이 없을 때 참여한 동료보다 매뉴얼과 Git에 올라와 있는 Readme 를 참고 한 동료가 50% 빠른 속도로 프로젝트에 참여하여 진행되고 있는 프로젝트에 기여할 수 있도록 하였던 경험을 바탕으로 다른 동료들과의 협업을 원활하게 할 수 있습니다.

  • 프로젝트 진행 시에 Front End 와 Back End 사이에 발생하는 데이터 처리 문제, 기능구현 문제에 대해 다수의 의견충돌이 있었는데, 이 두팀 사이에서 이견조율 하여 타협점을 찾아낸 경험을 바탕으로 쉽게 개발하기 위해 데이터를 처리하는 노하우를 가지고 문서화 작업을 통해 이후 있을 프로젝트 진행 시에 활용할 수 있도록 하였습니다.

가장 힘들었지만 값진 경험을 공유합니다.

  • AWS로 마이그레이션 한 클라우드 서버의 문제가 발생하여, AWS기술지원 팀과의 통화를 통해 EC2의 AMI 버그 와 오류를 해결 하고 서비스가정상작동될 수 있도록 한 경험을 가지고 있습니다. 이때의 경험으로 Back End서비스의 문제가 발생시에 어떠한 문제도 스스로 학습하고 많은 동료들과 공유하여 집단지성으로 문제를 해결했던 경험을 바탕으로 Back End 업무나 DevOps업무를 하면서 문제가 발생시에 빠르게 고민하고 빠르게 해결할수있습니다.

  • Back End 개발자들은 보이지 않는 조력자 라고 합니다 Front End 개발자 들이 사용자를 위해 멋지게 꾸며 주면 Back End개발자 들은 그것들이 잘 작동할 수 있도록 도와주고 서포트 해주는것 이라고 생각합니다.

    이처럼 목표하고자 하는 것에 대해 포기 하지 않으며, 끈기 있게 문제 를 해결하는 Back End 개발자 허상민 입니다.

교육

소속/기관명

Amazon Web Service Academy

종류 | 전공

사설 교육 | AWS

재학 기간 | 재학 상태

2019.10. ~ 2019.11. | 졸업

소속/기관명

한국IT전문학교

종류 | 전공

대학교(학사) | 융합정보보호학

재학 기간 | 재학 상태

2015.03. ~ 2020.02. | 졸업

자격증

자격증명

정보처리기사

점수 | 발급기관

합격 | 한국산업인력공단

취득연월

2021.11.

자격증명

네트워크 관리사

점수 | 발급기관

2급 | ICQA

취득연월

2015.12.

자격증명

CCNA

점수 | 발급기관

합격 | CISCO

취득연월

2013.09.

외국어

외국어명

영어

점수

비즈니스 회화 가능

외국어명

중국어

점수

일상 회화 가능

댓글