모든 포스트

76 개의 포스트
JavaSpringBootEdge-Computing

Edge Computing Patterns for Backend Developers

백엔드 개발자가 알아야 할 엣지 컴퓨팅 패턴을 다룹니다. CDN 활용, Edge Functions, 지역별 라우팅부터 하이브리드 아키텍처까지 실무 가이드를 제공합니다.

JavaSpringBootDebugging

Cloud-Native Observability Stack Part 5 - Debugging Production Issues with Observability Data

Observability 데이터(트레이스, 메트릭, 로그)를 활용하여 프로덕션 이슈를 효과적으로 디버깅하는 방법을 다룹니다. 실제 장애 시나리오와 해결 과정을 상세히 설명합니다.

JavaSpringBootPrometheus

Cloud-Native Observability Stack Part 4 - Metrics and Alerting with Prometheus/Grafana

Prometheus와 Grafana를 활용하여 Spring Boot 애플리케이션의 메트릭을 수집하고 시각화하는 방법을 다룹니다. 커스텀 메트릭, SLI/SLO 대시보드, 알림 설계까지 실무 가이드를 제공합니다.

asmlsemiconductorlayoffs

ASML, 관리직 중심 1700명 대량 해고 - 반도체 장비 독점 기업의 구조조정이 의미하는 것

ASML의 1700명 해고 발표 분석 - EUV 독점 기업이 관리직 위주로 구조조정하는 배경과 반도체 산업에 미치는 영향...

claudeai-codingandrej-karpathy

Andrej Karpathy가 말하는 Claude 코딩 경험: 에이전트 코딩이 대세가 된 이유

Andrej Karpathy shares his Claude coding experience, revealing a dramatic shift from 20% to 80% agent-based coding in just one month, and what this means for the future of software development...

software-engineeringtechnical-debtstartup-culture

펌프 앤 덤프 소프트웨어 시대: 빠르게 만들고 버리는 개발 문화의 실체

An analysis of the growing trend of disposable software development where products are built quickly for short-term gains and abandoned, examining its impact on code quality, developer burnout, and the tech industry's sustainability...

JavaSpringBootLogging

Cloud-Native Observability Stack Part 3 - Structured Logging with Correlation IDs

마이크로서비스 환경에서 구조화된 로깅과 Correlation ID를 구현하는 방법을 다룹니다. JSON 로깅, MDC 패턴, 로그 집계까지 실무 적용 가이드를 제공합니다.

chrome-extensionchzzkvideo-downloader

치지직 클립 다운로더 크롬 익스텐션 개발기 - 외부 API 없이 순수 브라우저에서 작동하는 방법

치지직(Chzzk) 클립을 외부 페이지 이동이나 API 호출 없이 브라우저 내에서 직접 다운로드할 수 있는 크롬 익스텐션 개발 과정과 기술적 구현 방법을 다룹니다....

JavaSpringBootDistributed-Tracing

Cloud-Native Observability Stack Part 2 - Distributed Tracing Across Microservices

마이크로서비스 환경에서 분산 추적을 구현하는 방법을 다룹니다. Trace Context, Span 계층 구조, 샘플링 전략까지 실무 적용 가이드를 제공합니다.

javascriptrustscript

Script 소개: Rust처럼 실행되는 JavaScript

Script is a new programming language that combines JavaScript's familiar syntax with Rust-level performance through native compilation, offering developers the best of both worlds for high-performance web and system development....

gpu-optimizationparallel-computingbio-inspired-computing

문어 팔의 협응 방식을 연구해서 GPU 속도를 14.84배 높인 방법

A deep dive into bio-inspired parallel computing: how octopus decentralized neural coordination patterns can be applied to GPU kernel optimization for massive performance gains...

JavaSpringBootOpenTelemetry

Cloud-Native Observability Stack Part 1 - OpenTelemetry Instrumentation in Spring Boot

OpenTelemetry를 활용하여 Spring Boot 애플리케이션에 관측 가능성을 추가하는 방법을 다룹니다. 자동 계측, 수동 span 생성, 컨텍스트 전파까지 실무 적용 가이드를 제공합니다.

