Backend & Cloud Engineer βοΈ
ν΄λΌμ°λ μΈνλΌμ DevOpsμ κ΄μ¬μ΄ λ§μ κ°λ°μμ
λλ€.
API ν
μ€νΈ μλν, CI/CD νμ΄νλΌμΈ ꡬμΆ, ν΄λΌμ°λ κΈ°λ° μμ€ν
μ€κ³ λ±μ κ²½νμ ν΅ν΄
κ°λ° μμ°μ±κ³Ό μμ€ν
μμ μ±μ λμ΄λ μΌμ λ§€λ ₯μ λλλλ€.
νλ‘μ νΈ λ¦¬λ κ²½νκ³Ό κΈ°μ λΈλ‘κ·Έ νλμ λ°νμΌλ‘,
νμ
κ³Ό μ§μ 곡μ λ₯Ό ν΅ν΄ ν¨κ» μ±μ₯νλ κ°λ° λ¬Ένλ₯Ό λ§λ€μ΄κ°κ³ μ ν©λλ€.
π 2024.06 - 2024.11
- AESOP(μ°¨λ 둬 λ°μ΄ν° νΈλ€λ§ λꡬ) κΈ°λ₯ κ°λ°
- Eclipse RCP κΈ°λ° Java νλ¬κ·ΈμΈ κ°λ°
- AAOS API νΈνμ± κ²μ¦μ μν CTS μλν νλ‘μ νΈ
π 2024.12 - 2025.02
π ν΄λΌμ°λ μμ§λμ΄λ§ κ΅μ‘ λ° μ€μ΅
- Docker & Kubernetes μ€μ΅: 컨ν μ΄λν κ°λ νμ΅, ArgoCDλ₯Ό νμ©ν μ ν리μΌμ΄μ λ°°ν¬
- Public Cloud μΈνλΌ κ΅¬μΆ: Bastion μλ² κ΅¬μ±, μ€ν μ€μΌμΌλ§ μ€μ΅
- Infrastructure as Code (IaC): Terraformμ νμ©ν VPC μλΈλ· λ° λ³΄μ κ·Έλ£Ή μλν
π ν νλ‘μ νΈ: μ¬λ¦¬λΈμ μ¨λΌμΈ μΌνλͺ° μ΄λ²€νΈ νΈλν½ λΆμ° μν€ν μ² κ΅¬μΆ
- λͺ©ν: μ΄λ²€νΈ νΈλν½ νμ¦ μμλ μμ μ μΈ μλΉμ€ μ΄μ
- ꡬν: MSA κΈ°λ° νΈλν½ λΆμ°, Jenkins + ArgoCD + GitOps κΈ°λ° CI/CD μλν
- μ±κ³Ό: μ΄λ²€νΈ μμ€ν (μ΄λ²€νΈκ³) μ₯μ λ°μ μμλ μ΄μ μλΉμ€(μ΄μκ³)μ μμ λΆλ¦¬νμ¬ λ¬΄μ€λ¨ μλΉμ€ μ μ§
π 2024.02 - 2024.07
π μμ μ§μ λ° κ΅μ 보쑰
- νμ μ€μ΅ μ§μ & Eclipse κ°λ° νκ²½ μ€μ κ°μ΄λ μ 곡
- Amateras Modeler κ΅μ‘ μ½ν
μΈ μ μ
- UML λ€μ΄μ΄κ·Έλ¨ μμ±λ² λ§€λ΄μΌ μ μ (π Class, State, Usecase)
- π Amateras Modeler μ€μΉ λ°©λ²
- JUnit κ°μ μλ£ μ μ
- μ€μΉ λ° λ¨μ ν μ€νΈ μ€μ΅ κ°μ μ 곡
- π JUnit νμ© κ°μ΄λ
π 2023.11 - 2024.01
π νκ΅ λν νμμΌλ‘ μ μ λμ΄ CES 2024 μ°Έκ°
- λͺ¨λ°μΌ ν¬μ€μΌμ΄ μμ₯ μ‘°μ¬ λ° νΈλ λ 리μμΉ
- CES κΈ°μ λ¬Έμ ν΄κ²° μμ΄λμ΄ κ²½μ§λν μ°Έκ° (νμ₯ & λ°ν λ΄λΉ)
- CES 2024 λ°λν λΆμ€ μ΄μ
- ν΄μΈ λ°μ΄μ΄ λμ μ ν μκ° λ° νλ§€ μ§μ
- μ€λ¦¬μ½λ°Έλ¦¬ IT κΈ°μ λ°©λ¬Έ & νμ§μ μΈν°λ·° μ§ν
π 2022.07 - 2024.02
π μΊ‘μ€ν€ νλ‘μ νΈ λ° μ°ν νλ ₯ μ°κ΅¬ μ°Έμ¬
- λΈλ‘μ²΄μΈ κΈ°λ° μ±μ κ΄λ¦¬ μμ€ν
κ°λ° (SBT νμ©)
- μμΈλ°μ΄λ ν ν°(SBT)μ μ΄μ©ν λν μ±μ μλ³μ‘° λ°©μ§ μμ€ν ꡬμΆ
- QR μ½λ κΈ°λ° μ€λΉ μ΄λ ₯ κ΄λ¦¬ μμ€ν
κ°λ°
- μμ¨ μκ°ν νλ¦ & QR μ½λλ₯Ό νμ©ν λΌμ¦λ² 리νμ΄-ν΄λΌμ°λ μ°λ μλν
π μννΈμ¨μ΄ μ°κ΅¬μ±κ³Όλ¬Ό λ±λ‘
- μμΈλ°μ΄λ ν ν° κΈ°λ° μ±μ κ΄λ¦¬ μμ€ν (λ±λ‘λ²νΈ: C-2023-037966)
- QR μ½λ κΈ°λ° μ€λΉ μ΄λ ₯ κ΄λ¦¬ μμ€ν (λ±λ‘λ²νΈ: C-2024-005406)
π 2021.09 - 2024.06
π₯ κ°λ° νλ‘μ νΈ μ΄κ΄ λ° μ μ νμ λ©ν λ§ μ΄μ
- μ€ν°λ λ§€μΉ μ ν리μΌμ΄μ (Smapp) κ°λ°
- λ€νΈμνΉ νλ‘κ·Έλ¨ κΈ°νΒ·μ΄μ (μ‘Έμ μ-μ¬νμ κ΅λ₯ νμ¬ 70λͺ +)
π GitHub Repository
- κΈ°κ°: 2025.03 β 2025.05
- κ°μ: νλλνκ΅ κΈλ‘컬λνμ 곡μ ννμ΄μ§λ₯Ό ꡬμΆνλ νλ‘μ νΈλ‘, AWS μΈνλΌ μ€κ³λΆν° CI/CD, λ°±μλ API κ°λ°κΉμ§ μ κ³Όμ μ μ£Όλ
- μν : DevOps λ° λ°±μλ κ°λ° λ΄λΉ
- κΈ°μ μ€ν: Terraform, AWS (EC2, RDS, ALB, S3, Route53), Docker, GitHub Actions, Spring Boot, PostgreSQL, Next.js, nginx
πͺ μ£Όμ μ±κ³Ό:
- Terraformμ νμ©ν΄ Dev/Prod νκ²½μ λΆλ¦¬ν μΈνλΌ μλν ꡬμ±
- VPC, Subnet, EC2, ALB, RDS, ECR, S3, Route 53 λ±μ λͺ¨λννμ¬ μ½λ κΈ°λ° κ΄λ¦¬
- Prod VPCμλ νλ ₯μ IP + nginx 리λ²μ€ νλ‘μ ꡬμ±μ ν΅ν΄ μ€μ μ¬μ©μ νΈλν½ λμ κ°λ₯ ꡬ쑰 μ€κ³
- GitHub Actions κΈ°λ° CI/CD νμ΄νλΌμΈ κ΅¬μΆ λ° μ΄μ
- Dev/Prod νκ²½ λͺ¨λμ λν΄ νλ‘ νΈμλ/λ°±μλ μλ λΉλ λ° λ°°ν¬ νμ΄νλΌμΈ μμ±
- λ°±μλ:
application-secret.properties
λ₯Ό GitHub Secretsλ‘ μμ νκ² κ΄λ¦¬νλ©° EC2μ λμ λ°°ν¬ - νλ‘ νΈμλ:
.env.production
νμΌμ base64λ‘ κ΄λ¦¬νλ©° Docker λΉλ μμ μ νκ²½λ³μ λ°μ μ²λ¦¬ - λ°°ν¬ μ
docker system prune
λ° μ»¨ν μ΄λ μ¬μμ±μ ν΅ν΄ μ΄μ μλ²μ μμ μ±κ³Ό 리μμ€ κ΄λ¦¬ μ΅μ ν
- 보μ μ·¨μ½μ μ§λ¨ μλν
- OWASP ZAPμ GitHub Actionsμ ν΅ν©νμ¬ νλ‘ νΈμλ λ°°ν¬ μ μλ μ·¨μ½μ μ€μΊλ λ° λ¦¬ν¬νΈ μμ±
- νκ΅ μΈ‘ λλ©μΈ λ±λ‘ 쑰건(CSP, 보μ μ κ² λ±)μ μΆ©μ‘±νλ λ°°ν¬ κ΅¬μ‘° λ§λ ¨
- Spring Boot κΈ°λ° API κ°λ° λ° λ°°ν¬
- 곡μ§μ¬ν API (
λͺ©λ‘
,μμΈ
,미리보기
) κ°λ° λ° S3 μ°λμ ν΅ν λ―Έλμ΄ μ λ‘λ μ²λ¦¬ - μ΄μ νκ²½μμμ CORS 보μ μ€μ (
hguglocal.site
, ALB DNS λ±)μ μ§μ ꡬμ±
- 곡μ§μ¬ν API (
π GitHub Repository
- κΈ°κ°: 2025.02 β 2025.02
- κ°μ: CJ μ¬λ¦¬λΈμμ μ¨λΌμΈ μΌνλͺ°μ μν AWS κΈ°λ° μΈνλΌλ₯Ό ꡬμΆνμ¬, μ΄λ²€νΈ νΈλν½ νμ¦ μμλ μμ μ μΈ μλΉμ€ μ΄μμ λͺ©νλ‘ ν νλ‘μ νΈ
- μν : PM, ν΄λΌμ°λ μν€ν νΈ λ° μμ§λμ΄
- κΈ°μ μ€ν: AWS (EKS, ALB, Route53, CloudFront), Terraform, Jenkins, ArgoCD, GitOps, React, Vite
πͺ μ£Όμ μ±κ³Ό:
- MSA κΈ°λ° νΈλν½ λΆν λΆμ° (VPC λ¨μ μ΄μκ³ & μ΄λ²€νΈκ³ λΆλ¦¬, Route 53 νμ©)
- AWS DMS κΈ°λ° λ°μ΄ν° λ§μ΄κ·Έλ μ΄μ (μ΄λ²€νΈ μ’ λ£ ν RDS λκΈ°ν μλν)
- Jenkins + ArgoCD + GitOps κΈ°λ° CI/CD μλν νμ΄νλΌμΈ ꡬμΆ
- React + Vite κΈ°λ° μ΄λ²€νΈ λμ보λ κ°λ°
π GitHub Repository
- κΈ°κ°: 2023.06 β 2024.02
- κ°μ: μ€λΉμ μνλ₯Ό μ€μκ°μΌλ‘ λͺ¨λν°λ§νκ³ , μ¨λ κ°μ§ λ° μνλ νκ°λ₯Ό μλννλ μμ€ν κ΅¬μΆ μ°ν νλ ₯ νλ‘μ νΈ
- μν : λ°±μλ κ°λ° λ° μμ€ν ν΅ν©
- κΈ°μ μ€ν: AWS EC2, SCP, Chokidar, QR μ½λ, Node.js
πͺ μ£Όμ μ±κ³Ό:
- AWS EC2 κ° λ°μ΄ν° μ‘μμ μλν (SCP λͺ¨λ νμ©)
- Chokidar κΈ°λ° μ€μκ° μ€λΉ μν λͺ¨λν°λ§ μμ€ν ꡬμΆ
- QR μ½λ κΈ°λ° μ¨λ κ°μ§ λ° μνλ νκ° μλν
π GitHub Repository
- κΈ°κ°: 2022.07 β 2023.07
- κ°μ: OAuth 2.0 μΈμ¦ μμ€ν κ³Ό ERC-721 κΈ°λ° λΈλ‘μ²΄μΈ μ€λ§νΈ 컨νΈλνΈλ₯Ό νμ©ν μ±μ κ΄λ¦¬ μμ€ν κ°λ° νλ‘μ νΈ
- μν : λ°±μλ κ°λ° λ° λΈλ‘μ²΄μΈ μ€λ§νΈ 컨νΈλνΈ κ΅¬ν
- κΈ°μ μ€ν: Express.js, OAuth 2.0, ERC-721, MongoDB
πͺ μ£Όμ μ±κ³Ό:
- Google OAuth 2.0μ νμ©ν μΈμ¦ μμ€ν ꡬμΆ
- Express.js κΈ°λ° RESTful API μ€κ³ λ° μλ² κ΅¬μΆ
- ERC-721 κΈ°λ° λΈλ‘μ²΄μΈ μ€λ§νΈ 컨νΈλνΈ κ΅¬ν
π GitHub Repository
- κΈ°κ°: 2023.04 β 2023.06
- κ°μ: κ°μ²΄μ§ν₯ μ€κ³ ν¨ν΄μ μ μ©νμ¬ λμ κ²μ κΈ°λ₯μ μ΅μ ννκ³ , μΈλΆ λμκ΄ μ°λ μμ€ν μ ꡬνν λμ κ΄λ¦¬ μμ€ν κ°λ° νλ‘μ νΈ
- μν : μμ€ν μ€κ³ λ° νμ€ν κ°λ°
- κΈ°μ μ€ν: Java, Spring Boot, MySQL
πͺ μ£Όμ μ±κ³Ό:
- Template Method ν¨ν΄μ μ μ©ν λμ κ²μ κΈ°λ₯ μ΅μ ν
- Adapter ν¨ν΄ κΈ°λ° μΈλΆ λμκ΄ μ°λ μμ€ν ꡬν
- Observer ν¨ν΄ νμ© μ€μκ° μμ² μ²λ¦¬ μμ€ν ꡬμΆ
π© Email: maasj7514@gmail.com
π Blog: velog.io/@maasj
ο»Ώ