채용공고 올리기

박현민님을 응원해보세요!

이직/구직 중이에요
성실함
책임감
협업 지향
유연함
자기 주도적

미리보기

기본 정보

이름
박현민
직업
서버 개발자
이메일
pak4184@naver.com
간단소개

자기소개

자기소개

# 현재 여행사 서비스 이용자를 위한 백엔드 개발자로 일하고 있습니다. 😁

• 새로운 기술을 배우는 것을 좋아하며, 회사에서 사용하는 기술뿐만 아니라 관심 있는 기술을 직접 공부하고 프로젝트로 적용해보며 성장하고 있습니다.

• 객체의 역할과 책임을 고민하며 작은 단위로 나누고 분리하여 개선하는 과정을 즐깁니다.

단위 및 통합 테스트를 꼼꼼하게 작성해 코드의 안정성을 높이는 것을 중요하게 생각합니다.

기록하고 문서화하는 것을 좋아해요. Markdown 문서 작성에 익숙하며, 팀원들과 적극적으로 문서를 공유하고 소통해요.

• 2023년부터 1일 1커밋과 블로그 활동을 꾸준히 이어오며 배운 내용을 기록하고 공유하고 있습니다.

# 성장을 위한 1년간의 공백기를 보냈습니다. 🙋

• 더 깊이 있는 개발 역량을 쌓기 위해 퇴사 후 Java, Spring, DB를 집중적으로 학습하며 프로젝트를 진행했습니다.

• F-lab 멘토링을 통해 체계적인 학습 방법을 익히고, 코드 리뷰를 받으며 객체지향 설계와 클린 코드 작성 역량을 향상시켰습니다.

• 이 과정에서 스스로 기술적 문제를 해결하는 힘을 기를 수 있었고, 더 나은 개발자가 되기 위해 지금도 꾸준히 성장하고 있습니다.

이력서를 확인해주시고, 기재된 포트폴리오도 꼭 한번 봐주시면 감사하겠습니다. 😊

기술 스택

기술 스택

경력

회사명

(주)교원투어

직책 • 부서

매니저 • 여행IT개발팀

담당 업무

사용기술

• Java 11, SpringBoot 2, MyBatis, Jenkins, Git, JSP, Oracle, JUnit5, Mockito

담당 업무

• 메인 업무: B2C 여행이지 서버, admin 서버 개발

• ERP, B2B, 배치 서버 등 개발

근무 기간 (근무 형태)
2024.12. ~ 재직 중

(5개월 | 정규직)

회사명

(주)엘지씨엔에스

직책 • 부서

사원 • 스마트 팩토리 버츄얼 팩토리팀

담당 업무

사용기술

• Java 11, SpringBoot 2, JPA, MyBatis, Jenkins, Git, Vue.js, MariaDB, Apache NIFI, K8S, Apache Kafka, Docker

담당 업무

• 스마트 팩토리 플랫폼 개발 및 프로젝트 이행

• Apache NIFI를 이용한 데이터 파이프라인 구축, Kafka 동기화

• Spring API 서버 개발

근무 기간 (근무 형태)
2022.11. ~ 2023.10.

(1년 | 프리랜서)

회사명

주식회사큐브에이

직책 • 부서

선임 • 개발팀

담당 업무

사용기술

• Java 1.8, Spirng, MyBatis, SVN, JSP, Oracle, MariaDB

담당 업무

• 르노삼성, 르노 홈페이지 개발 및 운영

• 공공기관 SI 프로젝트 수행

• 이벤트 페이지 개발

근무 기간 (근무 형태)
2020.06. ~ 2022.08.

(2년 3개월 | 정규직)

프로젝트

소속/기관명

교원 투어

프로젝트명

서비스 개선 작업 및 리팩토링

프로젝트 내용

# 코드 리팩토링 및 개선

• 컨트롤러에 집중된 비즈니스 로직을 구체적인 Service 클래스를 만들어 관심사를 명확히 하고, 단위 테스트 코드 작성으로 시스템 안정성 강화

• HashMap으로 관리되던 데이터를 VO, DTO 객체로 캡슐화하여 타입 안정성 확보 및 유지보수성 개선

• 테스트 코드 부재로 인한 운영 및 리팩토링 리스크를 해결하기 위해, 코드를 작은 단위로 분리하고 단위 테스트, 통합 테스트를 단계적으로 도입

