분류 전체보기 30

11. 대규모, 대고객, 커머스 도메인을 경험했던 네 번째 프로젝트

들어가며일본 여행을 다녀와서 다음 날 바로 프로젝트에 투입이 되었다. 결혼을 앞두고 친한 친구와 여행을 다녀왔는데 그 주와, 그 다음 주를 고민하다가 그 주로 선택해서 정말 다행이었다. 들어간 날부터 계속해서 격무를 이어갔기 때문이었다. 내가 담당했던 업무는 Google Analytics 클릭 이벤트 태깅이었는데, 3개월 동안 총 346개 영역에 태깅을 붙였다. Typescript를 활용했으며 React의 Hook, Context, useEffect와 같은 기초적인 개념들에 대해서도 익힐 수 있었다. 대규모/대고객 커머스 프로젝트를 했다는 점이 개발자로서 매력적이었다. 이번에는 특히 소프트 스킬(협업)에 대해 느낀 점이 많았고, 솔루션이 아닌 소프트웨어 구축 프로젝트를 수행하며 이 프로젝트의 도메인에 대..

회고 2026.04.20

Python을 활용한 비동기 처리(Asyncio, Coroutine)

들어가며저번 프로젝트에서 FastAPI를 활용한 백엔드 개발을 수행했다. FastAPI 프레임워크는 ASGI 규약을 따르는 웹 어플리케이션으로, 비동기 처리를 지원하여 높은 성능을 뽑아낼 수 있다. 비동기 관련 개념에 대해 정리하고, Python에서는 어떻게 비동기 처리를 수행하는지 예제 코드와 함께 살펴보고자 한다. 동기/비동기, 블로킹/논블로킹비동기 처리와 관련해서, 동기/비동기와 블로킹/논블로킹은 늘 함께 등장하는 개념들이다. 프로그래밍의 관점에서, 어떤 함수(작업) 안에서 다른 함수(작업)를 호출하는 일은 빈번하게 일어난다. 관련 개념을 정리하면 다음과 같다.작업을 수행하며 작업을 호출한 쪽의 제어 흐름을 Block하면 블로킹, 그렇지 않으면 논블로킹해당 작업이 수행되어 마무리 될 때까지 기다리는..

10. 2025년 개발자 연말 회고

개발자로서 자리를 잡았던 한 해작년 하반기부터 일을 시작해 어느덧 1년 반이 흘렀다. 올 한 해 업무적으로 많은 일들이 있었고, 하나씩 해결하면서 성장할 수 있었다. 소프트웨어 개발자로서의 업무와 생활에 익숙해졌고, 자리를 잡았던 한 해였다. 2025년에는 어떤 일을 했는지 정리해보고, 잘했던 점 3가지와 아쉬웠던 점 3가지를 적어보았다. 2025년에 내가 했던 일들개발자로 일하며 지난 한 해동안 아래의 일들을 했다.프로젝트 파견 근무솔루션 커스터마이징 개발신규 서비스 개발상주 기술 지원솔루션 유지보수사용 문의 대응추가 개발사내 AI 교육 이수LLMMS Azure블로그 다시 시작추석 연휴 스터디 2025년에 잘했던 점 3가지 합리적으로 생각하고 적극적으로 의견을 제시했던 것올해 개발자로서 가장 잘한 점은..

회고 2025.12.29

9. 추석 연휴 스터디 챌린지와 갈망의 아궁이

추석 연휴 완강 챌린지저번 프로젝트를 마치면서, 개발을 잘하고 싶다는 욕심이 생겼다. 마침 인프런에서 추석 연휴 기간에 스터디 챌린지를 진행하고 있었다. 인프런의 CTO이신 향로님이 주최하는 챌린지로, 매일 최소 한 강씩 듣고 스터디 인증을 하는 것이 미션이었다. 때마침 듣고 싶은 강의(토비의 스프링 6 - 이해와 원리)도 있었고, 다른 사람들과 함께 공부하는 것은 어떤 느낌일지도 궁금했다. 챌린지를 하면서 연휴 내에 12시간 강의를 완강하였다. 느낀 점을 적어봤다. ‘함께 공부하기’의 효용성챌린지를 하면서 ‘함께 공부하기’의 효용성을 크게 느낄 수 있었다. 먼저 최소한의 강제성이 부여되니 꾸준히 해나갈 수 있었다. 챌린지의 완주 조건은 매일 한 강씩 강의를 듣는 것이었다. 긴 연휴동안 공부하기 싫은 날..

회고 2025.10.15

8. 좋은 개발자에 대해 생각했던, 세 번째 프로젝트 회고

들어가며두 번째 프로젝트를 마치고 바로 3개월 간 투입되었다. 이번 프로젝트에서는 기존에 납품된 솔루션에 대한 On-Site 기술 지원 업무를 수행했다. 기존에 구축되어 있는 솔루션에 SSO 연동 기능을 개발하고, 솔루션 관련 문의사항에 대해 답변하고 솔루션 사용 중 발생하는 에러를 해결했다. 프로젝트를 수행하면서 점점 자신감이 붙고 있다. 어떤 개발자가 되고 싶은지 나름의 답을 찾을 수 있었고, 더 잘하고 싶다는 욕심이 커졌다. 좋은 개발자 = 자신의 생각을 타인에게 잘 설명하는 개발자프로젝트를 할 때마다, ‘저 분 잘한다’라고 느끼는 개발자 분들이 꼭 한 분씩은 계셨다. 이번에도 마찬가지였다. 문득 ‘왜 나는 저 분이 잘한다고 느낄까?’ 생각해봤다. 그 분은 본인이 생각한 내용을 타인이 이해하기 쉽게..

