개요

엔지니어 프로필

프로필

이름정범수
이메일inithink@gmail.com
전화번호010-8680-4027
생년월일1987-07-21
지역경기도 부천시

간단 소개

컴퓨터 분야에 관심이 있어 중학생 때 프로그래밍을 시작했습니다.
여러 프로젝트를 진행하면서, 유지보수를 잘하기 위한 고민을 지속적으로 해왔습니다.
컴퓨터에 관심도 많고 초기 스타트업에서 많이 일해서 임베디드, 홈페이지, 앱, 서버, 인프라, 관측성 등 넓은 분야를 다룰 줄 압니다.

기술

TypeScriptHTML5CSS3JavaScriptJavaKotlinC++Next JSViteRemixTailwindCSSMUIReact NativeAndroid StudioSpringNestJSPrismaHibernateMySQLPostgresUbuntuNginxKubernetesDockerFirebaseSupabaseAWSGoogle CloudLinodeJiraFigmaGrafanaShell ScriptGitGitHubIntelliJ IDEAVisual Studio CodeGitHub ActionsJest

경험

직장, 프리랜서

  • Java / HTML / Javascript / Typescript / CSS / C++ / Shell Script
  • PlatformIO (임베디드 시스템 펌웨어 제작)
  • Next.js (Next Auth, Prisma, Tailwind CSS)
  • Nest.js (TypeORM, Passport, Swagger, OpenTelemetry)
  • Material UI / React Admin
  • Android Studio
  • Docker / Docker Compose
  • Kubernetes (GKE, EKS)
  • Grafana
  • Sentry / Newrelic
  • Firebase
  • Commander.js (명령어 도구 제작)
  • Spring Boot
    • Web / JPA / Security / OAuth2
    • Vaadin, Hilla
    • OpenTelemetry
  • 포트원 (결제, 본인인증)
  • React Native (Expo)
  • Puppeteer (웹 크롤링)

개인 프로젝트

  • Kotlin / Python
  • Serverless Framework (코드로 AWS 인프라 관리)
  • Amazon SES (이메일 전송)
  • 개인 서버 (Ubuntu 서버 가정에서 운영)
    • Kubernetes (microk8s)
    • (현재 사이트) 자기소개 서버
    • Grafana LGTM Stack
    • Private Github Runner
    • Private Docker Registry
    • n8n / Windmill (워크플로우 자동화 - 로코드)
  • Supabase
  • oclif

아키텍처

소프트웨어는 만드는 시간보다 유지보수하는 시간이 더 많습니다.
수정하기 쉽게 만들기 위한 관심을 가지고 있습니다.

  • DDD (Domain Driven Design)
  • TDD (Test Driven Development)
  • Architecture
    • Clean Code
    • Hexagonal Architecture
    • Command Query Responsibility Segregation
  • Design Patterns

인프라

소프트웨어를 개발하고 실제 서비스를 하려면 배포하고 관리하는 것이 필요합니다.
도구를 잘 이해해서 자동화하지 않으면, 배포하는 시간이 길어지고 그만큼 일할 시간이 줄어듭니다.

  • DNS
  • Nginx
  • Certbot
  • CI/CD (Continuous Integration / Continuous Deployment)
    • Github Actions
  • Kubernetes / Docker compose
  • Firebase
  • Linux Server (Ubuntu)
  • GCP (Storage, GKE, Cloud Run, Cloud Task, Cloud SQL)
  • Postgres, MySQL, MongoDB

관측성

서비스를 운영하면서 다양한 문제들을 접하게 됩니다.
문제가 발생한 것을 알아차리고, 해결하기 위해서는 어떤 일이 왜 일어나는지 알아야 합니다.

  • OpenTelemetry
    • Metrics
    • Logging
    • Tracing
  • Sentry / NewRelic
  • Grafana
    • Alert
    • Visualization

분석

비즈니스적인 판단을 하려면 고객의 니즈가 중요합니다.
분석 도구를 이용하면 고객이 어떤 행동을 하는지 파악하여 비즈니스 판단을 도울 수 있습니다.

  • Google Analytics
  • Hotjar

로코드 / 노코드

개발자는 개발만 하지 않고 다양한 업무를 처리하게 됩니다.
그러나 모든 것을 직접 만든다면 시간이 많이 소요됩니다.
단순하고 반복적인 업무는 로코드 / 노코드 도구를 이용하여 자동화할 수 있습니다.

  • n8n
  • windmill