매직 넘버 리팩토링: 클래스 상단에 선언 또는 퍼져있는 상수값들을 ENUM으로 전환하여 하드코딩된 코드값을 제거하고 타입 안정성 및 가독성 향상

GlobalExceptionHandler 도입 및 패키지별 세분화된 Handler 구현으로 예외 전파 체계와 시스템 로깅 메커니즘을 강화, 신규 개발 및 유지보수 코드부터 점진적으로 적용

WebClient 에러처리 표준화: 반복적인 copy/paste 패턴으로 구현되던 WebClient 에러처리 로직을 Config에 통합하여 일관된 예외처리 로직 구현 및 코드 중복 제거

Jenkins CI/CD 파이프라인 구축: FTP 수동 업로드 방식에서 GitLab 연동 Jenkins 파이프라인으로 전환하여 Maven 빌드부터 배치 스크립트 실행까지 전 과정을 자동화함으로써 배포 효율성과 안정성을 높였습니다.

‭‭‭ ‭ ‭ ‭ ‭

# 시스템에 70% 발생하는 에러 로그 분석 및 개선

• Jennifer APM의 SQL Too Many Fetch 에러 로그 개선

> 원인 분석: 10,039건의 데이터를 조회하는 쿼리 식별

> 공식문서와 APM agent 설정 파일 검토 결과, fetch size 1만 건 초과 시 에러 로그 발생 확인

> 해결 방안: 1회에 여러 테이블을 조인하는 쿼리를 분리 시켜 쿼리를 수행하도록 최적화, 에러 로그 완전 제거

프로젝트 기간
2025.01. ~ 진행 중
소속/기관명

교원투어

프로젝트명

재구매 유도 리텐션 TF팀 참여 개발

프로젝트 내용

# 기존 쿠폰 정책을 포함할 수 있는 신규 쿠폰 개발
• 기존 쿠폰 시스템과의 호환성을 보장하는 확장 가능한 데이터 모델링 및 테이블 설계

• 다양한 할인 정책(정액/정률)을 지원하는 유연한 구조 설계

‭‭

# 50개 이상의 테스트 코드 작성

• JUnit, Mockito 기반 Controller, Service, Domain 계층별 단위 테스트 코드 작성

WireMock을 활용한 외부 API 의존성 격리 및 시나리오별 테스트 케이스 코드 작성

• MyBatis 환경에서 test.sql 스크립트와 @Sql 어노테이션을 활용한 DB 통합 테스트 구현

• 경계값, 예외 케이스를 포함한 철저한 테스트 커버리지 확보

‭‭

# 에러처리, WebClient 예외처리 표준화, 리팩토링

중복된 에러처리 로직을 Config 레벨에서 통합하여 일관성 확보 및 코드 중복 제거

• HTTP 상태코드(400, 500)에 따른 맞춤형 예외처리와 Connection/Read timeout에 대한 공통 필터 구현

• GlobalExceptionHandler와 패키지별 세분화된 ExceptionHandler로 예외 전파 체계 강화

• couponCode/couponId에 대한 OR 조건 검증이 가능한 Validation 커스텀 어노테이션 개발

• 매직 넘버를 의미있는 ENUM으로 리팩토링하여 코드 가독성 및 타입 안정성 향상 - CQR 패턴 적용으로 객체 책임 분리 및 유지보수성 개선

프로젝트 기간
2025.03. ~ 2025.04.
(2개월)
소속/기관명

교원 투어

프로젝트명

간편 링크 API 개발

프로젝트 내용

# 세부 구현 사항

• 요청 URL을 SHA256으로 해싱 후 Apache Base64의 encodeBase64URLSafe() 메서드를 사용하여 안전한 URL 인코딩

• 요청 URL + CurrentMilliSeconds + 현재 Thread 번호를 SHA256으로 해싱 후 URL을 인코딩을 통해 동시성을 고려하여 개발

• 계층별 (Controller, Service, Component) 단위, 통합 테스트 코드 작성 및 CountDownLatch를 활용한 100,000개의 쓰레드로 동시성 테스트 코드 작성

• ConstraintValidator 상속받아 검증 로직 재정의, @ValidUrl 커스텀 어노테이션 만들어 유효성 검증 로직 관심사 분리

