김인환

Back-end 소프트웨어 엔지니어

새로운 기술과 도구에 대한 열려있는 마음으로,

현업에서 요구되는 기술들을 습득하기 위해 노력합니다.

010-7433-9415
preasim.kr@gmail.com

Introduce.

Java, Spring Boot 그리고 JavaScript를 주 스택으로 사용하며, 백엔드 시스템 개발에 깊은 관심을 가지고 있습니다.

다양한 프로젝트를 통해 서버 아키텍처 설계, 데이터베이스 최적화, API 개발 등을 경험하며, 안정적이고 효율적인 시스템을 고민해왔습니다.



테스트 코드 작성을 기본으로 여기며, 기초적이지만 아주 중요한 클린 코드 원칙을 항상 되새기고 다짐합니다.

이를 통해 다른 개발자들이 이해하기 쉽고 유지 보수가 용이한 아키텍처와 패턴을 위해 지속적으로 노력하고 있습니다.



코드를 작성할 때, 단순히 기계에게 명령을 내리는 것이 아니라, 아이디어와 개념을 현실로 만들고 있는 것입니다.

즉, 프로그래밍은 창의력을 표현할 수 있는 가장 아름다운 수단 중 하나라고 생각합니다.


어떤 분야든 배움에는 끝이 없습니다.

겸손한 자세를 잃지 않고 지속적인 학습을 추구하여 트렌드에 맞춰 빠르게 발전하는 개발자가 되겠습니다.

Skill.

Languages

Java

Js

Ts

Html

CSS

Frameworks & Libraries

Spring
Boot

Node.js

React.js

JQuery

Express.js

Infrastructure & Database

MySQL

H2

AWS

Mongo
DB

Redis

Linux

Apache

Docker

Tools & IDEs

Git

IntelliJ

VScode

Github

Postman

Ngrok

Vim

Experience.

레이라

스타트업

복덕빵 / 안심 부동산 직거래 플랫폼

2024.04. - 2024.07.

초기 스타트업의 특성상, 관리자 사이트의
프론트엔드 부분을 단독으로 담당하여 개발하였으며,
백엔드는 팀과 협업하여 진행했습니다.
이 관리자 사이트는 전문가(판매자) 신청 및 관리,
고객 문의 사항 처리, 제재 조치 등을
효율적으로 관리할 수 있도록 제작하였습니다.
또한, 서비스 앱의 자주 묻는 질문(FAQ)과
공지사항 등을 관리할 수 있는 기능을 포함시켰습니다.
서비스 앱의 경우, 전임자가 제작한 프로젝트를
이어받아 시니어 분과 협업을 통해 수정 및 오류를
개선하고 새로운 기능을 구현했습니다.
결제 솔루션(Nice 페이)과의 연동 경험이 있으며,
주로 팀원들이 어려워하는 요소들을 해결하는
작업을 담당했습니다.
초기 스타트업의 특성상, 관리자 사이트의 프론트엔드 부분을 단독으로 담당하여
개발하였으며, 백엔드는 팀과 협업하여 진행했습니다.
이 관리자 사이트는 전문가(판매자) 신청 및 관리, 고객 문의 사항 처리,
제재 조치 등을 효율적으로 관리할 수 있도록 제작하였습니다.
또한, 서비스 앱의 자주 묻는 질문(FAQ)과 공지사항 등을
관리할 수 있는 기능을 포함시켰습니다.
서비스 앱의 경우, 전임자가 제작한 프로젝트를 이어받아 시니어 분과 협업을 통해
수정 및 오류를 개선하고 새로운 기능을 구현했습니다.
결제 솔루션(Nice 페이)과의 연동 경험이 있으며,
주로 팀원들이 어려워하는 요소들을 해결하는 작업을 담당했습니다.
관리자 사이트

- 프론트엔드 기술 환경 구성, 설계 및 기능 구현

- React 기반 컴포넌트 계층 구조 설계

- CS 처리와 서비스 앱 관리를 위한 관리자 사이트 개발

- 관리자 사이트용 Node.js API 서버 개발 지원