estimationstaff-engineerproject-management

스태프 엔지니어가 업무 일정을 추정하는 방법

A practical guide to work estimation techniques used by staff software engineers, covering uncertainty handling, buffer strategies, and communication with stakeholders...

opensourceautonomousdriving

Comma.ai OpenPilot: 오픈소스 자율주행 시스템 분석

Comma.ai OpenPilot: 오픈소스 자율주행 시스템 분석 - Comma.ai OpenPilot: Open Source Self-Driving System Analysis...

securitymicrosoftencryption

Microsoft BitLocker 키와 FBI: 개발자 관점의 보안 분석

Microsoft BitLocker 키와 FBI: 개발자 관점의 보안 분석 - Microsoft BitLocker Keys and FBI: Security Analysis for Developers...

ASMLsemiconductorlayoffs

ASML, 관리자 중심 1700명 대규모 감원 - 반도체 장비 거인의 구조조정이 의미하는 것

ASML announces 1700 job cuts targeting management positions amid semiconductor market shifts. Analysis of what this restructuring means for the chip industry and why middle management bears the brunt....

JavaSpringBootSpringFramework

Spring Boot 4.0 주요 변경사항과 새로운 기능

Spring Boot 4.0의 주요 변경사항, 새로운 기능, 마이그레이션 가이드를 정리한다

JavaSpringBootSchema-Evolution

Production-Ready Event-Driven Architecture Part 5 - Event Schema Evolution and Versioning

이벤트 기반 시스템에서 스키마 진화를 안전하게 관리하는 방법을 다룹니다. Avro, Protobuf를 활용한 스키마 버전 관리, 하위 호환성 보장, Schema Registry 활용까지 실무 가이드를 제공합니다.

nvidialinuxdebugging

nvidia-smi 66일 후 멈춤 버그: 리눅스 개발자가 알아야 할 것

nvidia-smi 66일 후 멈춤 버그: 리눅스 개발자가 알아야 할 것 - nvidia-smi Hangs After 66 Days: What Linux Developers Need to Know...

postgresqldatabasescaling

OpenAI PostgreSQL 스케일링: 8억 사용자를 지탱하는 비법

OpenAI PostgreSQL 스케일링: 8억 사용자를 지탱하는 비법 - OpenAI PostgreSQL Scaling: How They Handle 800M Users...

openaicodexcli

OpenAI Codex CLI 내부 동작 분석: 에이전트 루프와 프롬프트 캐싱

OpenAI Codex CLI 내부 동작 분석: 에이전트 루프와 프롬프트 캐싱 - OpenAI Codex CLI Internals: Agent Loop and Prompt Caching Strategy...

claudeanthropicai-tools

Claude 채팅창이 업무 플랫폼이 된다 - Slack, Figma까지 연동하는 인터랙티브 도구 완전 분석

Anthropic이 발표한 Claude의 인터랙티브 도구 기능을 분석합니다. 채팅창 안에서 Slack 메시지 작성, Figma 디자인 연동, 외부 서비스 통합이 어떻게 가능해졌는지 기술적 관점에서 살펴봅니다....

claudeai-codingagent-coding

Andrej Karpathy가 말하는 Claude 코딩 경험: 에이전트 코딩이 80%를 차지하기까지

Andrej Karpathy shares his shift from 80% manual coding to 80% AI agent coding with Claude in just one month, revealing practical insights on prompt engineering, context management, and the evolving developer-AI collaboration workflow....

AI코딩ClaudeKarpathy

Andrej Karpathy가 말하는 AI 코딩의 현실: Claude와 함께한 몇 주간의 경험

Andrej Karpathy가 공유한 Claude 기반 AI 코딩 경험을 분석합니다. 수동 코딩에서 80% 에이전트 코딩으로의 전환, 실제 개발 워크플로우 변화, 그리고 AI 코딩 도구의 현실적인 한계와 가능성을 살펴봅니다....

