미리보기
기본 정보

- 문제를 분석하고 해결하는 과정을 즐기는 개발자 노재경입니다. - 타인과의 생산적 소통을 즐기며, 그 과정에서 시각과 사고의 폭을 넓히고자 노력합니다. - 한 줄의 코드를 작성하더라도 스스로의 논리와 이유에 근거한 코드를 작성하고자 합니다. - 현재는 클린 코드, 클린 아키텍처, TDD에 관심을 갖고 공부하고 있습니다.
자기소개
코드 한 줄에도 논리를 담는 개발자가 되고자 합니다.
- 하나를 배우더라도 '왜 이렇게 사용하라고 하는지', '왜 이렇게 언급하는지' 등을 충분히 고민하고 스스로 적용해보고자 노력합니다. 하나의 기술을 사용하더라도, 다른 기술과의 트레이드 오프를 세밀하게 분석해 '왜 해당 기술을 사용해야하는지'에 대한 논리적 근거를 마련하고자 고민합니다.
능동적으로 학습하는 개발자가 되고자 합니다.
Java - Spring 진영의 여러 기술들을 학습하고 직접 사용해보고자 부트캠프에 참여하고 팀 프로젝트를 수행했습니다. Spring Boot와 JPA를 활용해 기본적인 CRUD 기능 및 다양한 조건의 조회 기능을 Restful하게 구현하였습니다. 프로젝트의 배포를 담당하여 AWS에서 제공하는 여러 서비스들을(EC2, S3, ROUTE 53 등) 직접 사용하여 제작한 서비스를 배포하하였습니다.
테스트 코드의 중요성을 느끼고 테스트 코드 작성 역량을 강화하고자 TDD기반의 개인 프로젝트를 진행 중에 있습니다. 해당 프로젝트 과정에서, 동적 쿼리 처리를 위한 QueryDSL 학습 및 기능 구현, 소셜 로그인 기능 구현을 위한 OAuth기능 구현 등 구현하고자 하는 기능과 이에 필요한 기술이 있다면 망설임없이 찾아보고 학습합니다.
현재는 클린 코드, 클린 아키텍처 등 더욱 객체지향적이며 유지보수하기 좋은 코드는 무엇인가에 관심을 갖고 공부하고 있습니다.
기술 스택
Java, Spring, JPA, Git, AWS, Spring Boot, Mockito, junit5, MySQL, ORM, Redis
프로젝트
바버 커뮤니티 - 그루밍 존
개인
2023.11. ~ 진행 중
TDD 개발 방식 및 테스팅 역량 강화를 위해 진행 중인 프로젝트입니다.
진행 과정 : https://random-topic.tistory.com/category/Programming/TDD%20Project
백엔드 개발
TDD 개발 방법론 적용 및 테스트 코드를 작성하기 좋은 코드 작성
- 기능 구현에 TDD 방법론을 적용하여 테스트 코드를 작성 후 기능 구현
- 테스트하기 어려운 소프트웨어 구조 개선
- 테스트 코드를 통한 리팩토링의 용이성과 입력 데이터에 대한 선제적 대응 능력 학습
객체지향 원칙에 근거한 아키텍처 디자인 적용
- 기존 3티어 아키텍처에서 적용하지 못했던 DIP, SRP, ISP 원칙을 보강하여 소프트웨어 아키텍처 디자인
- Restful함을 유지함과 동시에 SRP - ISP를 만족시키기 위해 클라이언트의 HTTP REQUEST METHOD에 맞춰 모듈 분리
- 계층 간 interface를 통한 의존을 이용해 DIP - OCP를 만족
- 계층 별 DTO 분리를 통해 계층 구조 간 의존 관계를 명확히 지키는 구조의 아키텍처 구성
QueryDSL 적용을 통한 검색 로직 최적화
- 기존의 동적 쿼리 처리를 위한 조건 분기 코드의 낮은 재사용성과 가독성 개선을 위해 QueryDSL을 통한 동적 쿼리 처리
- 제목 - 내용 - 작성자의 기준으로 동적으로 들어오는 조회 쿼리를 ‘검색’이라는 하나의 기능으로 공통화하여 처리
- 이후 검색 조건이 추가되더라도 코드 수정의 최소화가 가능한 재사용성 높은 코드로의 개선 및 코드 가독성 증가
칵테일 레시피 공유 서비스 - 편한
기타
2023.07. ~ 2023.08.
JAVA - Spring 기반의 칵테일 레시피 공유 서비스, 편한입니다.
- 백엔드 팀장 역할
- 회의 시간 및 코어 타임, 커밋 컨벤션, 소통 규칙 등 팀 문화 구축
- 프론트엔드 팀과의 기능 구현 일정 및 구현할 기능 조율 등 협업 시 전체 팀원의 의견을 종합하고 일정 도출
- 백엔드 팀원의 코드 리뷰 및 합병
- 프로젝트 도메인 분석 및 소프트웨어 아키텍처 / ERD 설계
- 칵테일 레시피 공유 및 인기 칵테일 레시피 랭킹 제공이라는 요구사항을 해결하기 위해 전체 도메인 분석
- 3티어 아키텍처 + 마스터 - 슬레이브 패턴을 적용한 소프트웨어 아키텍처 적용
- 엔티티 간 관계 설정 및 DB 테이블 설계
- 핵심 도메인 기능 구현
- 모든 기능이 Restful API 2단계 이상을 만족하도록 구현
- 칵테일, 랭킹, 북마크, 구독 등 요구사항을 해결하기 위해 JPA를 활용하여 필수적인 도메인 영역의 CRUD기능 구현
- Spring Security를 활용한 로그인 구현 및 Redis를 활용한 토큰 로그인 방식의 토큰 유효기간 처리
- 서버 레벨의 에러 처리
- 백엔드 단에서 발생하는 모든 에러 상황의 원인을 분석하고 디버깅하여 해결
- 테스트 코드 적용
- 프로젝트 완료 후 테스트 코드를 적용하여 추후 리팩토링 과정의 용이함을 추구
- 배포 서버 구축 및 서비스 배포
- AWS EC2 인스턴스를 활용한 컴퓨팅 서버 구축
- AWS RDS MySQL 인스턴스를 활용한 데이터베이스 구축
- AWS S3를 활용한 정적 이미지 파일 저장
- AWS ROUTE 53, ACM을 활용한 HTTPS 적용 및 EC2 로드밸런싱 적용
교육
한국외국어대학교
대학교(학사) | 중국외교통상전공
2015.03. ~ 2022.12. | 졸업
한국외국어대학교
대학교(학사) | 융복합소프트웨어전공
2019.08. ~ 2022.12. | 졸업
코드스테이츠
사설 교육 | 백엔드 엔지니어 부트캠프
2023.02. ~ 2023.08. | 졸업
포트폴리오
외국어
영어
일상 회화 가능