profile
기록하는 공간
post-thumbnail

[CI/CD] 무중단 배포로 전환하기

기존 workflow는 기존 도커 컨테이너를 중단 후 ECR로 부터 pull 을 받아서 재실행하는 구조였다. docker stop meeteam-server || true 여기서 서비스가 중단되고 docker compose up -d meeteam-server

4일 전
·
0개의 댓글
·

Virtaul Thread 알아보기

Java 21에서 도입된 Virtual Thread의 구조와 동작 원리를 이해하기 쉽게 정리한 문서입니다.먼저 알아야 할 용어(2. 기존 Thread 모델의 문제점(3. Virtual Thread 구조(4. Virtual Thread 동작 원리(5. park/unpar

2026년 2월 25일
·
0개의 댓글
·
post-thumbnail

인수테스트를 중심으로 안정망 구축하기

작년에 진행했던 프로젝트인 미팀을 몇개월 만에 다시 살려보고자 남아있는 팀원들이랑 방향성에 대해 논의해 보았다. 우선적으로 테스트 코드가 전무하니, 테스트를 구축과 동시에 프로덕션 코드를 리펙토링 하기로 하였다. 팀원이 많이 이탈했기 때문에, 팀원들이 작성한 코드마

2026년 2월 16일
·
0개의 댓글
·

[test] - Mockito로 stubbing 하기

MockitoBean 은 Application Context 이미 존재하는 빈이면 Mock 빈 으로 대체한다.존재하지 않으면 Mock 빈 으로 새로 등록한다.가짜 객체를 빈으로 등록하고,그 빈이 어떤 상태를 반환할지 정하면 된다.위와 같이 Mock 빈과 같은 Mock

2025년 12월 19일
·
0개의 댓글
·

미팀- 수정.

우테코 프리코스 2주차를 다시 구현중테스트 코드를 작성했다.여기서 carNames 가 pobi,heeun 과 같이 들어온다.만약에 "pobi,heeun," 과 같이 존재할 경우 split(,) 을 하면"pobi" , "heeun" 으로만 분리한다.내 의도는 마지막에 "

2025년 12월 5일
·
0개의 댓글
·

자바 - 파라미터 테스트 작성법

JUnit5 @ParameterizedTest 에서 자주 쓰는@MethodSource, @ValueSource, @CsvSource 의 차이가장 간단한 파라미터 제공 방식.문자열, 숫자, boolean 등 하나의 값만 제공 가능여러 파라미터가 필요한 테스트에는 사용 불

2025년 12월 2일
·
0개의 댓글
·

우테코 - 1주차 피드백

1주 차 미션의 학습 목표는 개발 환경과 프로그래밍 언어에 익숙해지는 것이었습니다. 우아한테크코스가 어떻게 진행되는지 맛볼 수 있도록 과제를 내주겠다고 말씀드렸는데, 여러분은 어땠을지 궁금합니다.프로그래밍을 처음 접하고 아직 개발 환경이 낯설게 느껴지는 분들을 위해 우

2025년 12월 2일
·
0개의 댓글
·
post-thumbnail

[자바] - 날짜와 시간

LocalDate: 날짜만 표현할 때 사용한다 ex) 2013-11-21 LocalTime: 시간만을 표현할 때 사용한다. 시, 분, 초를 다룬다. ex) 08:20:30.213LocalDateTime: LocalDate 와 LocalTime 을 합한 개념 ex) 2

2025년 11월 29일
·
0개의 댓글
·

우테코 - [회고] 3주차

2주차 미션을 진행할 때부터 테스트 코드 작성 시점에 대한 고민이 많았습니다.하나의 기능을 구현하고 곧바로 테스트 코드를 작성할 경우, 리팩토링이 많은 저에게는 테스트 코드와 패키지 구조 또한 함께 바뀔 것으로 예상되어 리팩토링 시간이 두 배로 늘어날 것 같았기 때문입

2025년 11월 17일
·
0개의 댓글
·
post-thumbnail

[Spring AOP] 하나의 프록시, 여러 Advisor

어떤 스프링 빈이 advisor1, advisor2 가 제공하는 포인트컷의 조건을 모두 만족하면 프록시 자동 생성기는 프록시를 몇개 생성할까?프록시 자동 생성기는 프록시를 하나만 생성한다.프록시 팩터리가 생성하는 프록시는 내부에 여러 Advisor등을 포함 할 수 있기

2025년 10월 20일
·
0개의 댓글
·
post-thumbnail

JVM21에 등장한 Virtual Thread (Context Switching Test)

Virtual Thread 를 알아보기전에 기존의 Native Thread 의 context switching 이 발생하는 원리에 대해 알아보자기존의 JVM 에 존재하는 톰캣 스레드는 커널스레드와 1대1로 매핑되어 실행이 되는 구조이다.지금까지 CPU 코어가 톰캣 스레

2025년 10월 7일
·
0개의 댓글
·

SSE 를 이용한 이벤트 전송

SSE 는 그냥 단순하게 단향방 통신에서 사용된다 이정도만 알고 사용하였다.그저 HTTP에서 지원해는 기능? 정도 구나라고 생각했지만HTTP가 지원하는 기능이라기보다는HTTP 위에 정의된 이벤트 전송 규약(HTML5 표준)이라고 한다.SSE는 HTTP 위에서 동작하는

2025년 9월 29일
·
0개의 댓글
·

JPA - 페이징과 한계 돌파

페이징 + 컬렉션 엔티티를 조회하려면 어떻게 해야할까데이터가 뻥튀기 되지 않게 할수 없을까???이렇게 order 를 기준으로 페이징을 할 경우는 어떻게 해야할까쉽게 말해서 Order 엔티티는 OrderItem 과 일대다 관계이기 때문에fetch join 을하고 페이징이

2025년 7월 30일
·
0개의 댓글
·
post-thumbnail

JPA - 컬렉션 fetch join

먼저 Fetch join 을 하지 않을때 어떤 문제점이 발생하는지 알아야 Fetch join 을 잘 사용할 수 있다여기서 먼저 Lazy 로딩이 뭔지 알아보자.엔티티를 접근해서 특정 필드에 접근하면 그때 연관관계에 있는 엔티티가 실제로 주입이 된다.즉 order.getM

2025년 7월 30일
·
0개의 댓글
·

멀티 스레드 - Lock , CAS 비교

CAS 연산을 사용하면 Lock 을 사용했을 때보다 성능상 좋았다.이런 결과가 왜 이러난 것일까?예를 들어 스레드 100개를 동시에 실행했을때 한 쓰레드가 Lock 을 소유하게 되면다른 스레드 99개는 전부 CPU 자원을 사용하지 않는 상태가 된다.(BLOCKING ,

2025년 7월 25일
·
0개의 댓글
·

Java - 멀티스레드 CAS , LOCK, VOLATILE 성능 비교

CAS는 비차단 알고리즘의 대표격입니다. 스레드는 공유 변수의 예상 값(expected)과 실제 메모리 값을 비교하고, 같을 때만 새로운 값으로 교체합니다. 다른 스레드가 변수 값을 바꾸고 있더라도 해당 스레드는 대기(block)하지 않고 즉시 재시도(retry)할

2025년 7월 24일
·
0개의 댓글
·

Redis - 사용, 실습

Redis 단일 쓰레드에서 실행이 되기 때문에 동시성 문제에 대해 고민할 필요 조차 없다.레디스 주요 특징key-value로 구성된 단순화된 데이터 구조로 sql 쿼리 사용 불필요빠른 성능인메모리 NoSQL 데이터베이스로서 빠른 성능rdb는 기본적으로 disk에 저장이

2025년 7월 24일
·
0개의 댓글
·

SpringBoot -redis with cache

아래 3개 (RedisTemplate, StringRedisTemplate, RedisCacheManager) 를 “무엇이고 / 언제 쓰고 / 어떻게 쓰고 / 서로 관계” 관점에서 처음 배우는 사람이 바로 그림 잡도록 정리했어.(핵심 → 비유 → 코드 → 선택 기준 순

2025년 7월 19일
·
0개의 댓글
·

Java - 멀티스레드 CPU 코어에 맞는 쓰레드 풀 개수

각각의 스레드가 하는 작업은 크게 2가지로 구분할 수 있다.CPU-바운드 작업cpu의 연산 능력을 많이 요구하는 작업을 의미한다.이러한 작업은 주로 계산, 데이터 처리, 알고리즘 실행 등 cpu의 처리속도가 작업 완료 시간을 결정하는 경우다.예시 : 복잡한 수학 연산,

2025년 7월 18일
·
0개의 댓글
·
post-thumbnail

2. 멀티스레드 - 스레드 생성과 실행

메서드 영역(Method Area) : 프로그램을 실행하는데 필요한 공통 데이터 관리. 이 영역은 프로그램의 모든 영역에서 공유한다.클래스 정보 : 클래스의 실행 코드, 필드 , 메서드와 생성자 코드등 모든 실행 코드가 존재한다.stati 영역 : static 변수들을

2025년 7월 17일
·
0개의 댓글
·