JavaSpringBootSpringSecurity

Spring Boot JWT 인증과 인가 구현하기

Spring Boot 3.x와 Spring Security 6.x를 사용하여 JWT 기반 인증과 인가를 구현하는 방법을 정리한다

JavaSpringBootSaga-Pattern

Production-Ready Event-Driven Architecture Part 4 - Saga Pattern for Distributed Transactions

마이크로서비스 환경에서 분산 트랜잭션을 처리하는 Saga Pattern을 다룹니다. Choreography와 Orchestration 방식의 구현, 보상 트랜잭션, 상태 머신까지 실무 적용 가이드를 제공합니다.

neo4jspring-bootgraph-database

그래프 알고리즘으로 친구 추천하기

Neo4j 그래프 알고리즘을 사용하여 친구 추천 시스템을 구현하는 방법

JavaSpringBootCQRS

Production-Ready Event-Driven Architecture Part 3 - CQRS with Separate Read/Write Models

CQRS(Command Query Responsibility Segregation) 패턴을 통해 읽기와 쓰기 모델을 분리하는 방법을 다룹니다. 최종적 일관성(Eventual Consistency) 처리와 실무 적용 전략을 상세히 설명합니다.

neo4jspring-bootgraph-database

그래프 데이터베이스로 활동 피드 구현하기

Neo4j를 사용하여 소셜 네트워크의 홈 피드와 타임라인을 구현하는 방법

JavaSpringBootOutbox-Pattern

Production-Ready Event-Driven Architecture Part 2 - Implementing the Outbox Pattern

분산 시스템에서 데이터 일관성을 보장하는 Transactional Outbox Pattern의 구현 방법을 다룹니다. Debezium CDC를 활용한 exactly-once 의미론 구현까지 실무 적용 가이드를 제공합니다.

neo4jspring-bootgraph-database

친구, 팔로워, 연결 관계 구현하기

Neo4j에서 팔로우, 친구 요청, 상호 친구 기능을 구현하는 방법

JavaSpringBootEvent-Sourcing

Production-Ready Event-Driven Architecture Part 1 - Event Sourcing Fundamentals

이벤트 소싱의 핵심 개념과 Spring Boot에서의 구현 방법을 알아봅니다. Event Store 설계, Aggregate Root, Projection, Snapshotting까지 실무에서 바로 적용할 수 있는 패턴을 다룹니다.

neo4jspring-bootgraph-database

소셜 네트워크 그래프 스키마 설계

그래프 데이터베이스로 소셜 네트워크의 사용자, 게시물, 관계를 모델링하는 방법

neo4jspring-bootgraph-database

Neo4j와 Spring Boot 시작하기

Spring Boot에서 Neo4j 그래프 데이터베이스를 설정하고 간단한 쿼리를 실행하는 방법

JavaSpringBootActiveMQ

ActiveMQ와 JMS를 사용한 SpringBoot 메시지

SpringBoot를 사용해서 개발을 하다보면 Exception 처리를 해야하는 경우가 생긴다. 해당하는 경우에 어떻게 예외처리하면 좋은지, 어떤 방법들이 있는지 한번 정리해보고자 한다

JavaKotlinSpringBoot

SpringBoot Exception 처리하기

SpringBoot를 사용해서 개발을 하다보면 Exception 처리를 해야하는 경우가 생긴다. 해당하는 경우에 어떻게 예외처리하면 좋은지, 어떤 방법들이 있는지 한번 정리해보고자 한다

JavaKotlinSpringBoot

스프링부트 멀티모듈 구성하기(4) - Stream 어플리케이션

스트림 모듈을 세팅하면서 Kafka와 어떻게 SpringBoot가 커넥션을 맺고, Consumer와 Producer가 어떻게 세팅되는지 정리해보려고한다. Kafka는 로컬 카프카도 괜찮고, 서버에 띄워진 Kafka, 혹은 Docker, Confluent등등 Kafka를 지원하는 솔루션이면 모두 사용 할 수 있다. 본문은 Kafka가 모두 준비되어있다는 가정하에 작성하려고한다.