ExceptionHandler를 통해 예외 처리에 대한 로그를 DB에 적재

프로젝트 기간
2025.01. ~ 2025.01.
(1개월)
소속/기관명

개인 프로젝트

프로젝트명

JoyMall 이커머스 백엔드 서비스

프로젝트 내용

[프로젝트 설명]

알리익스프레스, 쿠팡 등을 모티브로, 대규모 트래픽에도 견고한 이커머스 서비스를 개발함으로써 기술적 문제 해결과 대응 능력 향상을 위해 프로젝트를 시작하였습니다.

‭‭‭ ‭ ‭ ‭ ‭

# DDD 기반의 이커머스 서비스 설계 및 구현

• 도메인 모델 시각화와 유비쿼터스 언어 정립을 통해 주문 관리, 상품 관리, 고객 관리 등의 바운디드 컨텍스트 식별 및 컨텍스트 매핑 수행

• 주문, 결제, 배송, 상품, 리뷰, 위시리스트 등의 애그리게이트 그룹을 설계하고 Spring Data JDBC를 활용한 엔티티 구현

• 커뮤니케이션/클래스 다이어그램 작성으로 객체 간 의존 관계 파악 및 순환 참조 방지 설계

• 단일 책임 원칙 중심의 설계로 도메인별 유효성 검증 로직을 별도의 Validator 클래스로 분리

‭‭‭ ‭ ‭ ‭ ‭

# 전략 패턴을 활용한 확장 가능한 결제 시스템 구현

• PayClient 인터페이스 정의와 구체적인 결제 클라이언트 구현으로 새로운 결제 방식 추가 용이성 확보

• 주문부터 결제까지의 비즈니스 프로세스 모듈화로 유연한 구조 구현

• 의존성 주입을 통한 컴포넌트 간 결합도 감소로 결제 클라이언트 교체 용이성 향상

‭‭‭ ‭ ‭ ‭ ‭

# 동시성 이슈 해결을 위한 분산 아키텍처 구현

• 초기 비관적 락 적용 후, 다중 서버 환경에서의 한계를 인식하고 Redis 분산락으로 개선

• Redisson 라이브러리를 이용한 분산락 구현 및 TTL 설정으로 데드락 위험 감소

Kafka를 활용한 비동기 재고 처리로 평균 TPS 246, 최고 TPS 464, 평균 응답시간 0.95초 달성

Redis Atomic 연산과 1분 주기 RDB 동기화로 안정적인 재고 수량 관리 구현

• 성능 테스트 및 모니터링 체계 구축

nGrinder를 활용해 400명 동시 사용자 환경에서 단일 서버와 4개 서버 성능 비교 테스트 수행

Pinpoint APM을 통한 분산락 병목 현상 발견 및 Kafka 도입으로 성능 개선

쿠버네티스 기반 4개 파드 구성과 로드밸런서 연동으로 트래픽 분산 및 시스템 안정성 확보

‭‭‭ ‭ ‭ ‭ ‭

# VPC 기반의 보안 아키텍처 및 CI/CD 구축

• Public/Private 서브넷 분리로 DB, 백엔드 서버 등 핵심 자원 보호

• GitHub Actions와 Docker를 결합한 자동화된 CI/CD 파이프라인 구축

Rolling Update 전략으로 다운타임 없는 서버 업데이트 구현

프로젝트 기간
2024.04. ~ 2024.08.
(5개월)
소속/기관명

개인 프로젝트

프로젝트명

Mini Blog 백엔드 서비스

프로젝트 내용

[프로젝트 설명]

이 프로젝트는 SpringBoot와 JPA를 기반으로 한 블로그 백엔드 서비스입니다. 실제 서비스 구현에 필요한 다양한 기술들을 학습하고 적용하는 것을 목표로 하였습니다. 기본적인 CRUD 기능뿐만 아니라, Spring Security를 이용한 인증 및 인가, JWT를 활용한 토큰 기반 인증, OAuth2를 통한 소셜 로그인 등 보안 관련 기능을 구현하였습니다.

‭‭‭ ‭ ‭ ‭ ‭

RESTful API 설계 원칙을 따라 API를 구현하고, Swagger UI를 통해 API 문서화를 자동화하였습니다. 주 데이터베이스로는 MariaDB를 사용하였습니다.

‭‭‭ ‭ ‭ ‭ ‭