회고 2025.10.03

조회 성능을 위한 DB Index(feat.MySQL)

들어가며대부분의 웹 어플리케이션을 구축하는 데 있어 DB 입출력 작업은 필수적이다. 그러므로 서버 성능의 관점에서, 클라이언트의 요청에 신속하게 대응하기 위해서는 DB 성능을 함께 고려해야 한다. DB 성능에 있어 인덱스는 늘 빠지지 않고 등장하는 주제이다. 관련하여 여러 개념들을 들어왔는데, 한 번 정리해보고자 한다. 널리 활용되는 RDBMS인 MySQL을 기준으로 작성했다. Index의 정의와 필요성Index란 DB의 Table에 대한 동작 속도를 높여주는 자료구조이다. 책을 읽을 때 활용하는 목차와 같다. 목차를 참고하여, 원하는 정보를 더욱 빠르게 얻을 수 있다. 웹 어플리케이션 동작 시에는 DB Table에 대한 조회가 빈번하게 일어나고, 대부분 필터링을 적용한다. 이 때 DB에서는 조건에 맞는..

DB/설계 2025.08.24

[Vue.js] 당장 필요한 만큼만 이해하기

들어가며업무에서 프론트엔드 개발에 Vue.js 프레임워크를 활용하고 있다. 기존 소스코드를 빠르게 파악하기 위해 공식 문서를 읽으면서 필요한 개념들을 공부하였다. SPA의 정의와 Vue.js 프레임워크 소개, 가상 DOM을 활용하는 렌더링 메커니즘, 반응성, 컴포넌트, 라우팅까지 “당장 필요한 만큼만” 이해해보고자 한다. 그 밖에 생명 주기, 상태 관리 등 세부적인 내용은 공식 문서에 잘 정리가 되어있으므로 추후 개발하면서 필요할 때마다 참고할 수 있다. SPA(Single Page Application)SPA를 용어 그대로 풀이하면, 하나의 페이지로 이루어진 어플리케이션이다. 많은 경우에 웹 어플리케이션은 사용자의 복잡한 상호작용을 지원할 필요가 있다. 하나의 화면 안에서도 사용자의 권한 여부에 따라 ..

웹 개발/Frontend 2025.08.24

Prometheus 훑어보기

메트릭 수집의 필요성사용자 수가 늘어나고, 서비스가 고도화됨에 따라 서버의 구성 요소(컴포넌트)들이 다분화된다. 원활한 서비스 운영을 위해 각 컴포넌트들의 상태를 쉽게 파악할 수 있어야 한다. 이를 위해 메트릭을 설정하고 운영이 잘 되고 있는지, 이슈는 없는 지를 체크할 수 있다. 프로메테우스를 활용하여, 시계열로 메트릭의 상태를 추적 관찰할 수 있다. 참고로 유용하게 활용되는 메트릭은 아래와 같다.호스트 단위 메트릭 : CPU, 메모리, 디스크 I/O 등종합(aggregated) 메트릭 : DB 계층의 성능, 캐시 계층의 성능 등핵심 비즈니스 메트릭 : DAU(일별 능동 사용자), Revenue, Retention(재방문) 등 Prometheus?프로메테우스는 CNCF에 소속된 오픈소스 프로젝트이며, ..

DevOps/Monitoring 2025.08.08

Javascript의 비동기 처리(콜백 함수, 프로미스, async/await)

비동기(Asynchronous)와 자바스크립트비동기 처리란 특정 코드의 연산이 끝날 때까지 실행을 기다리지 않고 다음 코드를 먼저 실행하는 방법으로, Javascript에서는 주로 네트워크 요청(Ajax 요청), 파일 읽기/쓰기, 타이머 함수(setTimeout,setInterval), 이벤트 처리 등의 상황에서 사용된다. 만약 이러한 작업들이 동기식으로 처리된다면 다른 코드들의 실행이 블로킹되고 대기 시간이 길어지므로 웹 사이트의 성능과 사용자에게 부정적인 영향을 줄 수 있다. 비동기 처리를 통해 동시에 여러 가지 작업을 처리할 수 있고 기다리는 과정에서 다음 함수를 호출할 수 있다. 콜백 함수비동기 처리를 위해 Javascript에서는 콜백 함수를 제공한다. 매개변수로 함수를 전달받아 내부에서 실행하..

[Java / Spring] Spring Boot 테스트 작성하기

테스트 코드소프트웨어를 테스트하는 것은 품질 관리에 있어 중요하다. 프로젝트 수행 시, E2E 테스트 케이스를 문서로 작성하여 직접 수행해보고 통과 여부를 작성한다. 테스트를 수행하기에 앞서(혹은 수행하는 대신), 개발한 소프트웨어를 코드 레벨에서 테스트할 수 있다면 보다 효과적으로 개발할 수 있다. 장애가 발생했을 때 원인을 빠르게 파악할 수 있고, 리팩토링 시 코드가 잘 작동함을 보장할 수도 있다. 이번 포스팅에서는 간단한 Spring Boot 어플리케이션을 작성하고, 테스트 코드를 작성해보면서 방법을 익힌다. 프로젝트 셋업다음과 같이 셋팅한다. start.spring.io의 initalizer를 활용하였다. build.gradleplugins { id 'java' id 'org.springframe..

웹 개발/Backend 2025.07.29