Total56 개발자 - 커뮤니티의 중요성? 국비학원의 백엔드 코스를 수료하며 개발자 커리어를 시작했다.학원에서 학습한 내용을 통해 동기들과 함께 프로젝트를 만드는 과정은 흥미로웠다. 하지만, 거기까지였다. 개발자가 커뮤니티에 참여했을 때 경험할 수 있는 장점은 느끼지 못했기 때문이다. 개발자를 업으로 삼는 많은 사람들이 커뮤니티 참여를 추천하며, 나 역시 이에 같은 생각이다. 그 이유는 무엇일까? 그동안 겪었던 경험을 돌아보며 커뮤니티에 참여하며 가졌던 생각을 돌아본다. 모각코 스터디모각코는 '모여서 각자 코딩'의 줄임말로 정해진 장소에 모여서 각자 해야할 작업을 하는 스터디를 의미한다.이름 그대로 프로젝트를 위한 코딩을 할 수도 있지만 회사 업무, 인강 및 서적을 통한 개발 공부 등 개인 시간을 투자해야하는 작업을 함께 할 수 있다. 다양한.. 2025. 4. 6. [DB] 트랜잭션 이해하기 (동시성 이슈와 서비스의 경계) 데이터베이스 트랜잭션이란?데이터베이스 트랜잭션은 하나의 논리적 작업단위를 나타내는 작업들의 집합이다.'논리적 작업단위'는 사용자가 DBMS에 처리를 요구하는 기능으로 1개 이상의 작업으로 구성된다.간단한 예시로 이체 기능이 있다. '사용자 A가 사용자 B에게 1만원을 이체한다.' 라는 요구사항을 처리하는 과정은 다음과 같다. 1) 사용자 A의 잔고를 1만원을 차감한다.2) 사용자 B의 잔고에 1만원을 추가한다. 이 두 작업은 반드시 함께 성공하거나 함께 실패해야 하는데, 만약 A의 계좌에서 금액이 차감된 후 시스템 오류로 인해 B의 계좌에 금액이 추가되지 않는다면, 데이터의 일관성이 깨지게 되어 사용자들에게 혼란을 가져올 수 있다.트랜잭션은 이러한 상황을 방지하여 데이터베이스의 무결성을 보장한다. 트.. 2025. 3. 24. 코드보다 테스트가 먼저 - TDD의 핵심 원리와 실제 구현 "코드를 작성하기 전에 테스트를 먼저 작성한다"위 문장은 작성된 코드가 없는 데 어떻게 테스트를 진행할 수 있는 지 의구심을 만들 수 있다.하지만 테스트 주도 개발(TDD, Test Driven Development)의 시작과 같은 말이며,많은 개발자들이 실제 코드를 작성하기 전에 테스트를 먼저 작성하는 방식으로 개발한다. 개발자들 사이에서 TDD는 왜 떠오르게 되었을까?이 글에서는 TDD가 무엇인지 간단하게 살펴보고 어떻게 적용되는지 확인해보도록 하자. TDD란?TDD는 테스트부터 시작한다. 구현을 먼저 하고 나중에 테스트하는 것이 아니라 먼저 테스트를 하고 그 다음에 구현한다. 구현된 기능이 없는데 어떻게 테스트를 진행할 수 있을까?TDD에서 '테스트를 먼저 한다'는 것의 의미는 기능이 올바르게 동.. 2025. 3. 16. 패키지 구조 리팩토링 - 도메인 vs 레이어 "2024년, 한 해 동안 작성한 코드 중 변경하고 싶은 코드는 무엇일까?" 위 질문을 던졌을 때, 작년 초에 진행한 사이드 프로젝트의 패키지 구조가 가장 먼저 떠오른다. 도메인 주도개발 (DDD, Domain Driven Development)에 관심을 가진 상태에서 사이드 프로젝트를 진행했기 때문에 도메인 중심으로 패키지 구조를 설계 했다. 사이드 프로젝트는 단순한 기능을 제공하는 소규모 서비스였고 도메인 중심의 패키지 구조는 이런 소규모 서비스에 어울리지 않는다란 느낌을 주었다. 내부적으로 레이어드 아키텍처를 사용했기 때문에 도메인을 기준으로 패키지를 구성한 뒤 내부에 레이어를 위한 별도의 패키지를 구성하는 작업은 비효율적이었기 때문이다. 더 나은 패키지 구조를 적용하기 위해 '도메인 중심의 패.. 2025. 3. 9. 네트워크의 통신과정 이해하기 네트워크는 컴퓨터 및 디바이스들 사이에서 데이터 전송을 위해 사용하는 연결망이다. 장치들 간의 연결은 단순하게 이루어지지 않고 데이터를 효율적으로 전달하기 위해 여러개의 중간 처리단계를 가지고 있다. 역할 관점에서 데이터를 요청하는 주체를 클라이언트, 데이터를 제공하는 주체를 서버라고하는데 클라이언트에서 서버까지 요청이 전달되는 과정을 살펴본다. 간단하게 생각할 수 있는 네트워크의 모습HTTP Request : “브라우저에서 무언가의 요구(리퀘스트)를 웹서버에 보낸다.”HTTP Response : “웹 서버는 요구에 따라 움직이고 결과(응답)를 브라우저에 돌려보낸다.” 브라우저에서 전송한 요청은 다음의 물리적 흐름을 통해 서버에 도달한다. 웹브라우저 - URL, Request Message프로토콜 스택.. 2025. 2. 23. 대규모 서비스와 서비스의 규모 확장 전략 대규모 서비스대규모 서비스는 거대한 데이터를 처리할 수 있는 서비스를 의미한다. 거대한 데이터는 여러 상황들( 1. 다수의 등록된 사용자로 인한 대용량 데이터 처리가 필요한 경우 2. 특정 시간대에 사용자 접근이 집중되어 트래픽이 폭증하는 경우 3. 실시간 데이터 처리량이 매우 큰 경우 등)으로 해석된다. 즉, 거대한 데이터는 단순히 저장된 데이터의 크기뿐만 아니라, 처리해야 하는 데이터의 특성과 패턴에 따라 다양한 형태로 나타날 수 있다. 따라서, 이러한 데이터의 특성을 고려하지 않은 개발이 이루어질 경우, 시스템이 비효율적으로 구성되어 서비스 제공속도가 느려지거나 심각한 경우 전체 서비스의 장애로 이어질 수 있다. 소규모 서비스와 대규모 서비스의 차이목표한 기능의 구현에 초점을 맞추는 소규모 서비스.. 2025. 1. 31. 이전 1 2 3 4 ··· 10 다음