배포 환경은 Jenkins를 이용한 CI/CD 파이프라인을 구성하고, Docker를 활용하여 애플리케이션을 컨테이너화하였습니다. AWS의 다양한 서비스(EC2, RDS, ElastiCache, S3, SES)를 활용하여 클라우드 환경에서의 서비스 운영 경험을 쌓았습니다.

‭‭‭ ‭ ‭ ‭ ‭

# 분산 환경의 세션 관리와 보안 강화

- JWT와 Redis를 결합하여 분산 서버 환경에서의 세션 동기화 문제 해결 및 일관된 사용자 인증 상태 유지

- Spring Security와 커스텀 CorsFilter를 구현하여 엔드포인트별 접근 제어 및 CORS 이슈 해결

- OAuth2를 활용한 Google, Kakao, Naver 소셜 로그인을 구현하고 자동 회원가입 및 정보 업데이트 처리

‭‭‭ ‭ ‭ ‭ ‭

# JPA 성능 최적화 및 예외 처리 체계화

- JPA N+1 문제를 해결하기 위해 페이징된 주 엔티티 조회 후 연관 엔티티를 조회하는 2단계 쿼리 방식 적용

- 커스텀 예외 클래스와 글로벌 예외 핸들러를 구현하여 다양한 에러 상황에 대한 체계적인 처리와 로깅 전략 수립

- RuntimeException을 상속한 세분화된 예외 클래스로 신속한 문제 원인 파악 및 효과적인 대응 가능

‭‭‭ ‭ ‭ ‭ ‭

# AWS 기반의 인프라 구축 및 자동화

- S3를 활용한 사용자 프로필 이미지 업로드 기능 구현 및 대용량 파일 관리

- AWS SES와 Redis를 활용한 이메일 인증 시스템 구축으로 시스템 응답 속도 개선

- Route 53을 통한 도메인 관리 및 DNS 서비스 구성

‭‭‭ ‭ ‭ ‭ ‭

# Jenkins와 Docker를 활용한 CI/CD 환경 구축

- GitHub webhook으로 코드 변경을 감지하고 Jenkins를 통한 자동 빌드 및 배포 파이프라인 구축

- Docker를 활용한 애플리케이션 컨테이너화 및 DockerHub를 통한 이미지 관리

- 프론트엔드(React)와 백엔드 모두에 동일한 CI/CD 파이프라인을 적용하여 일관된 배포 환경 구성

프로젝트 기간
2023.06. ~ 2023.12.
(7개월)
소속/기관명

LG CNS

프로젝트명

LG 화학 석유 공장 설비 모니터링 프로젝트

프로젝트 내용
[프로젝트 설명]

• LG 화학 공장의 석유를 정제하는 설비 데이터들에 대한 대시보드 제공

• 이상 수치 알람, 대시 보드, 설비의 이상 유무, 타 시스템들에 대한 통합적인 데이터 조회 플랫폼 제공

‭‭‭ ‭ ‭ ‭ ‭

[주요 성과]

# 1분 간격으로 3,000개의 설비 데이터를 안정적으로 수신하는 데이터 파이프라인 구축

• Apache NIFI를 이용한 실시간 데이터 파이프라인 구축 (ERP, MES, WMS 시스템)

• 데이터 전처리 유지보수성 향상을 위해 Javascript를 채택 (Execute Script 프로세서 활용)

• 최종적으로 kafka 토픽으로 데이터 발행

# Vue.js 기반 Web Builder 서비스 컴포넌트 개발 및 화면 구현

• 신규 개발할 컴포넌트들을 정의하고, 공유 (MultiLine, Gauge 컴포넌트)

HighChart 라이브러리를 커스텀하는 신규 컴포넌트를 개발 (Stacker, Donut 차트 등)

• mounted 훅을 사용하여 변경된 DOM을 수정하는 버전업 시 마이그레이션 코드 개발 참여

테스트 케이스, 통합, 회귀 테스트 시나리오 작성 및 진행

• 튜토리얼, 컴포넌트 별 가이드라인, Practice 과제 등을 wiki에 작성 후 공유

프로젝트 기간
2023.04. ~ 2023.10.
(7개월)
소속/기관명

LG CNS

프로젝트명

LG 화학 물류 상황 가시화 프로젝트

프로젝트 내용
[프로젝트 설명]

