/users
/posts
/slides
/apps
/books
mysetting
/users
/posts
/slides
/apps
/books
Jinwoo Lee
@SW-Maestro-OSS @boostcampwm-2022
Daegu, Republic of Korea
Joined on 2024년 12월 23일
Profile
Post
Like
9:39 12/23
jinlee.kr
9:39
jinlee.kr
개발자 이진우
https://jinlee.kr
Hydejack is a boutique Jekyll theme for hackers, nerds, and academics, with a focus on personal sites that are meant to impress.
저작도구: Jekyll v3.10.0
최종 피드 수집: 2025-04-01 09:45
전체 (39)
5d
Mac에서 ElasticSearch 설치 및 실행하기
1. 시작하기 전에
1.1. 필수 요구사항
1.2. 설치 방법 선택
2. Homebrew를 이용한 설치
2.1. Homebrew 설치
2.2. ElasticSearch 설치
2.3. ElasticSearch 실행
3
database
+ 더보기
0
0
0
읽기모드
5d
ElasticSearch란 무엇인가?
1. ElasticSearch 소개
1.1. ElasticSearch의 정의와 역사
1.2. ELK 스택(ElasticSearch, Logstash, Kibana)의 개요
2. ElasticSearch의 핵심 특징
database
+ 더보기
0
0
0
읽기모드
6d
RDB와 NoSQL로 살펴보는 데이터베이스 확장성 전략
1. 확장성의 두 가지 패러다임: 수직적 vs 수평적 접근
2. RDB의 전통적 확장성 접근법: 성능과 일관성 우선
2.1. RDB의 수직적 확장 전략
2.2. RDB의 수평적 확장 시도
3. NoSQL의 혁신적 확장성 접
database
+ 더보기
0
0
0
읽기모드
8d
C10K 및 C10M 문제
1. 서론
1.1. “1만명이 접속하는 서버 만들기” 도전
1.2. Dan Kegel의 1999년 도전과 시대적 배경
1.3. 왜 동시 연결 수가 웹 서버 설계에 중요한가?
2. 전통적인 서버 모델과 그 한계
2.1
trend
+ 더보기
0
0
0
읽기모드
14d
Spring Batch 구현 - 멀티스레드 적용
1. 서론
2. 프로젝트 배경 및 문제 상황
3. 멀티스레드 처리 방식 선택
4. 멀티스레드 구현 과정
4.1. ThreadPoolTaskExecutor 구성
4.2. 배치 Step 구성 수정
4.3. 스레드 안전성 확보
web
+ 더보기
0
0
0
읽기모드
15d
Spring Batch - 배치 작업과 스케줄러 연동하기
1. Spring Batch와 Scheduler: 명확히 다른 개념
1.1. Spring Batch: ‘무엇을’ 처리할 것인가
1.2. Scheduler: ‘언제’ 실행할 것인가
2. Spring Batch 기본 구조
web
+ 더보기
0
0
0
읽기모드
15d
Spring Batch 처리 방식 비교 - Tasklet vs Chunk
1. 서론
2. Tasklet 방식 이해하기
2.1. Tasklet 인터페이스 소개 및 기본 구조
Tasklet 실행 프로세스
Tasklet 인터페이스 구조
2.2. Tasklet 구현 예시
2
web
+ 더보기
0
0
0
읽기모드
2M
Java ConcurrentHashMap - 동시성 제어의 이해
1. 들어가며
필자가 이전에 작성한 ConcurrentHashMap을 통한 멀티스레드 환경 및 동시성 제어 알아보기에서 보다 코드 중심적으로 풀어보려 한다.
2. HashMap의 동시성 문제
2.1. 기본적인 동시성 문제
etc
+ 더보기
0
0
0
읽기모드
3M
2024년 회고 (Feat. 멋사, 졸업)
서론
드디어 2025년이 되었다. 필자에게 있어서 2025년은 정말 손꼽아 기다린 해인데, 가장 큰 이유는 길고 길었던 대학교를 졸업한다는 점에 있어서 였다. 2023년과 더불어 2024년은 정말 정신없는 해였던 것 같은데,
essay
+ 더보기
0
0
0
읽기모드
3M
DDD에서 Usecase 패턴 활용하기
1. 서론
1.1. DDD란?
Domain-Driven Design(이하 DDD)은 도메인 전문가와 개발자가 동일한 언어로 소통하며, 비즈니스 도메인을 중심으로 소프트웨어를 설계하는 방법론이다. 필자는 DDD를 단순한 설계 패
etc
+ 더보기
0
0
0
읽기모드
4M
네이버 헬스케어연구소 개발 인턴 회고
1. 지원과 준비
1.1. 지원 동기
네이버는 필자에게 여러 이유로 합류해보고 싶은 기업이었다. 가장 큰 이유는 네이버라는 기업이 가진 이미지와 가치였다.
예전에 친구와 나눈 워너비 기업에 대한 대화는 흥미로운 통찰을 주었
essay
+ 더보기
0
0
0
읽기모드
4M
Spring Component Scan
이전 포스트
Spring Bean
1. Component Scan 개요
1.1. Component Scan이란
Component Scan은 Spring이 어플리케이션의 클래스패스에서 특정 어노테이션이 붙은 클래스들을 스캔하여
web
+ 더보기
0
0
0
읽기모드
4M
Spring Bean
1. Spring Bean 개요
1.1. Spring Bean이란?
Spring Bean은 스프링 컨테이너가 관리하는 자바 객체를 의미한다. 일반적인 자바 객체(POJO)와 동일한 객체이지만, 스프링 컨테이너에 의해 생성되고
web
+ 더보기
0
0
0
읽기모드
4M
대용량 데이터 API 성능 최적화 전략
1. 개요
대규모 서비스를 운영하다보면 대용량 데이터 처리 시 성능 이슈가 발생할 수 있다. 수만 건 이상의 데이터를 다루는 API에서는 응답 시간 지연이나 메모리 부족 같은 문제들이 발생한다. 이러한 문제는 사용자 경험을 떨
web
+ 더보기
0
0
0
읽기모드
5M
Conventional Commits와 Husky로 일관된 커밋 메시지 관리하기
서론
프로젝트를 진행하다 보면 일관된 커밋 메시지의 중요성을 느낄 때가 있다. 오늘은 Conventional Commits 규칙을 적용하고, Husky를 사용하여 이를 자동으로 강제하는 방법에 대해 알아보자.
Convention
etc
+ 더보기
0
0
0
읽기모드
5M
M2 Pro MacBook에서 Rust 개발 환경 설정하기
Rust는 성능과 안전성을 동시에 추구하는 시스템 프로그래밍 언어다. 오늘은 M2 Pro MacBook에서 Rust 개발 환경을 설정하는 방법을 알아보자.
1. Rust 설치
터미널을 열고 다음 명령어를 실행한다.
curl -
etc
+ 더보기
0
0
0
읽기모드
5M
Rust SQLx의 오프라인 모드를 활용한 데이터베이스 없이 빌드하기
작성 배경
최근 Rust 프로젝트에서 SQLx를 사용하던 중 흥미로운 문제에 직면했다. CI/CD 환경에서 빌드를 시도했는데, 다음과 같은 오류가 발생했다.
error: Failed to prepare query: error se
etc
+ 더보기
0
0
0
읽기모드
5M
ConcurrentHashMap을 통한 멀티스레드 환경 및 동시성 제어 알아보기
1. 소개
1.1. 멀티스레드 환경에서의 동시성 문제
1. 멀티스레드 동시성 문제
Thread 1
Read: 100
Add 50
Write: 150
Shared Resource
100
Thread 2
Read
etc
+ 더보기
0
0
0
읽기모드
5M
인메모리 vs 디스크 기반 데이터베이스
1. 서론
1.1. 데이터베이스의 중요성
현대 사회에서 데이터베이스는 정보 관리의 핵심 요소로 자리 잡았다. 기업, 정부, 그리고 개인의 일상생활에 이르기까지 데이터베이스는 우리 삶의 모든 영역에 깊숙이 관여하고 있다. 효율적
database
+ 더보기
0
0
0
읽기모드
5M
MacOS에서 Oralce 데이터베이스 설치
필자의 개발 환경
칩 : Apple M2 Pro
MacOS : Sonoma 14.5(23F79)
Docker Version : 24.0.2
필자는 Docker를 활용하여 Oracle 데이터베이스를 가동하기로 하였다.
설치 과정
M
database
+ 더보기
0
0
0
읽기모드
7M
Nginx log를 S3에 저장하기
단일 진입점 설정 과정
Bastion Host - VPN 및 단일 진입점 설정
Bastion Host - Proxy 구축기
Nginx log를 AWS S3에 저장하고자 하는 이유
로그를 주기적으로 AWS S3에 저장하고자 하는
devops
+ 더보기
0
0
0
읽기모드
7M
Blue-Green 배포 도입기
무중단 배포란?
무중단 배포(zero-downtime deployment)가 서비스의 가용성을 유지하면서 새로운 버전의 애플리케이션을 배포하는 기술이다. 이는 사용자 경험을 저해하지 않으면서 지속적인 서비스 개선과 유지보수를
devops
+ 더보기
0
0
0
읽기모드
7M
Docker MySQL - RDS 마이그레이션
Docker 컨테이너 MySQL 운영 중 AWS RDS로 전환을 결정한 이유
1. 데이터베이스의 안정성 문제
Docker 컨테이너의 특성상 호스트 시스템(AWS EC2)의 문제나 컨테이너 재시작 시 데이터 손실 가능성이 있었고
devops
+ 더보기
0
0
0
읽기모드
7M
MacOS에서 MySQL 완전 삭제 및 재설치 방법
주의 사항
필자는 이 글에서 MySQL을 삭제하고 재설치하는 다양한 방법을 제시하고 있다. 이는 초심자들이 MySQL 문제 해결 과정에서 여러 방법을 시도했을 가능성을 고려한 것으로, 아래에 서술된 모든 단계가 모든 사용자에게
database
+ 더보기
0
0
0
읽기모드
7M
Java - Reflection
Background
필자는 최근 디버깅 및 테스트 도구에 대한 내용을 학습하던 중, 자바의 리플렉션이라는 기능을 이용한 디버깅 및 테스트 도구가 존재한다는 것을 알게 되었다. 이를 위해 자바의 리플렉션에 대한 내용을 이해하고자
web
+ 더보기
0
0
0
읽기모드
7M
Node.js에서 이미지 데이터 다루기
Background
필자는 최근 Node.js를 사용한 이미지 업로드 기능을 구현하는 과정에서 예상치 못한 문제에 직면했다. 클라이언트로부터 전송된 멀티파티 폼 데이터에서 이미지를 추출하고 처리하는 과정이 생각보다 복잡했기 때
web
+ 더보기
0
0
0
읽기모드
7M
Headless Browser
Headless Browser?
그래픽 사용자 인터페이스(GUI)가 없는 웹 브라우저를 의미한다. 일반적인 브라우저와 동일한 기능을 수행하지만, 화면에 표시되지 않고 백그라운드에서 실행된다.
Point
GUI 없음 : 시각적
web
+ 더보기
0
0
0
읽기모드
7M
외래키(Foreign Key)에 대한 고찰
Background
프로젝트를 진행하면서 외래 키가 설정되어 있지 않은 것을 확인하게 되었고, 그에 대한 이유를 정리하고자 게시글을 작성하게 되었다.
외래키의 정의와 기본 개념
외래키(Foreign Key, 이하 FK)는
database
+ 더보기
0
0
0
읽기모드
8M
TypeORM - 'parent_id' cannot be null 이슈
Background
필자가 NestJS를 통한 TypeORM을 사용하면서 겪었던 흥미로운 문제를 겪게 되었다. 'parent_id' cannot be null 이슈였는데, 이를 어떻게 해결했는지와 그 해결 과정을 공유하고자 한
web
+ 더보기
0
0
0
읽기모드
8M
RxJS와 Promise, Observable - 비동기 프로그래밍의 차이점과 활용
Background
이전에 다른 사람이 작성한 NestJS 코드를 보다가 firstValueFrom과 lastValueFrom 함수가 있다는 것을 알게 되었다. 이를 찾아보던 중 필자가 비동기 프로그래밍에 대해 보다 깊이 있는
web
+ 더보기
0
0
0
읽기모드
8M
파라미터 유효성 검사의 양면성 - 시스템 사용성에 미치는 영향
Backgorund
이번 포스팅에서는 백엔드 개발에서 중요한 주제인 ‘파라미터 유효성 검사’에 대해 이야기해보려 한다. 백엔드 개발자라면 프로젝트를 진행하게 되면서 RESTful API를 작성하기 위해 /course/:cour
web
+ 더보기
0
0
0
읽기모드
8M
Go 언어 - 패키지 시스템과 웹 어플리케이션 만들기
Background
필자는 작년 SW마에스트로 활동을 하면서 처음으로 Terraform을 접하게 되었다. Terraform이란 클라우드 인프라 관리 도구로 이는 Go 언어로 작성되어 있어, 늘 흥미를 가지고 있던 언어 중 하나
devops
+ 더보기
0
0
0
읽기모드
8M
Go 언어 - 인터페이스와 에러 처리
Background
필자는 작년 SW마에스트로 활동을 하면서 처음으로 Terraform을 접하게 되었다. Terraform이란 클라우드 인프라 관리 도구로 이는 Go 언어로 작성되어 있어, 늘 흥미를 가지고 있던 언어 중 하나
devops
+ 더보기
0
0
0
읽기모드
8M
Go 언어 - 동시성 프로그래밍
Background
필자는 작년 SW마에스트로 활동을 하면서 처음으로 Terraform을 접하게 되었다. Terraform이란 클라우드 인프라 관리 도구로 이는 Go 언어로 작성되어 있어, 늘 흥미를 가지고 있던 언어 중 하나
devops
+ 더보기
0
0
0
읽기모드
8M
JS & TS - 객체 불변성과 읽기 전용 속성
Background
최근 코드 리뷰에서 다음과 같은 피드백을 받았다.
const updated = { ...type, ...updateTypeDto };
이 코드에 대해 “내가 생성하지 않은 객체는 다양한 이유로 수정하지
web
+ 더보기
0
0
0
읽기모드
8M
Go 언어 - 소개와 개발 환경 설정
Background
필자는 작년 SW마에스트로 활동을 하면서 처음으로 Terraform을 접하게 되었다. Terraform이란 클라우드 인프라 관리 도구로 이는 Go 언어로 작성되어 있어, 늘 흥미를 가지고 있던 언어 중 하나
devops
+ 더보기
0
0
0
읽기모드
8M
Go 언어 - 함수와 구조체
Background
필자는 작년 SW마에스트로 활동을 하면서 처음으로 Terraform을 접하게 되었다. Terraform이란 클라우드 인프라 관리 도구로 이는 Go 언어로 작성되어 있어, 늘 흥미를 가지고 있던 언어 중 하나
devops
+ 더보기
0
0
0
읽기모드
8M
DRF(Django Rest Framework) 개념 정리
Background
필자는 최근 DRF로 구현된 API를 NestJS로 이전하는 작업을 진행하게 되었다. 이 과정에서 DRF의 구조와 개념을 명확히 이해하는 것이 중요하다고 판단했고, 이에 DRF에 대한 종합적인 정리의 필요성
web
+ 더보기
0
0
0
읽기모드
8M
MySQL - VARCHAR의 특성 및 한글 저장
Background
데이터베이스를 다룰 때 문자열 데이터 타입의 선택은 매우 중요하다. 특히 MySQL에서 VARCHAR와 CHAR의 차이점을 이해하는 것은 효율적인 데이터베이스 설계에 핵심적이다.
Subject
VARCHAR
database
+ 더보기
0
0
0
읽기모드
About
Badge
Contact
Activity
Terms of service
Privacy Policy