JavaKotlinSpringBoot

스프링부트 멀티모듈 구성하기(3) - API 모듈 작성하기

module-core에서 Customer와 Order 엔티티를 선언했는데, 이에 맞게 module-api에서는 Customer와 Order 읽어오기 / 쓰기 API를 만들어 보자.

JavaKotlinSpringBoot

스프링부트 멀티모듈 구성하기(2) - 코어모듈에 Entity 적용 해놓기

...그래서 코어모듈에 엔티티를 만들어놓고, 각각의 모듈에서 코어모듈을 의존성으로 추가하면, 코어모듈에 있는 엔티티를 사용할 수 있다....

JavaKotlinSpringBoot

스프링부트 멀티모듈 구성하기(1) - 프로젝트 구조만들기

...멀티모듈을 적용시켜서 엔티티들을 공통적으로 사용하고, 그외의 고유한 기능들을 각각의 서버에서 사용하자는 생각이 들었다. ...

JavaTDDBDD

비밀번호 유효성 검증기 - TDD 활용하기

테스트코드에서 요구조건을 먼저 실현하고, 실현한 요구조건에서 실제 코드에 반영되지 않은 부분들을 하나씩 만들어가며 작업 ...

JavaKotlinSpring

Kotlin과 Spring을 사용한 Server에 여러개의 DataSource를 사용하자

Kotlin과 Spring을 사용한 Server에 여러개의 DataSource를 사용하자. 여러개의 데이터베이스를 연결하는 ...

JavaKotlinSpring

SpringBoot 에서 Logging을 사용해보자

로그는 간단하게 말해서 연속된 데이터의 기록이라고 할 수 있다. Kotlin을 사용한 Spring에서 로그를 남겨보자

JavaSpringBootJPA

SpringBoot 에서 JPA를 사용한 Repository 테스트

SpringBoot를 사용해서 h2데이터베이스와 관련된 테스트를 진행 해 보려고 한다

JavaKotlinSpringBoot

SpringBoot Kotlin으로 작성하기

SpringBoot를 kotlin으로 작성하여 h2와 JPA를 사용해 주문모델을 구현 해 보자

JavaSpringBootDocker

SpringBoot와 Spring Cloud Gateway 사용하기

API Gateway는 다수의 서버를 하나로 묶어, 외부 애플리케이션 혹은 클라이언트에 대한 하나의 진입점이라고 생각하면 된다. 외부 어플리케이션 및 외부 클라이언트들은 마이크로 서비스에 직접 엑세스 하는 것이 제한되어 있기 때문에 그 사이의 중개자 역할을 한다

JavaSpringBootInterceptor

SpringBoot 사용하여 Request요청을 로깅하기

Request 요청 로깅을 할 경우, 모든 REST API 컨트롤러에 로그를 남기는것도 하나의 방법이다. 하지만 모든 API 컨트롤러에 로깅을 작성하게 된다면 비효율적으로 작업이 될 수 있다. Spring Interceptor 라는 것을 사용해서, 컨트롤러의 Handler로 도착하기 전에 가로채어 따로 작업을 해 주는 방법을 정리하려고 한다

JavaSpringBootScheduler

SpringBoot에서 스케쥴링 사용하기

특정 시점이나 특정 시간 간격, 혹은 정해진 시간에 실행해야 하는 작업이 있을 수 있다. 이런 작업들을 '스케쥴링 된 작업' 혹은 '배치작업' 이라고 하는데 Spring에서 지원하는 방법은 크게 두 가지가 있다. 이번에는 스프링의 스케쥴링 어노테이션을 사용한 스케쥴 작업을 생성 해 보려고 한다.

JavaSpringBootKafka

SpringBoot에서 Kafka Event Message 보내고 받기

빅 데이터의 세계에서 안정적인 스트리밍 플랫폼은 필수이다. 현재 가장 주목받고있는 kafka 스트리핑 플랫폼과 SpringBoot를 활용해서 간단한 Event 메시지를 주고받는 작업을 해보자