- 보안을 위한 IP 차단 기능 설계 및 구현

- 실시간 채팅(고객 문의) 및 알림 기능 개발

- 고객 재제, 계정 정지 등 고객 관리 시스템 개발

- 전문가(판매자) 신청 승인 및 정지 등 전문가 관리 시스템 개발

- 공지사항, FAQ, 약관 등 콘텐츠 관리 시스템 개발

서비스 앱

- 채팅 알림(환불, 결제 완료 등) 기능 개발

- 유저 차단 및 신고 기능 개발

- 부동산 매물 필터 기능 개발

- 전반적인 코드 리팩토링

- 앱 배포 및 출시 관리

- 깃 상태 관리 및 팀원들의 코드 리뷰

Frontend: React, React Native, TypeScript, Redux
Backend: Node.js, Express
Server: AWS EC2, S3
Database: MongoDB, Firebase
Authentication: Firebase

Project.

Genshin Flow

6인 팀 프로젝트

게임 플레이어 매칭 서비스

2024.06.28 - 진행 중

개발 과정에서 코드 리뷰를 기본 원칙으로 삼아
도메인 주도 설계, 클린 아키텍처, 파이프라인 구축
등 미숙했던 부분들을 깊이 있게 학습할 수 있었고,
코드 작성의 방향성과 클린 코드 원칙에 대해
다양한 피드백과 실질적인 배움을 얻었습니다.
이를 통해 코드를 단순히 작성하는 것을 넘어,
다른 개발자가 쉽게 이해하고 유지 보수할 수 있는
코드를 만드는 것의 중요성을 배우고
깊이 고민할 수 있었습니다.
개발 과정에서 코드 리뷰를 기본 원칙으로 삼아
도메인 주도 설계, 클린 아키텍처, 파이프라인 구축
등 미숙했던 부분들을 깊이 있게 학습할 수 있었고,
코드 작성의 방향성과 클린 코드 원칙에 대해
다양한 피드백과 실질적인 배움을 얻었습니다.
이를 통해 코드를 단순히 작성하는 것을 넘어, 다른 개발자가
쉽게 이해하고 유지 보수할 수 있는 코드를 만드는 것의
중요성을 배우고 깊이 고민할 수 있었습니다.
Backend Development

- API 및 데이터베이스 설계, ERD 작성

- Git 파이프라인을 활용한 CI/CD 배포 자동화

- 도메인 주도 설계 기반 시스템 개발

- 로그인 및 회원가입 등 사용자 인증 및 보안 기능 구현

- 이메일 인증 코드 발송 및 검증 기능 개발

- JWT와 Redis를 활용한 사용자 인증 및 권한 관리

- 원신 유저 데이터 API 호출 및 데이터 처리 기능 개발

- 사용자 제재 및 계정 정지와 같은 고객 관리 API 개발

- 유저 경고 및 제재 기록 확인 API 개발

- 비회원과 회원 구분에 따른 게시물 CRUD 기능 개발

- 데이터베이스 쿼리 최적화를 위한 리팩토링 수행

Frameworks: Spring Boot(Web, Security, Data JPA, Validation, Mail, OAuth2)
Authentication: JWT
Server: AWS EC2, S3
Database: H2(in-memory), MySQL, Redis
API Documentation: Swagger
Utilities: Lombok, Apache Commons
Testing: JUnit, Security Test, MockServer, Database Rider

UNCOVER

6인 팀 프로젝트

No Copyright Music 서비스 플랫폼

2023.04.28 - 2023.05.31

Java와 Spring Boot를 처음으로 활용해
진행한 프로젝트로, 다대다 관계 매핑을 포함한
복잡한 엔티티 간 연관 관계를 심층적으로
학습할 기회가 되었습니다.
프로젝트 진행 중 발생한 동시성 문제 등의
버그를 해결하면서 시스템 안정성을 위한
수정과 최적화를 경험하였으며,
사용자 피드백을 반영한 업데이트와
코드 리팩토링을 통해 유지보수성의 핵심 원칙을
이해하고 적용할 수 있었습니다.
Java와 Spring Boot를 처음으로 활용해 진행한 프로젝트로,
다대다 관계 매핑을 포함한 복잡한 엔티티 간 연관 관계를
심층적으로 학습할 기회가 되었습니다.
프로젝트 진행 중 발생한 동시성 문제 등의 버그를
해결하면서 시스템 안정성을 위한 수정과 최적화를 경험하였으며,
사용자 피드백을 반영한 업데이트와 코드 리팩토링을 통해
유지보수성의 핵심 원칙을 이해하고 적용할 수 있었습니다.
Team Lead

