채용공고 올리기

한희나님을 응원해보세요!

좋은 제안에 열려있어요

미리보기

기본 정보

이름
한희나
직업
백엔드 개발자
간단 소개

자기소개

자기소개
  • 근거 있는 기술 선택과 코드 작성을 위해 트러블 슈팅의 발생과 해결을 글로 작성하여 블로그에 게시하고 있습니다.
  • 스펀지 같은 빠른 습득력으로 개인 프로젝트와 팀 프로젝트 모두 기한 안에 완료한 경험이 있습니다.
    • 개인 프로젝트에서 한 달 안에 Vue3 학습과 화면 전체 개발을 목표하고 달성했습니다.
    • 4학년 1학기 팀 프로젝트에서 책을 통해 javascript와 express.js를 학습하고 기한 내에 애플리케이션 서버 전체를 개발했습니다.
  • 해커톤과 교내 심화 캡스톤 디자인 대회에서 수상한 경험을 통해 혼자보다 함께 성장하는 것의 힘을 깨닫고 동료 성장을 지향하고 있습니다.
  • 상세 자기소개서 링크

기술 스택

기술 스택

Java, HTML/CSS, JavaScript, Spring Boot, JPA, junit5, MySQL, Docker, AWS

프로젝트

프로젝트명

도토리

소속/기관명

개인 프로젝트

프로젝트 기간

2024.04. ~ 2024.05.

프로젝트 내용

소개

[프로젝트 소개] 독서 기록을 통해 자신의 관심 분야를 확인할 수 있는 웹 애플리케이션 입니다.
[프로젝트 링크] Backend Github Repo | Frontend Github Repo | Website
[포트폴리오 링크] Portfolio

주요 역할

  • 도서를 저장하는 트랜잭션에 외부 API 통신이 묶여있어 성능 저하가 발생 → Java의 CompletableFuture를 이용해 네트워크 통신을 비동기로 처리하여 트랜잭션에서 분리
  • 매 요청마다 Authorization 헤더의 토큰의 유효성을 검증하는 로직 필요 → 인터셉터와 HandlerMethodArgumentResolver를 구현하여 공통 인가 로직 처리
  • 도서 서비스가 외부 API와 통신하는 클래스와 강하게 결합되어 있어 다른 API로 변경 시 서비스 코드도 변경해야하는 문제 발생 → DIP를 적용하여 확장성있는 코드로 리팩토링
  • 애플리케이션 배포 시 downtime 발생 → Github Actions, Docker, Ngnix을 사용해 블루/그린 무중단 배포로 변경함으로써 안정적인 서비스 제공
  • 도서와 독서 기록 서비스와 의존하여 복잡한 로직을 수행하는 통계에 퍼사드 패턴(Facade Pattern) 적용하여 컨트롤러에게 간결한 인터페이스 제공
  • 도서 검색 시 선언형으로 가독성 높고 익숙한 Spring MVC의 어노테이션을 사용할 수 있어 러닝 커브가 낮은 OpenFeign으로 외부 API와 통신
  • HTML, CSS, Javascript, Vue 3, Chart.js를 사용해 도서와 독서 기록 CRUD 화면과 그래프를 이용한 통계 화면 개발
프로젝트명

원데이히어로

소속/기관명

팀 프로젝트

프로젝트 기간

2023.10. ~ 2023.12.

프로젝트 내용

소개

[프로젝트 소개] 단기 알바, 심부름과 같이 일상의 작은 도움이 필요한 사람들과 소소하게 돈을 벌고 싶은 사람들을 이어주는 중계 플랫폼입니다.
[팀원] 프론트엔드 (3) 백엔드 (3)
[프로젝트 링크] GitHub Repo | Website
[포트폴리오 링크] Portfolio