JavaSpringBootRedis

SpringBoot에서 Redis 캐시를 사용하기

Spring Boot에서 Redis Cache를 사용하여 데이터 접근 성능을 높이는 방법을 알아봅니다.

JavaSpringBootRedis

SpringBoot에서 Redis를 데이터베이스로 사용하기

많은 경우에 Spring은 DB에 담긴 데이터를 가져오고 전달하는 역할을 하고있는데 이 때, Redis를 가지고 데이터에 빠르게 접근하는 방법을 정리 해 보려고 한다. Redis는 데이터베이스로도 사용되고, Message Broker로도 사용되지만 Cache Manager에 더 많이 사용된다. 한번 만들어보면서 정리 해 보도록 하겠다

JavaSpringBootConfiguration

SpringBoot Configuration에서 값 가져오기 - @Value

application.properties를 사용 해도 되지만 application.yml도 지원 하기 때문에, 새로 만들어 Hierarchy를 표현해서 보기 편하도록 작성 하는 방법도 있다. 더불어서, 이 설정파일인 application.yml의 값들을 불러와서 사용 하는 @Value 어노테이션을 간단히 정리 해 보려고 한다.

SpringJavaSpringBoot

SpringBoot-Redis 로 만든 디저트가게 예제

SpringBoot 와 Redis를 이용한 디저트가게 예제

PythonPoetry

poetry 로 파이썬 패키지 관리하기

파이썬으로 개발하다보면 여러가지 가상환경 매니징 패키지를 마주하게 된다. 이번에는 패키지의 버전까지 관리 해 주는 새로운 친구인 poetry를 도입 해 보려고 한다.

JavaSpringBootValidation

SpringBoot의 Validation을 사용 해 보자

Spring Validation이란? validation이란 프로그래밍에 있어서 가장 필요한 부분이다. Java/Kotlin 에서는 null값에 대해 접근하려고 할 때, null point exception이 발생한다. 이런 부분을 방지하기 위해 미리 검증하는 과정을

databasedockerdocker-compose

데이터베이스를 docker-compose로 구축하기(mysql, mongodb, redis)

Docker는 인프라적인 요소들을 코드로 세팅 할 수 있는 가장 좋은 도구라고 생각한다. Docker를 사용해서 컴퓨터 내에 설치 하기 귀찮은(?) 데이터베이스들을 세팅 해 보려고 한다.

streamdockerdocker-compose

Docker를 사용한 Apache Flink와 Flink Job 올리기(2) - Flink Job Example

사실상 코드는 책에서 제공 해 주는 코드를 실행하기 때문에, 주의 해 주어야 할 것은 Maven 설정을 잘 해주는 것과 Java 환경설정, 그리고 JAR 파일을 잘 말아주는 것 밖에는 할 것이 없었다.

streamdockerdocker-compose

Docker를 사용한 Apache Flink와 Flink Job 올리기(1) - Docker Setting

<Stream Processing with Apache Flink: Fundamentals, Implementation, and Operation of Streaming Applications> 를 참고했으며 직접 개발환경을 세팅 해 보고 작성했다. Docker를 기반으로 작업을 하려고 한다. Docker를 다룰 줄 알거나 설치가 되어 있다는 가정 하에 작업을 해 보려고 한다

SpringJavaSpringBoot

SpringBoot 예외처리하기 - Exception Handling

SpringBoot Exception 처리하기 - ControllerAdvice, ExceptionHandler

회고쏘카socar

SOCAR에서의 회고와 이야기

2020년도 2월부터 2022년도 2월까지 2년여간의 여정으로 퇴사를 결정했다. 많은 것을 배웠고, 많은 것을 느꼈다.

databasemongodbmongo cluster

몽고디비 클러스터 구성하기

호스트 및 MongoDB 인스턴스에 대한 예기치 못한 문제로 인하여 프로세스가 down되는 등 장애 상황이 발생하거나 데이터 유실이 발생 한다. 이를 대비하기 위해 여러 다른 종류의 DBMS와 비슷하게 MongoDB 또한 복제 구성을 통한 DB HA(High Availability) 사용 해야 한다.