- 프로젝트 기획 및 전반적인 개발 진행에 관여

- 효율적인 협업을 위한 가이드 문서 작성

- 인터랙티브 웹을 위한 디자인 방향 제시 및 개선

- 오디오 음질 개선 및 DB 공간 확보를 위한 전략 제시

- 레퍼런스 사이트 및 디자인 탐색

- 플레이리스트 및 뮤직 배너 이미지를 GIF 형식으로 변경

- 감성적인 제목 및 본문 작성

- 아키텍처 설계 및 리팩토링

Backend Development

- 플레이리스트, 좋아요, 댓글, 태그 기능 개발

- 좋아요 및 댓글 기능에서 발생할 수 있는 동시성 문제 해결

- ngrok을 활용한 클라이언트와의 실시간 테스트 진행

- 인기 있는 노래를 기반으로 한 플레이리스트 추천 기능 개발

- 유저 선호 태그가 포함된 플레이리스트를 상단에 노출시키는 기능 개발

Frameworks: Spring Boot(Web, Data JPA, Validation), MapStruct
Authentication: JWT
Server: AWS EC2, S3, RDS
Database: H2(in-memory), MySQL
API Documentation: Apache HttpClient
Utilities: Lombok, Gson
Testing: JUnit, Security Test

Wicked

개인 프로젝트

포트폴리오 웹사이트

이 웹사이트는 제 포트폴리오를 소개하는 공간으로,

제작한 프로젝트와 역량을 다양한 방식으로 전달하고 있습니다.

디자인과 기술적인 부분에서 신중한 고민과 노력을

기울여 제작한 이 웹사이트를 통해, 나만의 독특한

스타일과 능력을 효과적으로 전달하고자 하였습니다.

방문해 주셔서 감사합니다.

- HTML/CSS, Js, Bootstrap, gsap

Learning.

한국생명과학고등학교

2018.03 - 2021.01 (졸업)

코드스테이츠 Back-End 과정

22.12.15 ~ 23.06.08

Section 1
Section 2
Section 3
Section 4
프로젝트
Linux 기초

리눅스 기초 명령어를 이해하고 CLI에서 개발 환경을 세팅할 수 있습니다.

Git 기초

Git의 핵심 내용과 워크플로우를 이해하고 적용할 수 있습니다.

[Java] 기초 문법

Java 프로그래밍 언어의 특성과 기초 문법을 학습합니다.

[Java] OOP(Object-Oriented Programming) 기초

클래스, 객체, 필드, 메서드 등 OOP와 관련된 기본적인 개념을 이해합니다.

[Java] OOP(Object-Oriented Programming) 심화

객체지향의 원리와 설계 및 구현 방법을 학습합니다.

[Java] Collection Framework

Java의 컬렉션(List, Set, Map)을 학습합니다.

[Java] Effective

Java의 심화 문법(Annotation, Lambda, Stream, Thread 등)을 학습합니다.

[DS/AL] 재귀

재귀의 의미와 동작 방법을 이해하고 Java언어로 코드를 구현할 수 있습니다.

[DS/AL] 자료구조

다양한 자료구조의 개념을 이해하고 이해한 자료구조를 직접 Java언어로 코드를 구현할 수 있습니다.

[DS/AL] 알고리즘

다양한 문제를 해결하는 데 필요한 알고리즘 설계 기법을 이해하고 Java언어로 코드를 구현할 수 있습니다.

[네트워크] 기초

클라이언트, 서버 아키텍처를 기억하고 브라우저의 작동원리를 학습합니다.

[네트워크] 실습