• LG 화학 물류 창고 모니터링 시스템을 구축

• WebGL 기반 3D 시각화로 스태커 크레인과 랙의 물류 상태를 실시간 표현, 과거 데이터 조회 기능을 제공

[주요 성과]

# 300만 건의 집계 데이터 조회 API 성능 최적화

• 스태커 크레인별 월간 작업 실적 집계 API 개발 중 10초의 높은 레이턴시 발생

• 1차 최적화

ㅤ- 조회 조건 컬럼들에 대한 복합 인덱스 생성

ㅤ- Native Query와 커버링 인덱스를 활용하여 필요한 데이터만 조회

ㅤ- 결과: 레이턴시 10초 > 3초로 개선

• 2차 최적화:

ㅤ- ForkJoinPool 프레임워크 기반의 Parallel Stream 적용

ㅤ- 스태커 크레인 데이터를 병렬로 필터링 및 집계 처리

ㅤ- 결과: 최종 레이턴시 3초 > 1초 미만으로 개선

# 데이터 배치 시스템 아키텍처 개선

• 설비 데이터를 1분 주기로 집계하는 배치 프로세스 개발 요구사항 발생

• 문제 상황

ㅤ- 유일하게 사용 가능한 API 서버의 CPU 사용률이 이미 70~80% 수준

ㅤ- 해당 서버에 배치 프로세스 추가 시 리소스 부족 및 서비스 장애 위험 예상

ㅤ- @Scheduled를 사용한 배치 처리는 기존 API 서비스의 안정성을 해칠 것으로 판단

• 해결 방안

ㅤ- Apache NIFI를 이용하여 배치 프로세스를 독립적인 파이프라인으로 구축

ㅤ- API 서버와 배치 처리를 완전히 분리하여 서비스 안정성 확보

• 결과

ㅤ- 핵심 API 서비스의 안정성 유지

ㅤ- 배치 프로세스의 독립적인 모니터링 및 리소스 관리 가능

프로젝트 기간
2022.11. ~ 2023.04.
(6개월)
소속/기관명

큐브에이

프로젝트명

KIET 산업연구원 홈페이지 리뉴얼 프로젝트 및 유지보수

프로젝트 내용

[프로젝트 설명]

• Spring 리뉴얼 프로젝트

• Oracle DB에서 MariaDB로 데이터를 마이그레이션

[주요 성과]

# DAO가 JAR로 구성된 레거시 서비스 코드 분석 후 Spring + MyBatis로 전환

• JAR 파일을 Decompile 하여 서비스 DAO 계층에 대한 이해

• 기존 테이블 정규화, 데이터 성질에 맞는 테이블을 새롭게 설계

• 테이블 구조 일관화, 공통 DAO 설계를 통한 MyBatis 쿼리 작성 용이성 향상

# Oracle DB에서 MariaDB로의 100만 건의 데이터 마이그레이션

• Oracle Client와 DBeaver를 활용한 CSV 기반 데이터 추출 및 Import

• Spring 기반의 마이그레이션 로직 개발, Linux crontab을 활용한 일일 배치 시스템 구축

# 인사정보 시스템, 관련 기사 API 데이터화 배치 로직 개발

• 매일 1번 업데이트 되는 인사정보 시스템을 update할 수 있는 배치 로직 개발

• 타 시스템의 API 조회를 통해 운영되던 페이지, pageSize가 정상 작동하지 않았음

ㅤ- API를 배치로 update되는 데이터들을 새롭게 설계한 테이블에 저장

# 조회 쿼리 성능 개선

• 10개의 테이블 데이터를 단일 페이지에서 조회하는 요구사항

• 테이블들을 1개의 View 테이블로 만들어서 조회, 5초의 응답시간 발생

ㅤ- 실행 계획 결과, 테이블들이 파일 테이블과 조인, 조건문 실행 시 풀 스캔 조인 발생

ㅤ- 조건문에 대한 인덱스 설정, 커버링 인덱스 적용, 서브 쿼리 삭제

• 응답시간 5초 > 1초

프로젝트 기간
2022.02. ~ 2022.08.
(7개월)
소속/기관명

큐브에이

프로젝트명

르노삼성 쿠폰 발급 시스템 고도화 및 운영

프로젝트 내용

[프로젝트 설명]