주요 역할

  • JMeter로 성능테스트 결과, 제안할 미션 조회에 슬로우 쿼리 발생 → 인덱스 컨디션 푸시다운, 인덱스를 이용한 정렬, 커버링 인덱스를 통해 튜닝하고 응답 시간을 94.32% 향상 (5889ms -> 333ms) [관련 포스팅]
  • 미션과 리뷰 서비스가 알림 서비스와 강하게 결합되어 트랜잭션과 성능 저하 문제가 발생 → 알림에 스프링 이벤트를 적용하고 이벤트를 비동기로 처리함으로써 결합도 낮춤 [관련 포스팅]
  • 실시간성이 중요하지 않아 일정 시간 동안 동일한 결과를 반환할 수 있는 랭킹에 읽기와 쓰기 성능이 우수한 로컬 캐시인 caffeine cache를 Cache Aside 전략으로 적용하여 조회 성능 향상 [관련 포스팅]
  • 미션 이미지 조회 시 단건 반복 쿼리로 인해 미션 수에 맞춰 쿼리가 발생하는 n + 1 문제 발생 → 벌크 SELECT 쿼리로 쿼리의 실행 횟수를 1 + 1로 줄임으로써 해결 [관련 포스팅]
  • Redis와 MongoDB를 의존하여 통합 테스트하기 어려운 Service가 등장 → Testcontainers를 통해 테스트 환경을 구축하여 운영 환경과 동일한 환경에서 테스트 진행 [관련 포스팅]
    • 전체 테스트에서 커넥션은 한 번만 생성되는 반면, 도커 컨테이너는 여러 번 띄워져 테스트 실패가 발생 → 도커 컨테이너가 1번 만 띄워지도록 SpringBootTest Bean으로 등록하여 컨테이너 재사용
  • 과도한 분리로 인해 복잡했던 멀티 모듈 구조가 리팩토링을 통해 모듈의 수가 6개 → 3개로 감소됨으로써 단순화됨 [관련 포스팅1, 관련 포스팅2]

포트폴리오

URL

link

한희나 GitHub 링크

깃허브
link

한희나 개발 블로그 링크

티스토리

교육

소속/기관명

동우여자고등학교

종류 | 전공

고등학교 | 인문계

재학 기간 | 재학 상태

2015.03. ~ 2018.02. | 졸업

소속/기관명

경기대학교

종류 | 전공

대학교(학사) | 컴퓨터공학부 컴퓨터공학전공

재학 기간 | 재학 상태

2018.03. ~ 2023.02. | 졸업

대외활동

활동명

2024 DND 해커톤 우승

소속/기관명

DND IT 연합 동아리

연도

내용

[활동 기간] 2024.05.17 ~ 2024.05.18
[활동 내용] SpringBoot, OpenFeign, Ngrok을 사용하여 지역 교통 격차를 해결할 수 있는 웹 애플리케이션의 서버를 개발
[활동 성과] 1박 2일이라는 짧은 시간 내에 프론트, 디자이너와 협력하여 아이디어 선정부터 개발까지 완료하여 10팀 중 1위 달성 (블로그 회고)

활동명

데브코스 4기 백엔드 과정

소속/기관명

프로그래머스

연도

내용

[활동 기간] 2023.06 - 2023.12 (6개월)
[활동 내용]

  • 객체지향 프로그래밍 설계와 test 코드 작성법을 익히고 유지 보수가 쉬운 코드 작성의 중요성을 깨달음 (관련 포스팅)
  • Java와 Spring, JPA, SQL에 대해 학습
  • 2번의 협업 프로젝트를 진행하며 GitHub, Notion, Slack, Jira 사용법을 익히고 애자일한 소프트웨어 개발 경험
  • 함수형 프로그래밍을 주제로 1번의 발표를 통해 지식 공유 (발표영상 링크, 조회수 350회 이상)
활동명

심화 캡스톤 디자인 대상

소속/기관명

경기대학교

연도

내용

[활동 기간] 2022.03 - 2022.06 (4학년 1학기)
[활동 내용] node.js로 자가 진단을 통한 사용자 맞춤 영양제 추천 애플리케이션, PillGood의 서버를 개발
[활동 성과] 교내 심화 캡스톤 디자인 대회에서 대상을 수상

자격증

자격증명

정보처리기사

점수 | 발급기관

취득 | 한국산업인력공단

취득연월

2023.06.

자격증명

SQLD

점수 | 발급기관

취득 | 한국데이터산업진흥원

취득연월

2022.09.

댓글