REST API에 대해 학습하고, 설계 및 구현할 수 있습니다.

[데이터베이스] RDMS

DB와 SQL에 대해 학습합니다.

[Spring Core] Spring Framework 기본

Framework와 라이브러리의 차이점과 필요성에 대해 학습합니다.

[Spring Core] Spring Framework의 핵심 개념

Spring의 핵심 중에 핵심인 DI의 개념을 IOC 개념과 함께 살펴보고 학습합니다.

[Spring MVC] 웹 계층

API 계층의 의미와 DTO 클래스를 사용하는 방법, DTO 클래스의 데이터 유효성 검증 방법을 학습합니다.

[Spring MVC] 비즈니스 계층

비즈니스 계층의 의미를 학습하고 비즈니스 계층에서 DI를 어떻게 활용할 수 있는지 학습합니다.

[Spring MVC] 예외 처리

비즈니스 로직에서 발생하는 예외 처리 및 비즈니스 계층에서 던져진 예외를 API 계층에서 어떻게 처리할 수 있는지 학습합니다.

[Spring MVC] JDBC 기반 데이터 액세스 계층

도메인 모델의 개념 학습 및 JDBC 기반의 엔티티의 모델의 작성법 등을 학습합니다.

[Spring MVC] JPA 기반 데이터 액세스 계층

JPA의 특징과 동작 방식, ORM을 학습합니다.

[Spring MVC] 트랜잭션

트랜잭션과 Spring Framework에서의 트랜잭션과 PSA의 관계를 학습합니다.

[Spring MVC] 테스팅

테스트가 필요한 이유와 Slice Test의 의미를 이해하고 API 계층과 데이터 액세스 계층을 Slice Testing하는 방법을 학습합니다.

[Spring MVC]REST API 문서화

Spring RestDocs를 이용하여 REST API 문서의 자동화 방법을 학습합니다.

[Spring MVC] 애플리케이션 빌드/실행/배포

Spring Boot 기반의 애플리케이션을 빌드하고 실행하는 방법을 학습합니다.

[인증/보안] 기초

사용자 인증 과정 전반과 보안 기초 개념에 대해 학습합니다.

[Spring Security] 기본

Spring Security의 동작 방식 및 기본적인 설정 방법에 대해 학습합니다.

[Spring Security] JWT 인증

JWT의 개념과 사용해야하는 이유, 사용하는 방법에 대해 학습합니다.

[Spring Security] OAuth2 인증

OAuth2의 개념과 사용하는 방법에 대해 학습합니다.

[Cloud] Docker & K8s

컨테이너 기술을 학습하고 컨테이너를 사용한 배포를 실습합니다.

[Cloud] 운영 환경 구성

온프레미스와 클라우드 환경에 대해 학습하고 3-티어 아키텍쳐를 배포하는 과정을 실습 합니다.

[Cloud] 지속적 통합

지속적 통합 과정을 이해하고 빌드와 테스트 자동화를 실습합니다

[Cloud] 배포 자동화

배포 자동화의 로직을 학습하고 웹 애플리케이션 배포 자동화를 실습합니다.

[Cloud] 운영 전략

서비스 배포와 운영에 있어 심화 전략을 학습합니다.

솔로 프로젝트

간단한 웹 애플리케이션을 만들고 협업 환경을 구축합니다.

팀 프로젝트 1 : 그동안 학습했던 내용들을 바탕으로 실제 팀 단위로 프론트엔드 개발자와 협업하여 웹 애플리케이션을 개발하는 방법을 체득합니다.

서비스 기획 및 분석 | 웹 애플리케이션 구현을 위해 필요한 기술 요구사항을 정의하고 작성합니다.

팀 단위 업무 수행 노하우 | 실제 개발 업무 진행 중 많이 사용되는 방법을 학습하고 프로젝트 진행 과정에 적용합니다.

ex) 애자일, 칸반, git-workflow

교육 엔지니어 코칭 | 프로젝트를 관리하는 방법론에 대해 엔지니어의 전문적인 코칭을 통해 학습하고 이를 바탕으로 팀 내 프로젝트 완성도를 높입니다.

