목록분류 전체보기 (100)
우당탕탕

동시성 제어란? - 데이터가 꼬이지 않는 백엔드의 첫걸음 안녕하세요!오늘은 백엔드 실무에서 꼭 한 번은 마주치는 동시성 제어에 대해서 작성해 보려고 합니다. 회사에서 과제형식으로도 많이 나오는 문제이고 현금지급, 쿠폰 이벤트등과 같은 서비스를 만들 때 꼭 적용되어야 하는 부분이라 정독해 보시는 것을 추천드립니다. 1편에서는 기본적인 내용 설명을 진행하며 2~4편은 해결방법 설명과 예시코드를 작성해 보려고 합니다.1. 동시성이란 무엇인가?동시성(concurrency)이란, 여러 사용자가 ‘동시에’ 데이터나 시스템 자원(예: DB, 메모리 등)에 접근/변경을 시도하는 상황을 의미합니다.예시: 쇼핑몰 재고 감소• 유저A, B가 동시에 “마지막 1개 남은 상품”을 장바구니에 담고 동시에 주문을 진행 • 둘 다 ..

이펙티브 자바(Effective Java) – 한눈에 보는 완벽 정리 & 읽기 쉬운 요약안녕하세요!이번엔 자바 개발자들이 꼭 읽어야 할 필독서, 조슈아 블로크의 『이펙티브 자바(Effective Java)』의 핵심만 요약해 보도록 하겠습니다.1장. 시작하며 – 이 책은 왜 읽어야 할까?• 이펙티브 자바 원칙: 코드는 명확하게, 예측 가능하게, 유지보수 편하게• 현장 전설의 팁을 “아이템” 단위로 정리해 실전에서 바로 써먹을 수 있음2장. 객체 생성과 소멸• 정적 팩토리 vs 생성자: → new 대신 valueOf , from , getInstance 등 네이밍 팩토리 메서드 적극 활용하면 재사용성과 가독성 UP!• 빌더 패턴: → 생성자 파라미터가 많거나, 옵션 값 관리가 어렵다면 ..

클린 코드(Clean Code) – 로버트 C. 마틴 요약 "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다." 안녕하세요!이번 글에서는 많은 개발자들에게 오랫동안 사랑받고 있는 책, 로버트 C. 마틴(일명 밥 아저씨)의 『클린 코드(Clean Code)』를 읽고 요약해서 작성해보려고 합니다.제가 처음 입사했을 때 읽어보라고 권유받았던 책인데 드디어 다 읽게 되었네요 ㅎㅎ...개발을 하다 보면 나도 모르게 코드가 복잡해지고, 나중에 다시 보면 “이걸 내가 썼다고?” 싶을 때 있죠. 이 책은 그런 혼란을 줄이는 개발 습관, 즉 “읽기 좋은 코드”가 얼마나 중요한지 이야기합니다. 책을 일일이 읽기 어려웠던 분들을 위해 요약한 내용을 작성해 봅니다. 1. 클린 코드란?•..

리팩터링(Refactoring) - 읽기 쉬운 코드의 재설계안녕하세요!오늘은 소프트웨어 엔지니어링 분야의 바이블 중 하나로 꼽히는 『리팩터링(Refactoring)』 - 마틴 파울러 책을 블로그 스타일로 알기 쉽게 요약해보려 합니다."코드를 더 좋게, 더 안전하게 고치려면 어떻게 해야 할까?"라는 생각으로 사놨던 책이었는데 이제 정리하게 되네요 ㅎㅎ1. 리팩터링이란 무엇인가?“기능은 그대로, 코드 구조만 더 깔끔하게!”리팩터링은 프로그램의 겉보기 동작을 바꾸지 않고, 코드의 내부 구조만 개선하는 작업을 의미합니다. 직관적이고 유지보수하기 쉬운 코드로 바꾸는 게 핵심입니다.2. 왜 리팩터링이 필요할까?• 시간이 지날수록 코드는 점점 복잡해지고 더러워집니다 ( 스파게티 코드화 )• 시간이 지날수록 버그는 더..

1JPA로 게시글 CRUD 만들기 – 10분 만에 따라 하기 안녕하세요 오늘은 백엔드를 처음 시작하는 분들도 무리 없이 따라 할 수 있도록, Spring Data JPA를 활용한 게시글 CRUD(Create, Read, Update, Delete) 예제를 준비했습니다. 해당 프로젝트를 시작하기 앞서 아래 링크에서 프로젝트 구성을 먼저 진행해 주세요! (프로젝트 구성이 되어있다면 스킵하셔도 됩니다) 프로젝트 구성은 해당 링크에서 구성하실 수 있습니다! -> https://mozzi-devlog.tistory.com/461. CRUD가 뭐예요?• C(Create): 데이터 생성 → 블로그 게시글을 새로 작성하는 것처럼 DB에 새로운 데이터를 넣는 작업을 의미해요.• R(Read): 데이터 읽기(조회) → ..

코틀린 Coroutines로 실전 백엔드 서비스 비동기 처리 완전정복안녕하세요! 오늘은 백엔드 개발을 처음 접하는 분들도 쉽게 이해하도록, 코틀린 Coroutines(코루틴)를 활용한 비동기 프로그래밍 방법을 작성해 보겠습니다.“비동기”, “코루틴” 같은 용어가 어렵게 느껴질 수 있지만, 최대한 쉬운 일상 예시와 실습 예제까지 활용해 한번 작성해 보도록 하겠습니다.1. 동기와 비동기란?예를 들어, 편의점 계산대에 고객이 줄 서서 차례대로 계산한다고 생각해 보겠습니다.이게 바로 동기 처리 방식입니다. 한 사람의 계산이 끝나야 다음 사람이 계산할 수 있죠. 반면, 계산대가 여러 대 있어서 여러 사람이 동시에 계산할 수 있다면? 이건 바로 비동기 처리라고 할 수 있어요. 서버도 마찬가지입니다. 만약 동기로만 ..