미리보기
기본 정보
서비스 개발에 애정과 보람을 느끼며 최선을 다하는 Backend 개발자 임성묵 입니다. 좋은 서비스를 만들기 위해 노력하고, 끊임 없이 성장하려고 하는 개발자입니다. 개발할 때는 필요한 요구 사항을 해결하며, 넓은 시야를 가지고 추후에 생길 수 있는 일을 고려해 개발하려고 합니다.
기술 스택
Kotlin, Java, JavaScript, Spring, Spring Boot, Jenkins, Linux, JPA, MySQL, MariaDB, Express, nginx, aws-ec2
포트폴리오
대외활동
SPACE 동아리
한국성서대학교
대학교에 불편한 서비스를 개선 및 개발 동아리
Github : TeamGitHub
2024 소프트웨어 경진대회 최우수상 수상
프로젝트 팀장 및 Backend, Android 개발
하람 서비스 대학교 사용 승인
취업지원센터 우수 동아리 선정 및 활동비 지원
프로젝트 진행 방법 및 협의 경험
LevelUpToast ( 한이음 ICT 프로젝트 )
한국정보산업연합회
소비자와 농민간 직거래를 할 수 있는 플랫폼 개발하여 유통단계를 줄여주는 프로젝트
Github : TeamGitHub
2022 소프트웨어 경진대회 최우수상 수상
프로젝트 아키텍처 설계 및 CI/CD 구축 경험
팀원들과 소통 및 협업 경험
자바를 활용하여 Backend 개발 경험
신호등 틱톡틱톡 ( 한이음 ICT 프로젝트 )
한국정보산업연합회
길 찾기 알고리즘에 교통정보(신호등정보)를 활용하여 더 빠른 길을 찾고 분석하는 프로젝트
Raspberry Pi 및 Arduino활용 경험
프로젝트 진행 방법 및 협의 경험
팀원들과 소통 및 협업 경험
크리퍼통합모드
기타
게임 확장 모드를 설치 과정을 편리하게 제공하고 다양한 모드를 제공하는 프로그램 개발 프로젝트
Blog : Tistory
100개 이상의 다양한 모드를 최적화된 설치 로직 설계
업데이트 배포 과정에서 생긴 문제를 롤백과정을 경험
프로그래밍을 배우고, 만든 프로그램 배포 경험
프로젝트
하람 프로젝트
한국성서대학교
2023.02. ~ 진행 중
다양한 대학교 정보 및 서비스를 하나로 통합하여 학우들에게 편리한 서비스 제공 프로젝트
팀원 총 3명 , 백엔드 2명, Android 1명, iOS 1명
사용 기술 : Java, Kotlin, Spring boot, Spring Security, JPA, JWT, MariaDB, Thymeleaf, QueryDsl, Redis, Jsoup, OkHttp, Retofit, Nginx, Proxmox, LXC, Opnsense, AWS Lambda, Cloudflare
프로젝트를 완성하여 현재 서비스 운영중
서비스 성능 개선
AWS Lambda 환경에서 25초 소요되던 작업 시간을 정적 타이핑 언어로 변경하여b4초대로 개선
코드개선 및 안정성
서비스가 증가함에 따라 발생하는 의존성 문제를 해결하기 위해 Layered 아키텍처를 적용하여, 책임과 관심사 분리
복잡해진 서비스 코드를 Strategy, Factory, Facade 패턴을 조합하여 코드 개선
잦은 인트라넷서버 장애를 대응하기 위해 데이터를 주기적으로 캐시 처리 로직 설계
API와 Admin 서버에 불필요한 의존성과 독립적인 개발을 하기 위해 멀티 모듈설계
서버 인프라 구성 및 설계
효율적인 성능과 컨테이너 환경 구성을 위해 LXC를 사용하고, 안정성을 위해 두 개의 호스트 서버를 클러스터로 연결하여 컨테이너 복구 환경 및 분산 구성
이메일 발송을 위해 SMTP 서버를 구축하고, 메일 발송 코드와 인증 기능을 구현
팀원간 소통과 개발 생산성
서비스 제공 중에 장애가 발생하면 Slack으로 알림을 받아 대응할 수 있도록 구성
빌드 및 배포 과정에서 서버에 따른 설정을 자동화를 하기 위해 Jenkins를 활용하여 CI/CD 환경을 구축
소스코드 형상 관리를 위해 GitHub을 사용하고, 안정적인 개발과 배포를 위해 Git Flow
전략을 이용하여 배포 관리 항샹
쇼핑몰 프로젝트
기타
Rest API와 Express Framework통해 HTTP와 Middleware를 이해하고 설계하는 프로젝트
총 2명, 백엔드 2명
사용기술 : NodeJS, Express, Passport, Sequelize
Express MVC 패턴을 기반으로 각종 Back-end API 구현
Passport 활용하여 로그인 기능 구현
카카오 소셜 로그인, 로컬 로그인 기능 구현 및 공부하였습니다.
API요청시 쿠키를 이용하여 사용자 정보를 조회하는 구조로 설계하여 다른 사용자 조회를 방지하도록 설계
Sequelize 를 통해 ORM에 대한 기술 이해와 Model 설계
- 데이터베이스 및 엔티티 설계
프로토콜 설계 프로젝트
기타
소켓통신 수업에서 프로토콜을 직접 구현하고, 소켓 기반 실시간 콘솔 채팅 구현 프로젝트
사용기술 : C#, .Net
Thread 비동기 처리와 Socket 통신 구현했습니다.
서버에서 클라이언트 연결 요청이 들어오면 Thread를 생성하여 Socket을 관리하도록 처리했습니다.
소켓 상태에 문제가 생길 경우 소켓 정보를 지우고, 메세지 전송을 취소하도록 설계하였습니다.
실시간 채팅 프로토콜 설계 했습니다.
[TYPE, MESSAGE]로 구성하고 실행 할 명령어를 TYPE에 담아서 명령을 수행하도록 프로토콜 설계했습니다.
깔끔한 채팅을 위해 전송되는 메세지에 비속어가 포함되어 있으면 블라인드 처리하도록 만들었습니다.
싱싱카트 프로젝트
한국정보산업연합회
소비자와 농민간 직거래를 할 수 있는 플랫폼 개발하여 유통단계를 줄여주는 프로젝트
총 4명, 백엔드 2명, 모바일 2명
사용기술 : Spring boot, MySQL, JDBC, Proxmox, Apache, EC2
Spring MVC 패턴을 기반으로 각종 Back-end API 구현.
엔티티 및 데이터베이스 설계
사용자에게 친화적인 UI/UX 설계하고 Figma를 이용하여 제작
사용자가 검색할 때 입력한 단어를 분석하고 빈도 수에 따라 상품 제품 소개 기능 구현
서버 인프라 구성 및 설계
서버를 외부로부터 은닉하기 위해 WS와 WAS를 분리하고, 서버를 로드밸런싱을 할 수 있도록 Proxy 구성
Certbot을 통한 TLS 인증서를 적용하여 https 구축
자체 SMTP 서버를 구축하여 전용 도메인으로 이메일 발송 기능을 개발
개발 생산성 개선
Jenkins를 활용하여 GitHub에 노출된 Key값을 치환하여 빌드 진행 환경 구축
자격증
LPI Essentials 010
Pass | Linux Professional Institute (LPI)
2024.01.