Total 479

[block-server] 휴지통 자동 삭제 기능 구현 (2)

Application💡DemoApplication.javaPR Link feat: 문서 휴지통 자동 삭제 기능 추가 by hellonaeunkim · Pull Request #43 · jho951/Block-server📝 Part (해당되는 것만 체크) BE FE Infra Docs Test #️⃣ 연관된 이슈 closes #41 🔎 작업 내용 1. 주요 변경 사항 요약 기존 문서 삭제 API를 soft delete에서 hard delete로 변경 문서를 휴지통으로 보내는 별github.comCodepackage com.documents;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfi..

[block-server] 휴지통 자동 삭제 기능 구현 (1) : Spring Scheduling vs Spring Batch

Spring Scheduling💡소제목Spring Batch💡소제목두꺼운 밑줄 스타일구분Scheduler (@Scheduled)Spring Batch목적작업 실행 시점 관리대용량 데이터 처리역할“언제 실행할까”“어떻게 처리할까”데이터 처리단순 로직대량 데이터 처리 최적화구조메서드 단위 실행Job → Step 구조트랜잭션직접 처리자동 관리실패 처리없음 (직접 구현)재시작, retry 지원사용 난이도쉬움비교적 복잡참고 자료1) Spring Framework Docs : Spring Schedulinghttps://docs.spring.io/spring-framework/reference/integration/scheduling.html?utm_source=chatgpt.com Task Execution ..

[block-server] 프로젝트 구조

StructureNotion 스타일의 문서 계층과 블록 트리를 다루는 백엔드 서비스이며, Spring Boot 기반 Gradle 멀티모듈 구조로 책임을 분리한 것이 핵심!📦 Block-server├─ AGENTS.md├─ README.md├─ docker│ ├─ Dockerfile│ ├─ docker-compose.yml│ └─ docker.sh├─ docs│ ├─ REQUIREMENTS.md│ ├─ decisions│ │ ├─ 000-adr-template.md│ │ └─ README.md│ ├─ discussions│ │ ├─ 000-strategy-review-template.md│ │ └─ README.md│ ├─ roadmap│ │ ├─ README.md│ │ ..

[바이브 코딩] MacOS Codex CLI 설치

1. Node.js 설치 확인💡Node.js 설치 확인node -v 💡zsh: command not found: node 처럼 아무것도 안나온다면, brew 로 설치brew install node2. Codex CLI 설치💡Codex CLI 설치npm install -g @openai/codexnode 버전이 오래된 경우 Error 가 뜨기도 한다.ex. node -v 명령어를 통해 확인한 버전이 v20.11.0 였는데 오류가 나서 brew upgrade node 후 다시 진행했더니 오류가 없었다.💡설치 확인codex --version 💡계정 연동codex터미널에 codex 입력 후 아래와 같이 계정을 연동할 수 있는 옵션이 뜬다.Mac 의 경우 Codex 앱에 로그인이 되어있으면 추가로 웹페이..

[바이브 코딩] AGENTS.md 로 코딩 에이전트 활용하기

바이브 코딩💡AGENTS.mdOpenAI Codex 팀에서 처음 발표한 AI 에이전트 용 표준 규칙 파일읽어 보기1. 컬리 기술 블로그 : https://helloworld.kurly.com/blog/vibe-coding-with-claude-code/ Claude Code를 활용한 예측 가능한 바이브 코딩 전략에이전트 주도 개발에서 발생하는 문제를 해결하고, 컨텍스트를 정밀하게 관리하는 방법helloworld.kurly.com참고 자료1) 유튜브 - 개발동생 : 코딩 에이전트 성능을 20배 올리는 가장 쉬운 방법 | AGENTS.md로 표준 규칙 파일 정의하기https://www.youtube.com/watch?v=LHx_EFoLonQ

[동시성 처리] 동시성 문제 (Race Condition) 해결 방법 3가지 관점 - (3) Redis Distributed Lock

Redis Distributed LockRedis에서 제공하는 대표적인 라이브러리 Luttuce 와 Reddison 을 활용하여 해결할 수 있다.💡Lettuce 1) 특징비동기(Async) 및 동기(Sync) 방식 모두 지원하는 Redis 클라이언트이다.❗️Redis 클라이언트 란?애플리케이션(Spring, Node 등)이 Redis 서버와 통신하기 위해 사용하는 라이브러리Netty 기반의 비동기 I/O 처리를 지원한다.❗️Netty 란?Lettuce가 Redis 서버와 통신할 때 사용하는 비동기 내부 네트워크 프레임워크Lettuce는 분산락을 제공하는 라이브러리가 아니라 Redis 명령을 실행하는 클라이언트이기 때문에 lock을 Redis 명령어로 직접 구현해야 한다.❗️setnx 명령어를 활용하여 ..