르노삼성 서비스 센터 정비 쿠폰 관리 시스템 개발 및 운영

[주요 성과]

# 10만건 쿠폰 일괄 발급 프로세스 개선

• 기존 단일 1,000건 발급되던 쿠폰을 이벤트를 위한 50만 건 발급 필요

• 쿠폰 대상 차량 조회 쿼리 성능 개선

ㅤ- 조회 컬럼 최적화: 조회 시 불필요한 컬럼 제거 및 필수 컬럼만 SELECT

ㅤ- 서브쿼리를 INNER JOIN으로 전환하여 실행 계획 최적화

ㅤ- 실행 계획 분석을 통해 불필요한 테이블 풀스캔 발생 구간 식별

ㅤ- WHERE 절 조건 순서 최적화 및 복합 인덱스 설계

• 대량 발급 처리 로직 개선

ㅤ- MyBatis foreach를 활용한 bulk INSERT 처리 구현

ㅤ- 메모리 사용량을 고려하여 5,000건 단위로 배치 사이즈 설정

• 최종 결과: 발급 소요 시간 5분 > 1분으로 단축 (80% 성능 개선)

프로젝트 기간
2021.10. ~ 2021.11.
(2개월)
소속/기관명

큐브에이

프로젝트명

르노삼성, 르노 도메인 운영

프로젝트 내용
[프로젝트 설명]

르노삼성 자동차 홈페이지 운영, 이벤트 설계 및 개발, 백오피스 개발

[주요 성과]

# 코드 리팩토링

• 공통으로 관리할 수 있는 java, javascript, html 코드를 공통화하여 유지보수성 향상

# 핵심 서비스 운영 및 유지보수

• 시승 신청, 내 차 만들기, 메인 페이지 배너 관리 등 핵심 기능 개발 및 개선

• 정기 배포 및 시스템 안정성 확보

ㅤ- 월간 정기 배포 진행 (dump를 이용한 DB 백업 및 변경사항 적용)

ㅤ- Scouter를 통한 서비스 모니터링 및 장애대응

# 다양한 유저 참여형 이벤트 시스템 설계 및 개발

선착순 이벤트 동시성 제어 시스템 구축

ㅤ- 오라클 시퀀스를 활용한 선착순 번호 발급으로 동시성 문제 해결

ㅤ- 시퀀스의 NOCACHE, NOCYCLE 옵션 적용으로 번호 중복 발급 방지

• 다양한 이벤트 유형별 시스템 구현

ㅤ- 차량 원격 제어 연동 이벤트: 외부 제어 API 연동 및 사용자 인증 보안 강화

ㅤ- 실시간 룰렛 이벤트: 당첨 확률 조정 및 실시간 당첨 결과 노출

• 이벤트 모니터링 및 관리 시스템 구축

ㅤ- 이벤트 진행 상황 실시간 모니터링 대시보드 개발

ㅤ- 부정 참여 방지를 위한 IP 기반 접근 제한 및 Device ID 검증

ㅤ- 이벤트 참여 데이터 분석을 통한 사용자 패턴 파악

프로젝트 기간
2020.06. ~ 2022.01.
(1년 8개월)

교육

소속/기관명

인하공업전문대학교

종류 | 전공

대학교(전문학사) | 정보통신학과

재학 기간

2015.03. ~ 2020.02.

재학 상태

졸업

소속/기관명

서울 양정고등학교

종류 | 전공

고등학교 | 이과

재학 기간

2012.03. ~ 2015.02.

재학 상태

졸업

소속/기관명

F-lab

종류 | 전공

사설 교육 | 자바 백엔드 딥다이브

재학 기간

2024.02. ~ 2024.06.

재학 상태

졸업

소속/기관명

인천 ICIA 교육원

종류 | 전공

사설 교육 | Java, Spring, Mybatis를 활용한 웹 서비스 구축 및 개발

재학 기간

2019.06. ~ 2020.02.

재학 상태

졸업

자격증

자격증명

정보처리기사

점수 | 발급기관

합격 | 한국산업인력공단

취득연월

2024.06.

자격증명

SQLD

점수 | 발급기관

합격 | 한국데이터산업진흥원

취득연월

2022.03.

포트폴리오

타입

URL

노션
링크

포트폴리오

깃허브
링크

GitHub

URL 링크
링크

Blog

댓글