(번역, 요약) Junior 에서 Staff Engineer 가 되기까지
(번역, 요약) Junior to Staff Engineer 이 아티클은 아마존, 인스타그램 등에서 근무한 필자가 커리어를 개발하는 방법에 대해서 쓴 아티클입니다. 단순히 코딩을 잘하는 것 뿐만이 아니라 어떤 노력을 해야 ‘승진할 수 있는’지를 설명하고 있습니다. Software Engineering Levels Junior 경험 많은 엔지...
(번역, 요약) Junior to Staff Engineer 이 아티클은 아마존, 인스타그램 등에서 근무한 필자가 커리어를 개발하는 방법에 대해서 쓴 아티클입니다. 단순히 코딩을 잘하는 것 뿐만이 아니라 어떤 노력을 해야 ‘승진할 수 있는’지를 설명하고 있습니다. Software Engineering Levels Junior 경험 많은 엔지...
테스트 db 를 postgresql 에서 h2 로 전환해보자 베경 현재 회사에서는 테스트 코드의 수행을 위해서 덤프된 postgresql 도커 이미지를 가져오고 있습니다. 매번 테스트를 로컬에서 수행할 때마다 로컬에 테스트용 db 컨테이너를 띄우는 셈입니다. 이 구조는 미리 준비된 데이터를 바탕으로 테스트를 할 수 있다는 장점이 있지만, 다음...
Roy Fielding 의 Architecture Styles and the Design of Network-based Software Architectures 후기 왜 읽었나요 웹개발자로 개발을 하다보면 내가 만드는 api 가 명쾌한 규약을 가지고 있는지 의문을 갖고는 합니다. 명쾌한 규약이란 해당 api 를 사용하는 사용자에게 설명이 필요...
Gradle 멀티모듈 프로젝트에서 fixture를 활용한 테스트 코드 응집도 챙기기 목차 들어가며 프로젝트 구조 개요 Fixture의 실제 활용 멀티모듈 프로젝트에서 Fixture 공유 구현 4.1 테스트 코드 구조화 4.2 Gradle 설정 최적화 실제 사용 사례 주의사항 및 ...
Celery 고급 기능: 우선순위 큐, 그루핑, 병렬성 제한 Celery는 분산 작업 처리를 위한 강력한 도구입니다. 이 글에서는 Celery의 고급 기능 중 우선순위 큐, 그루핑, 그리고 병렬성 제한에 대해 자세히 알아보겠습니다. 1. 우선순위 큐 (Priority Queues) 우선순위 큐를 사용하면 중요한 작업을 먼저 처리할 수 있습니다...
Celery Standalone 버전 사용하기 Celery Standalone이란? Celery Standalone은 Celery를 웹 프레임워크나 다른 애플리케이션과 통합하지 않고 독립적으로 사용하는 방식을 말합니다. 이는 Celery의 강력한 분산 작업 처리 기능을 단독으로 활용할 수 있게 해줍니다. Celery Standalone의 장점 ...
Clean Architecture 현재 회사에서 제가 맡은 모듈의 구조는 클린 아키텍쳐와 헥사고날 아키텍쳐의 규약을 준수한 형태로 구성되어 있습니다. 지금까지 layered architecture 로만 구성된 프로젝트만을 접했기에 해당 아키텍쳐에 대한 이해도가 부족하다고 느꼈고, 이에 주말간 가장 유명한 책을 읽어봤습니다. 이 책에서는 견고하고...
Celery Celery 란? Celery 란 분산 메시징에 기반을 둔 비동기 작업 큐입니다. 주로 파이썬, 특히 장고와 결합되어 사용됩니다(다른 언어도 상관 없음!) Celery 의 특징을 뽑자면 다음 10가지 입니다. 분산성 : 워커들은 여러개의 머신에 배포될 수 있습니다. 브로커 : 메시지 브로커는 클라이언트와 워커 사이를 중계...
다중 데이터베이스 환경에서 더티체킹이 발생하지 않았다. 최근 Spring Boot와 JPA를 사용하는 다중 데이터베이스 환경에서 흥미로운 문제를 겪었습니다. JPA의 더티 체킹(dirty checking)이 제대로 동작하지 않아 엔티티의 변경사항이 데이터베이스에 반영되지 않는 현상이 발생했죠. 이 글에서는 문제의 원인과 해결 과정을 공유하고자 합니다...
코프링과 코루틴에서 SSE 를 사용해보자 코프링에서 SSE 를 사용해서 알림 기능을 구현해보겠습니다. MongoDB Kotlin Spring Boot Coroutine 왜 SSE 인가요? 알림 기능을 구현하기 위해서 가장 먼저 고려한 옵션은 롱풀링과 소켓 방식이었습니다. 그러나 토이 프로젝트 특성 ...