개발자 이민재입니다.

POSTS

2024년 3월 회고

8min read

Overview

    1분기가 벌써 지났습니다. 시간이 갈수록 빨리 가는 것 같습니다. 마침 회사에서 1분기 동안 뭐했는지 스스로 돌아보라는 주문도 있었고, 여지껏 달리느라 뭘 했는지 뒤돌아본 적이 없어 저번 달이라도 회고해보고자 합니다. 3월에는 개인적으로 작게나마 두 가지를 성취했습니다.

  1. AWS Solutions Architect Associate 자격증 취득
  2. 직접 제작한 개발 블로그 배포

    회사에서는 여러가지를 진행했지만 아래 두 가지를 진행 것이 기억에 남습니다.

  1. AWS DMS를 사용해서 데이터베이스 마이그레이션
  2. stripe 결제 모듈 연동

AWS SAA 취득

    SAA 자격증은 원래 계획에 없었지만, 1월에 이전 단계 자격증인 CLF 자격증을 취득하고 나서 더 욕심이 생겨 도전했습니다. 생각없이 도전한 걸 매일같이 후회하면서 어렵게 공부했고, 턱걸이로 겨우 합격했습니다. 그래도 그 과정을 돌아보니 공부하는 과정에서 AWS 서비스에 대한 이해도가 한층 깊어진 것 같습니다.
    처음 CLF 자격증을 취득하는 과정에서 제가 배운 것은 방대한 서비스를 구조화해서 파악하는 방법이었습니다. 방대한 AWS 서비스를 주제별(컴퓨팅, 네트워크, 보안 등)로 먼저 구조화하고, 각 주제별로 제공하는 서비스를 전반적으로 파악하는 것에 의미가 있었습니다.
    SAA 자격증에서 요구하는 것은 좀 더 실용적인 부분에 초점이 맞춰져 있었습니다. 비즈니스 요구사항을 파악하고, 가장 운영 오버헤드가 적은 절차나 비용효율적인 아키텍처를 선택할 수 있어야 했습니다. 강의를 듣고 공식문서 보면서 내용을 파악하는 시간이 누적되다보니, 다행히 마지막에 가서 합격을 할 수 있었던 것 같습니다.

개발 블로그 직접 제작

    시험을 끝내고 3월 중순부터 개발블로그를 Jekyll에서 Next로 직접 개발해서 옮겼습니다. 최소한으로 작동하는 블로그 사이트를 배포해서 뿌듯하면서도, 부족한 점이 많아 아쉽기도 합니다.
    블로그 글들을 카테고리로 나눠서 보여주는 기능까지는 적어도 3월 말까지 마무리하려고 했는데, 게으름때문에 지연됐습니다. 카테고리 사이드바, 검색기능, 다크모드 스위치, 태그 아카이브 페이지 등을 계획하고 있습니다. 그리고 시간날때마다 이 블로그를 제작한 과정도 글로 정리해서 올릴 계획입니다.

DMS 마이그레이션

    회사에서 비용문제로 데이터베이스를 마이그레이션 할 일이 생겼습니다. SAA를 공부하면서 알게된 DMS를 적용해보자고 제안했고, 제안이 받아들여져서 DMS로 서비스 중단 없이 마이그레이션을 무사히 완료했습니다. 공식문서에서 학습 용도로 자세히 절차를 알려주고 있어서, 개념증명도 빠르게 마무리 할 수 있었고 마이그레이션 자체도 금방 끝났습니다.
    그런데 이후에 생각지 못한 오류들, 이를테면 일부 테이블에서 유니크 설정이 누락됐다거나 하는 문제들 때문에 꽤 고생했습니다. 잘 마무리했다고 생각했던 작업이 문제투성이였음을 깨달았고, 마이그레이션 과정에서 오류를 최소화하려면 어떤 것을 고려해야했는지 되돌아보게 되었습니다.

stripe 연동 작업

    글로벌 서비스를 준비하면서, PG 모듈을 붙여야 했습니다. Paypal, Stripe 등 여러 서비스를 검토해본 결과 Stripe의 개발 편의성이 정말 좋았습니다. 자세한 API 문서는 물론이고, 인터페이스 자체가 간단해서 개발 시간이 확 줄었습니다.
    모듈 붙이고 작동하는 걸 보며 신기해하는 단계까지는 끝났는데, 아직 테이블 설계 등 해결해야 할 문제들이 산재해 있습니다. 이들이 설계한 서비스를 보면서 좋은 인터페이스, 혹은 좋은 추상화란 무엇인지 다시 한 번 생각해보게 되었습니다.

3월에 읽은 책

    이번 달에는 '가상 면접 사례로 배우는 대규모 시스템 설계 기초'라는 책을 읽었습니다. 다양한 시스템에서 공통적으로 중요한 특성인 고가용성과 내결함성을 갖추기 위한 아키텍처 구축 과정을 설명해주는 책입니다.
    구글 드라이브, 뉴스피드, 유튜브 등 다양한 사례를 토대로, 점진적으로 아키텍처를 발전시키는 사고 과정이 인상적입니다. 가상 면접을 염두에 두고 만들어진 책이라 이직 준비용 서적같아 보이지만, 내용 자체로 배울 것이 정말 많습니다. 일부 사례(처리율 제한 장치, 안정 해시, 키-값 저장소)에서는 전반적인 아키텍처 구축 뿐만 아니라, 내부 구현 알고리즘까지 깊이있게 설명합니다. 이 덕분에 AWS가 추상화해서 제공하는 서비스가 내부적으로 동작하는 원리를 일부 알게된 것 같습니다.
    특히 알림 서비스, 크롤링 시스템, 유일 아이디 생성기 등은 실제로 개발하면서 맞닥뜨렸던 문제였기 때문에 더 몰입하면서 읽었습니다. 가상면접이라는 상황극 덕분에 초반부가 대화식 구조로 이루어져 있어, 학습하기에 더 편한 효과도 있었습니다. 여러모로 주니어 개발자 입장에서 빠르게 좋은 내용을 많이 알게되어 만족스러웠습니다.