streamPythonKineiss

AWS Kinesis python으로 다뤄보기

Python에서 Kinesis Datastream에 연동하여 데이터를 주고/받는 과정을 정리 해 보자

SpringJavaSpringBoot

Spring Boot DB 연동과 테스트

SpringBoot를 사용해 H2 DB 연결하고 테스트하기

JavaKotlinSpring

Kotlin을 사용한 Spring Boot 개발기 - Controller (@requestBody, Dto 생성하기)

마찬가지로 @RestController 어노테이션을 사용해서 만든 controller 내부에서 사용 하려고한다.

flaskstructure

Flask 스마트하게 구조 만들기!

Flask 프로젝트를 체계적으로 구성하는 방법. pipenv, Blueprint, 환경설정 분리 등을 활용해 확장 가능한 구조를 만들어본다.

JavaKotlinSpring

Kotlin을 사용한 Spring Boot 개발기 - Controller (@RequestParam, @PathVariable)

Kotlin을 사용해서 SpringBoot를 개발 해 보려고 한다.

elastic searchlogstashkibana

ELK logging with flask - ELK 스택을 이용해서 플라스크의 로그를 남기자

ELK(Elasticsearch, Logstash, Kibana) 스택을 Docker로 구성하고 Flask 애플리케이션의 로그를 수집하고 시각화하는 방법을 알아본다.

ReactJavascriptstate

React의 State

React의 State와 Props의 차이점, 클래스형과 함수형 컴포넌트에서의 State 사용법을 알아보자.

ReactJavascript

React 시작하기

React를 시작하기 위한 기본적인 내용들을 정리해 보았다. nvm과 npm을 사용해서 React를 설치하고 실행하는 방법을 알아보자.

ReactJavascriptcomponent

React의 Component

React의 함수형 컴포넌트와 클래스형 컴포넌트, Props 사용법을 알아보자.

kafkastream

Kafka로 메시지와 이벤트 처리하기 - (1) Kafka 세팅하기

Apache Kafka는 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산 데이터 스트리밍 플랫폼이다. Docker를 사용해서 Kafka 환경을 구축하고 기본적인 메시지 송수신을 테스트해본다.

kafkastream

Kafka로 메시지와 이벤트 처리하기 - (2) Python으로 consumer, producer 만들기

Python을 사용해서 Kafka consumer와 producer를 구현해본다. kafka-python 라이브러리를 활용하여 메시지를 발행하고 구독하는 방법을 알아본다.

bloggatsby

블로그를 이전하자

티스토리에서 나만의 블로그로 이전하는 이유와 새로운 시작에 대한 다짐을 담은 글.

FlaskPythonDecorator

Flask 데코레이터 사용하기

데코레이터란 함수에 반복적인 기능과 역할을 할 수 있도록 만들어주는 기능이다. 함수 내부의 로직을 수정하지않고, 기능을 추가하거나 수정 하고싶을 때 사용한다.

FlaskPythonStructure

Flask 구조를 잡아 확장성있게 관리하기

플라스크는 미니멀하게 프로젝트를 시작 할 수 있어서, 초기 진입 시에 세팅과 공부 할 것들이 비교적 적은 편이라고 생각했다. 플라스크로 현업에서, 그리고 사이드 프로젝트로 개발을 진행 하다 보니 미니멀하게 금방 작업 하는 것에는 도움이 되었지만, Django나 Spring처럼 구조화를 하기는 조금 어렵다는 생각이 들었다.

FlaskPythonDocker

Docker로 작성한 Flask 서버, Debug모드 적용하기

Docker로 올린 서버는 Debug모드로 실행 한다면, Docker 내부에 들어가서 코드를 고쳐줘야 하는 번거로움이 있다. Docker 내부에서 수정한 파일은, Docker를 내리거나 지우면 없어지며 혹은 local의 git과 연동되지 않는 문제점이 있다.