프로젝트 수행 | 서비스를 구현하는 것을 목표로 팀원과 함께 IT 제품의 개발 및 배포를 진행합니다.

팀 프로젝트 2 : 포트폴리오로 활용될 수 있는 수준의 높은 완성도를 자랑하는 프로젝트를 기획, 분석, 설계, 구현, 검수(회고) 합니다

프로젝트 관리 | 팀 단위로 선택한 주제에서, 다양한 웹 기술을 분석하고 활용하며 도전적인 수준의 서비스를 출시할 수 있는 관리 방법들을 경험합니다.

멘토 피드백 | 전문적인 멘토의 피드백을 통해 프로젝트 완성도를 높이고, 주기적으로 그룹 회고를 진행하며 프로젝트를 수행합니다.

프로젝트 구현 | 기획/설계한 서비스를 구현하는 것을 목표로 팀 단위로 IT 제품의 개발 및 배포를 진행합니다.

기술 발표 | 프로젝트를 진행하면서 얻은 소중한 지식과 경험을 공유하고 자신의 포트폴리오가 될 프로젝트를 설명하는 방법과 기술을 학습합니다.

1
section
2
section
3
section
4
section
프로젝트
Linux 기초

리눅스 기초 명령어를 이해하고 CLI에서 개발 환경을 세팅할 수 있습니다.

Git 기초

Git의 핵심 내용과 워크플로우를 이해하고 적용할 수 있습니다.

[Java] 기초 문법

Java 프로그래밍 언어의 특성과 기초 문법을 학습합니다.

[Java] OOP(Object-Oriented Programming) 기초

클래스, 객체, 필드, 메서드 등 OOP와 관련된 기본적인 개념을 이해합니다.

[Java] OOP(Object-Oriented Programming) 심화

객체지향의 원리와 설계 및 구현 방법을 학습합니다.

[Java] Collection Framework

Java의 컬렉션(List, Set, Map)을 학습합니다.

[Java] Effective

Java의 심화 문법(Annotation, Lambda, Stream, Thread 등)을 학습합니다.

[DS/AL] 재귀

재귀의 의미와 동작 방법을 이해하고 Java언어로 코드를 구현할 수 있습니다.

[DS/AL] 자료구조

다양한 자료구조의 개념을 이해하고 이해한 자료구조를 직접 Java언어로 코드를 구현할 수 있습니다.

[DS/AL] 알고리즘

다양한 문제를 해결하는 데 필요한 알고리즘 설계 기법을 이해하고 Java언어로 코드를 구현할 수 있습니다.

[네트워크] 기초

클라이언트, 서버 아키텍처를 기억하고 브라우저의 작동원리를 학습합니다.

[네트워크] 실습

REST API에 대해 학습하고, 설계 및 구현할 수 있습니다.

[데이터베이스] RDMS

DB와 SQL에 대해 학습합니다.

[Spring Core] Spring Framework 기본

Framework와 라이브러리의 차이점과 필요성에 대해 학습합니다.

[Spring Core] Spring Framework의 핵심 개념

Spring의 핵심 중에 핵심인 DI의 개념을 IOC 개념과 함께 살펴보고 학습합니다.

[Spring MVC] 웹 계층

API 계층의 의미와 DTO 클래스를 사용하는 방법, DTO 클래스의 데이터 유효성 검증 방법을 학습합니다.

[Spring MVC] 비즈니스 계층

비즈니스 계층의 의미를 학습하고 비즈니스 계층에서 DI를 어떻게 활용할 수 있는지 학습합니다.

[Spring MVC] 예외 처리

비즈니스 로직에서 발생하는 예외 처리 및 비즈니스 계층에서 던져진 예외를 API 계층에서 어떻게 처리할 수 있는지 학습합니다.

[Spring MVC] JDBC 기반 데이터 액세스 계층

도메인 모델의 개념 학습 및 JDBC 기반의 엔티티의 모델의 작성법 등을 학습합니다.

[Spring MVC] JPA 기반 데이터 액세스 계층

JPA의 특징과 동작 방식, ORM을 학습합니다.