Projects/hub-eleven 2026.03.11

[동시성 처리] 동시성 문제 (Race Condition) 해결 방법 3가지 관점 - (2) Database Lock

Database Lock데이터베이스가 제공하는 Lock을 활용하여 데이터 정합성을 맞출 수 있다.💡Pessimistic Lock (비관적 락)실제 데이터에 직접적으로 Lock을 거는 방식다른 트랜잭션은 Lock이 해제되기 전까지 데이터를 읽을 수 없다.1) 특징 (참고 자료)데이터 충돌을 피하기 위해 먼저 Lock을 걸고 작업을 진행일반적으로 Exclusive Lock(X Lock, 배타적 락)을 사용해 다른 트랜잭션의 Read/Write을 방지한다.은행 계좌, 항공권 좌석, 콘서트 티켓 등 충돌이 빈번하고 데이터 정합성이 중요한 환경에서 유용하다.2) 장점 (참고 자료)충돌이 빈번하게 일어날 경우 Optimistic Lock보다 성능이 좋을 수 있다.Lock을 통해 update를 제어하기 때문에 데이..

Projects/hub-eleven 2026.03.09

[동시성 처리] 동시성 문제 (Race Condition) 해결 방법 3가지 관점 - (1) Synchronized

동시성 문제 (Race Condition)💡해결 방법레이스 컨디션을 해결하는 방법에는 크게 3가지 관점이 있다.첫번째는 Java에서 지원하는 Synchronized 방법으로 해결하기두번째는 DB가 제공하는 Lock 을 이용하여 데이터 정합성 맞추기세번째는 Redis 를 활용하여 대표적인 라이브러리 Lettuce 와 Ressison 으로 해결하기💡동시성 문제 (Race Condition) 이란?https://annovation.tistory.com/508 [동시성 처리] Java 에서 발생하는 동시성 문제란?Java 동시성 문제 (Race Condition, 레이스 컨디션)💡Java 동시성 문제란?Java에서 여러 스레드가 같은 데이터(필드/객체 상태) 를 공유하며 실행될 때, 올바른 제어 없이 접근..

Projects/hub-eleven 2026.03.06

[DB] Redis 실습 2

Spring Boot에서 Redis 사용해보기💡Redis의 Hash 자료구조로 저장되는 엔티티(Entity) 만들기엔티티(Entity) : 저장소(DB, Redis 등)에 저장되는 도메인 객체(클래스)도메인 객체(Domain Object) : 서비스가 다루는 현실 세계의 개념(ex. 상품, 주문, 계좌 등) 들을 코드로 표현한 객체 1) 요구사항아래와 같은 도메인 객체의 속성(필드)을 가지는 주문 ID, 판매 물품, 갯수, 총액, 결제 여부에 대한 데이터를 지정하기 위한 ItemOrder 클래스를 RedisHash 만들기1. 주문 ID - String2. 판매 물품 - String3. 갯수 - Integer4. 총액 - Long5. 주문 상태 - String 2) 코드 구현ItemOrder.javaim..

심화/DB 2026.03.05

[DB] Redis 실습 1

블로그 별 조회수를 Redis로 확인하기💡구현 기능아래와 같은 조건의 '내 블로그 글 별 조회수'를 Redis로 확인하는 기능을 만드려고 한다.1. 블로그 URL의 PATH는 /articles/{id} 형식이다.2. 로그인 여부와 상관없이 새로고침 될때마다 조회수가 하나 증가한다.3. 이를 관리하기 위해 적당한 데이터 타입을 선정하고,4. 사용자가 임의의 페이지에 접속할 때 실행될 명령을 작성해보자. 💡Redis 명령어Redis의 String 타입은 숫자 카운터로 사용할 수 있고 값을 증가(INCR) 또는 감소(DECR)시키는 연산을 제공한다.1) 특정 게시글 조회수 증가INCR articles:{id} 2) 특정 게시글 조회수 증가 예시INCR articles:1INCR articles:2INCR ..

심화/DB 2026.03.04