미리보기
기본 정보
더 나은 코드에 대해 항상 고민하는 신입 개발자 윤혜린입니다.
기술 스택
JavaScript, TypeScript, React, HTML/CSS, Java, JSP, Spring, Spring Boot, Node.js, Oracle, MySQL, MariaDB, Git, GitHub
프로젝트
메이플 길드 관리소 : 메소 (서비스 중)
기타
2024.03. ~ 진행 중
기존 구글 시트에 메이플 랭킹 페이지에서 importxml 함수를 통해 스크래핑 하여 받아오던 길드원 정보를 Nexon Open API를 통해 더 안정적이고 빠르게 받아오며, 매주 번거롭던 노블 제한 로직을 OCR 기술을 이용하여 좀 더 빠르고 간편하게 할 수 있도록 제작한 메이플 길드 관리 사이트
https://www.메소.kr
https://github.com/henniyoon/guild-manager
맡은 부분
- ERD 설계
- MVC 디자인 패턴 적용, 모듈화
- Nexon Open API를 통한 정보 조회
- Cheerio 라이브러리를 이용하여 API 미제공 정보 스크래핑
- Sequelize ORM을 이용하여 DB와 상호작용
- 길드 검색 시 길드 정보, 캐릭터 정보 조회 후 출력 및 필터링 기능
- 마이페이지에 개인 정보 출력 및 길드 관리자 인증 기능
- 관리자 페이지에 길드 정보 출력 및 필터링 기능
- 디스코드 고객센터 공지사항, 이용안내, 개발 일정, 피드백에 대한 답변 등 작성
My Manager
개인
2019.11. ~ 2020.02.
기존 Spring과 Mybatis를 이용하여 제작했던 팀 프로젝트 MyManager에서 맡았던 ToDoList를 리뉴얼
https://github.com/henniyoon/TodoProject
- 기존 코드의 문제점
JSP 파일 안에 복잡하게 로직과 클라이언트 부분이 섞여있는 스파게티 코드 - 리뉴얼 목표
코드 구조 개선 : 기존의 스파게티 코드를 개선하여 모듈화된 구조로 재구성하고 각 부분을 명확하게 분리하여 유지보수성을 향상
객체 지향 프로그래밍 (OOP) : 객체 지향적인 설계 원칙을 적용하여 코드를 재사용 가능하고 유연하게 수정
분리된 레이어 구조 : MVC 디자인 패턴으로 클라이언트, 서버, 비즈니스 로직 등을 각각의 레이어로 분리하여 각 역할에 집중하고 의존성을 최소화
JPA ORM의 적용 : JPA를 도입하여 객체 지향적인 데이터베이스 접근을 지원하며, JPA의 구현체인 Hibernate를 활용하여 데이터를 효율적으로 관리
포트폴리오
교육
더조은아이티아카데미학원
사설 교육 | 안드로이드 & IOS 앱 개발자 양성(혼합)
2021.03. ~ 2021.08. | 졸업
학점은행제
대학교(학사) | 컴퓨터 공학 전공
2019.07. ~ 현재 | 재학 중
이젠컴퓨터학원
사설 교육 | 자바(JAVA)를 활용한 안드로이드 앱개발
2019.05. ~ 2019.11. | 졸업
두원공과대학교
대학교(전문학사) | 반도체 전자 전공
2016.03. ~ 2019.02. | 졸업
휘경여자고등학교
고등학교 | 이과
2013.03. ~ 2016.02. | 졸업
대외활동
두원공과대학교 과사무실 근로 장학생
두원공과대학교
두원공과대학교 학생회
두원공과대학교
자격증
정보처리산업기사
큐넷
2021.08.
자기소개
노션으로 작성된 자기소개서는 웹에 개시 되어 있습니다
https://violet-zephyr-6ab.notion.site/Hennie-5cab2c82b9164e1f873fdb372eae74de?pvs=74
국비 지원 NCS 직업 훈련 수료 이후 스스로 개발로서의 부족함을 많이 느껴 인프런에서 김영한 님의 자바, 자바 스프링, 스프링 데이터 JPA 강의 등을 듣고 국비 지원 훈련 당시 제작했던 팀 프로젝트 My Manager에서 제가 맡았던 Todo List 기능을 기존에 JSP에 때려 넣은 코드에서 JPA ORM을 적용하고 MVC 패턴과 객체 지향 원칙을 고려하여 작성한 코드로 리팩토링하였습니다. 또한 백준, 프로그래머스 등의 사이트에서 알고리즘 문제를 풀고 제 풀이보다 더 나은 알고리즘에 대해 찾아보고 블로그에 기록하였습니다.
즐겨 하는 게임 내 매주 반복되는 복잡한 길드 관리를 보다 편리하게 하기 위해서 메이플 길드 관리소 : 메소 서비스를 제작하여 운영 중에 있습니다.
2인 팀 프로젝트로 진행하였고, Java Spring이 아닌 React와 Node.js를 이용한 개발은 처음이었으나 함께 개발하는 팀원의 주 언어가 Javascript이기도 하고, 각각 프론트엔드와 백엔드에서 인기 있는 기술이기 때문에 Java Spring과는 어떤 차이가 있는지, 왜 Node.js를 사용하는지 궁금해서 선택하게 되었습니다. 이전에 Java Spring 경험 덕분에 어렵지 않게 React와 Node.js에 적응할 수 있었고 Java Spring과 비교하여 각자의 장단점에 대해 정리하는 시간도 갖게 되었습니다.
개발 후 운영까지 하는 것이 목표였기 때문에 원활한 유지 보수를 위해 MVC 디자인 패턴을 적용하여 모듈화하였고 더 나은 코드 대해 끊임없이 고민하며 제작하였습니다. 개발 중 마주한 문제에 대해 상황과 에러코드에 집중하여 빠르게 문제를 해결하고 그 과정을 기록하여 팀원과 공유하였습니다. 베타서비스 오픈 2주 만에 1300+의 이용자를 달성하였습니다.
또한, 고객센터 개념의 디스코드 서버를 운영하며 개발 일정 및 공지 사항 등의 안내와 사용자들의 피드백을 받고 개선하여 사용자 편의성을 향상을 위해 노력하고 있습니다.
모듈화 기록
- Server.js API 모듈화 / MVC 패턴
- apiService와 guildApiService 병합
- dataFetcherController의 비즈니스 로직 분리 / 탈퇴자의 정보도 갱신
- Token 관련 로직 모듈화 / 관리자 인증
- API 조회 파라미터 Date 값 설정
피드백 반영 및 사용자 편의성 향상을 위한 노력 기록
- 피드백 : 관리자 페이지 길드 컨텐츠 점수의 총 합 표시
- 피드백 : 관리자 페이지에서 이름으로 필터링 기능
- 피드백 : IOS 환경에서 input type=’week’ 미지원
- 관리자 페이지 테이블에 본캐릭명 추가
- 길드 관리자 인증 로직 개선
- 크롤링 시 주의사항 / DB 추가, 갱신 속도 개선
최근에는 테스트 주도 개발에 관심을 갖고 인프런의 **실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD 강의**를 들으며 공부하고 있습니다. 공부한 내용을 바탕으로 앞으로 리팩토링하게 될 메이플 길드 관리소 : 메소 Ver.2를 포함한 모든 프로젝트에 적용하여 신뢰할 수 있고 유지 보수에 용이한 애플리케이션을 제작할 것입니다.
저는 신입 개발자로서 다음의 노력을 할 것을 약속합니다.
- 더 나은 코드에 대해 항상 고민하는 개발자가 될 것입니다. 최신 기술 및 개발 패러다임에 대한 지속적인 학습을 통해 개발 역량을 향상시키고, 적합한 기술을 프로젝트에 적용하여 더 나은 코드를 작성할 수 있도록 노력하겠습니다. 또한 다른 사람의 관점에서 제 코드를 바라보고 보다 효율적이고 가독성 좋은 코드를 작성할 수 있도록 노력하고, 동료 개발자들과의 코드 리뷰를 통한 피드백을 적극적으로 수용하며, 서로의 성장을 돕는 개발자가 될 것입니다.
- 어려움을 두려워하지 않고, 문제를 해결하는 개발자가 될 것입니다. 어떤 과제든 선배 개발자님들과 Open AI, 구글링의 도움을 통해 도전하고, 이를 통해 성장하는 경험을 추구할 것입니다.
- 팀원과 사용자들과의 소통을 소중하게 생각하는 개발자가 될 것입니다. 공동의 목표를 달성하기 위해 팀원들과 함께 협력하고, 사용자의 의견을 적극적으로 수용하여 서비스를 개선하겠습니다.