[Spring MVC] 트랜잭션

트랜잭션과 Spring Framework에서의 트랜잭션과 PSA의 관계를 학습합니다.

[Spring MVC] 테스팅

테스트가 필요한 이유와 Slice Test의 의미를 이해하고 API 계층과 데이터 액세스 계층을 Slice Testing하는 방법을 학습합니다.

[Spring MVC]REST API 문서화

Spring RestDocs를 이용하여 REST API 문서의 자동화 방법을 학습합니다.

[Spring MVC] 애플리케이션 빌드/실행/배포

Spring Boot 기반의 애플리케이션을 빌드하고 실행하는 방법을 학습합니다.

[인증/보안] 기초

사용자 인증 과정 전반과 보안 기초 개념에 대해 학습합니다.

[Spring Security] 기본

Spring Security의 동작 방식 및 기본적인 설정 방법에 대해 학습합니다.

[Spring Security] JWT 인증

JWT의 개념과 사용해야하는 이유, 사용하는 방법에 대해 학습합니다.

[Spring Security] OAuth2 인증

OAuth2의 개념과 사용하는 방법에 대해 학습합니다.

[Cloud] Docker & K8s

컨테이너 기술을 학습하고 컨테이너를 사용한 배포를 실습합니다.

[Cloud] 운영 환경 구성

온프레미스와 클라우드 환경에 대해 학습하고 3-티어 아키텍쳐를 배포하는 과정을 실습 합니다.

[Cloud] 지속적 통합

지속적 통합 과정을 이해하고 빌드와 테스트 자동화를 실습합니다

[Cloud] 배포 자동화

배포 자동화의 로직을 학습하고 웹 애플리케이션 배포 자동화를 실습합니다.

[Cloud] 운영 전략

서비스 배포와 운영에 있어 심화 전략을 학습합니다.

솔로 프로젝트

간단한 웹 애플리케이션을 만들고 협업 환경을 구축합니다.

팀 프로젝트 1 : 그동안 학습했던 내용들을 바탕으로 실제 팀 단위로 프론트엔드 개발자와 협업하여 웹 애플리케이션을 개발하는 방법을 체득합니다.

서비스 기획 및 분석 | 웹 애플리케이션 구현을 위해 필요한 기술 요구사항을 정의하고 작성합니다.

팀 단위 업무 수행 노하우 | 실제 개발 업무 진행 중 많이 사용되는 방법을 학습하고 프로젝트 진행 과정에 적용합니다.

ex) 애자일, 칸반, git-workflow

교육 엔지니어 코칭 | 프로젝트를 관리하는 방법론에 대해 엔지니어의 전문적인 코칭을 통해 학습하고 이를 바탕으로 팀 내 프로젝트 완성도를 높입니다.

프로젝트 수행 | 서비스를 구현하는 것을 목표로 팀원과 함께 IT 제품의 개발 및 배포를 진행합니다.

팀 프로젝트 2 : 포트폴리오로 활용될 수 있는 수준의 높은 완성도를 자랑하는 프로젝트를 기획, 분석, 설계, 구현, 검수(회고) 합니다

프로젝트 관리 | 팀 단위로 선택한 주제에서, 다양한 웹 기술을 분석하고 활용하며 도전적인 수준의 서비스를 출시할 수 있는 관리 방법들을 경험합니다.

멘토 피드백 | 전문적인 멘토의 피드백을 통해 프로젝트 완성도를 높이고, 주기적으로 그룹 회고를 진행하며 프로젝트를 수행합니다.

프로젝트 구현 | 기획/설계한 서비스를 구현하는 것을 목표로 팀 단위로 IT 제품의 개발 및 배포를 진행합니다.

기술 발표 | 프로젝트를 진행하면서 얻은 소중한 지식과 경험을 공유하고 자신의 포트폴리오가 될 프로젝트를 설명하는 방법과 기술을 학습합니다.

Contact

Get in touch

Name

이름을 입력해 주세요.

Your Email

Message

메시지를 입력해 주세요.
Kim In Hwan

010 - 7433 - 9415

preasim.kr@gmail.com

Blog
Social