미리보기
기본 정보
안녕하세요! 1년차 개발자 조해성입니다. 주도적으로 문제를 찾고 해결하려고 노력합니다. 꾸준함의 중요성을 누구보다도 잘 알기에, 1일 1커밋 운동과 기술 블로그 운영을 통해 매일 성장하고 있습니다. Clean Code 와 Test에 관심이 많으며 실천하려고 노력합니다.
기술 스택
Java, Kotlin, Spring Boot, Spring Security, spring-jpa, querydsl, junit5, Mockito, Git, MySQL, Redis, Docker, aws-ec2, aws-rds
경력
비즈플러스글로벌
연구원 | 연구팀
2023.12. ~ 2024.05. (6개월)
스마트공장 MES 시스템을 개발 및 유지보수.
Java-Servlet 과JPA, MySQL 사용.
60초 걸리는 쿼리를 튜닝 하여 0.3초 만에 답이 나오도록 개선한 경험
https://zircon-neptune-a7d.notion.site/SOM-1-feat-e48f6fcc278e49a1b206121a29ff86fd?pvs=4
프로젝트
콘서트 예매 대기열 서비스
항해 플러스 백엔드 5기
2024.06. ~ 2024.08.
대용량 트래픽을 견디는 콘서트 예매 대기열 서비스
kotlin, Spring, JPA, Redis, docker, querydsl, junit5, Mockito
사용
동시성 문제를 해결하기 위해 낙관적 락 및 비관적 락 활용
도메인 로직을 보호하기 위한 클린 아키텍쳐 적용
단위 테스트, 통합 테스트, 레디스 테스트까지 100% 테스트 커버리지 달성
https://github.com/Griotold/concert-ticketing
library-search
개인
2024.09. ~ 2024.09.
네이버 API 와 카카오 API를 활용한 도서 검색 서비스 프로젝트
멀티 모듈, Spock
테스트 프레임워크 활용
고가용성을 고려한 circuit breaker
적용
이벤트 핸들러를 활용하여 객체간 결합도 디커플링 및 성능 개선
확장에 용이한 CQRS
패턴 도입
https://github.com/Griotold/library-search
bankshop-griotold
개인
2023.08. ~ 2023.08.
은행 거래 및 쇼핑몰 서비스 REST API
Github : https://github.com/Griotold/bankshop-griotold
기술 스택 : Java / Spring Boot / JPA / QueryDSL / MySQL / AWS
Swagger
를 사용하여REST API
문서 자동화Spring Security
를 활용한JWT
방식 인증, 인가@ExceptionHandler & @RestControllerAdvice
를 활용한 공통 예외 처리Spring AOP
를 활용한 유효성 검사Spring Data Jpa & queryDSL
를 활용한 동적 쿼리 및 페이징Junit
을 활용한 테스트 자동화58%
테스트 커버리지AWS
를 활용한 도메인 연동 및HTTPS
배포
포트폴리오
교육
휴먼교육센터
사설 교육 | AI데이터플랫폼을 활용한 빅데이터 분석전문가 과정(K-Digital Training)
2022.03. ~ 2022.08. | 졸업
성공회대
대학교(학사) | 신문방송학과
2014.03. ~ 2021.08. | 졸업
대외활동
항해 플러스 백엔드 5기
항해99
TDD, 클린 아키텍쳐 서버 구축
대용량 트래픽 처리
장애 대응 학습
인프런 워밍업 클럽 백엔드 2기 - 읽기 쉬운 코드, Practical Testing 가이드
인프런
클린 코드
통합 테스트, 단위 테스트, Mockito 를 활용한 Mocking 테스트
프로그래머스 SQL/DB 기초 교육
프로그래머스
프로그래머스가 주관하는 국비 지원 SQL/DB
기초 교육입니다. 2023년 10월 11일부터 총 6주 동안의 MySQL
, 데이터베이스 개념을 학습했습니다. 백엔드 개발자는 데이터베이스를 정확히 이해해야 우수한 프로그램을 개발할 수 있다고 생각합니다. 현재의 지식 수준에 안주하지 않고 지속적으로 업그레이드하고자 노력하고 있으며, 이 과정에서 배우는 내용을 백엔드 개발자로의 경력에 적용하고자 합니다. 해당 교육을 통해 얻은 지식으로 뛰어난 데이터베이스 스킬을 보유한 백엔드 개발자로 성장할 것을 약속드립니다.
자격증
TOEIC
810 | 한국TOEIC위원회
2023.12.
컴퓨터활용1급
1급 | 대한상공회의소
2021.12.
전산회계2급
2급 | 한국세무사협회
2022.03.
외국어
영어
비즈니스 회화 가능
자기소개
[Spring Framework & REST API]
저는 Spring Framework
를 이용하여 REST API
를 설계하고 구현할 수 있는 역량을 갖춘 개발자입니다. HTTP
메서드를 활용하여 클라이언트와 서버 간 효율적인 데이터 통신을 지원할 수 있는 능력을 갖추고 있습니다. Spring core
, Spring Data JPA
, Spring MVC
, Spring Security
등 스프링의 다양한 모듈과 라이브러리를 활용하여 API
엔드포인트를 설계하고, 데이터베이스와의 통합을 통해 데이터를 관리하며, 보안과 예외 처리를 고려한 안정적인 API
를 제작할 수 있습니다. Swagger
와 같은 도구를 활용하여 API
문서화를 효과적으로 수행할 수 있습니다. 최신 개발 트렌드와 권장 사항을 준수하며 고객과 사용자 요구를 충족시키기 위해 노력하는 개발자임을 자부합니다.
[Java와 Srping에 대한 깊은 이해]
저는 Java
와 Spring Framework
에 대한 깊은 이해를 바탕으로 안정적이고 확장 가능한 소프트웨어 개발을 지향합니다. 제가 가장 좋아하는 프로그래밍 언어는 Java
로, Spring Framework
는 이를 보완하는 필수적인 툴입니다. Spring
은 좋은 Java
프로그래밍을 할 수 있도록 도와주는 도구입니다. 좋은 Java
프로그램이란 객체 지향 원칙을 준수하는 프로그램이라고 생각합니다. 객체 지향 프로그래밍 원칙을 준수하는 뛰어난 Java
프로그램을 작성하기 위해 Java
와 Spring
에 대한 깊은 이해를 토대로 안정성과 확장성을 갖춘 소프트웨어를 개발하려고 노력합니다. 더불어, 성능 최적화와 유지보수 가능한 코드 작성에 주력하며, 고객 및 사용자 요구 사항을 충족시키기 위한 솔루션을 제공하려고 노력합니다.
[JPA에 대한 깊은 이해]
저는 Java
표준 ORM
인 JPA
와 JPA
를 Spring Framework
에서 사용할 수 있도록 해주는 Spring Data Jpa
, 복잡한 쿼리와 동적 쿼리를 효율적으로 다룰 수 있게 하는 querydsl
을 잘 다룰 수 있습니다. JPA
를 학습한 이유는 JPA
를 활용했을 때 얻을 수 있는 이점들 때문입니다. JPA
를 활용한 프로그램 개발은 데이터베이스와의 상호 작용을 효율적으로 수행할 수 있도록 하며 프로그램의 품질을 높이고, 유지보수가 용이한 코드 작성이 가능해지기 때문에 개발 생산성을 향상시킵니다. 저는 Java
프로그램을 효율적이고 확장 가능하도록 돕는 JPA
에 대한 깊은 이해를 바탕으로 효과적인 개발 능력을 보유한 개발자임을 자부합니다.
[데이터베이스에 대한 깊은 이해]
백엔드 개발자로서 필수적인 데이터베이스 역량을 갖추었으며, 이전 프로젝트에 효과적으로 데이터베이스와 통신한 경험을 근거로 직무 수행에 있어 실질적으로 기여할 수 있는 능력을 확보한 개발자임을 자신 있게 강조하고자 합니다. 백엔드 개발자는 데이터베이스를 제대로 알아야 올바른 서버를 구축할 수 있다고 생각합니다. 저는 데이터베이스를 제대로 알기 위해 꾸준히 데이터베이스 강의들을 수강하며 제가 만든 프로그램에 배운 개념들을 적용함으로 데이터베이스 개념들을 체화시키고 있습니다. 복잡한 쿼리 작성, 데이터 모델링, 트랜잭션, 인덱스, 서버 프로그램과 데이터베이스 연동 등 다양한 측면에서 스스로 도전하고 학습했습니다. 이 경험을 통해 데이터베이스의 핵심 원리를 파악하고, 안정적인 시스템을 구축하는데 필요한 역량을 향상시키는 것에 주력했습니다.
[테스트 코드 작성을 통한 자동화]
저는 반복적인 작업을 어떻게 하면 자동화할 수 있을지 항상 고민하는 개발자입니다. 프로그램 개발 도중 제대로 동작하는지 수작업으로 테스트하던 것을 Junit
을 활용한 테스트 코드 작성을 통해 개발 프로세스를 향상 시킨 경험이 있습니다. 이로써, 전체 라인 기준 테스트 커버리지 58%
에 달성하였습니다. 단위 테스트, 통합 테스트를 통해 프로젝트의 품질을 높이고 개발 생산성을 향상시켰습니다. 이런 경험을 통해 안정적이고 신뢰성 높은 소프트웨어를 제공하며, 고객과 사용자 요구를 충족시키기 위해 최선을 다하고자 합니다.