/users
/posts
/slides
/apps
/books
mysetting
/users
/posts
/slides
/apps
/books
yoon
Joined on 2022년 06월 29일
Profile
Post
Like
2:09 6/29
velog.io
2:09
velog.io
0_0_yoon.log
https://velog.io/@0_0_yoon
000
저작도구: velog
최종 피드 수집: 2025-01-26 20:15
전체 (32)
4d
[Oracle Free Tier Review] 간헐적 메모리 부하
문제상황
간헐적으로 백엔드 서버가 먹통이 됨
원인
dnf가 메타데이터 캐시를 갱신하는 동안 메모리 사용량이 급격하게 증가해서 접속이 안되는 문제 발생
해결과정
OCI 메모리 사용량 보드 및 시스템 로그를 통해 원인 유추.
갱신주기
0
0
0
읽기모드
8M
이미지 리사이징
문제 상황
이미지 업로드 기능에 용량 제한이 없으며 이를 그대로 s3 에 업로드 한다.
예상되는 문제
용량이 큰 이미지를 업로드 하면 응답 속도가 느려(클라이언트에서 직접 s3 에 업로드 하도록 구현되어 있다) 사용자 경험이 나빠
0
0
0
읽기모드
8M
리액트 양방향 데이터 흐름 구현
문제상황
부모 컴포넌트와 자식 컴포넌트 간의 상호작용이 필요한 경우.
하나의 input 요소를 사용해서 감사메세지와 댓글 및 대댓글을 작성할 수 있도록 구현하는 과정이였다. 이때 input 요소는 감사메세지 컴포넌트가 가지고 있
0
0
0
읽기모드
11M
@JsonFormat 과 TimeZone 설정
문제상황: DB 에 저장된 시간대가 UTC 기준으로 저장되고 조회됨.
해결방법: application.yml 파일에 spring.jpa.properties.hibernate.jdbc.time_zone = Asia/Seoul 설정하
0
0
0
읽기모드
1y
레디스를 사용한 통합 테스트
문제상황
테스트 환경에서 임베디드 레디스를 사용해서 테스트를 진행.
예외 메세지: Unable to connect to Redis
org.springframework.data.redis.RedisConnectionFailureEx
0
0
0
읽기모드
1y
Jackson 역직렬화
문제상황
인수테스트에서 응답을 역직렬화하는 과정에서 아래와 같은 예외가 발생했다.
2023-11-15 20:35:45.875 WARN 54421 --- [o-auto-1-exec-1] .w.s.m.s.DefaultHandlerE
0
0
0
읽기모드
1y
JPA N + 1 문제 해결하기
문제상황
JPA 를 사용할 때 특정한 상황에서 추가적인 쿼리가 실행된다.
이때 DB ConnectionPool(Spring 의 경우 HikariCP 사용)은 한정 자원이므로 DB Connection 사용은 줄이는 게 좋다.
원인
0
0
0
읽기모드
1y
Virtual Thread (feat. Java 21)
서론
지난달 Final RC 가 끝난 Java 21 은 9월 19일에 출시된다. 새로운 기능 중 이번에 정식으로 제공되는 Virtual Thread 에 대해서 알아봤다.(19,20 에서 preview 기능으로 제공)
본론
Virt
0
0
0
읽기모드
1y
컴퓨터 구조
혼자 공부하는 컴퓨터 구조+운영체제를 읽으면서 이해한 내용을 20가지로 나눠서 정리해봤습니다. 내용 중 틀린 내용이 있다면 피드백 부탁드립니다!
1. 컴퓨터 구조를 알아야하는 이유
1. 문제 상황을 빠르게 진단할 수 있고, 문제
0
0
0
읽기모드
1y
ContentCachingRequestWrapper, ContentCachingResponseWrapper
문제상황
인터셉터에서 로깅 할 때 Requset, Response 의 Body 가 출력되지 않았다.
@Override
public boolean preHandle(final HttpServletRequest requ
0
0
8
읽기모드
1y
[Jackson] ObjectMapper 설정 변경하기
문제상황
응답 객체의 필드 이름을 isSelected(boolean 타입, private, Lombok @Getter 사용)로 지었는데 해당 객체를 사용하는 API 응답 값에서 isSelected 가 아닌 selected 로 출력
0
0
0
읽기모드
1y
CreatedDate 적용하기
JPA 를 사용하면서 느꼈던 이점 중 하나가 @CreatedDate 이다.
이름 그대로 생성 날짜를 자동으로 생성하고 JPA 로 자동으로 저장할 수 있다.
해당 어노테이션을 사용하기 위해서는 세 가지 작업을 해야한다.
첫 번째
0
0
0
읽기모드
1y
프로세스 계층 구조
IDEA 를 통해 애플리케이션을 실행하게 되면 IDEA 의 자식 프로세스로 새롭게 프로세스가 생성되며, 해당 프로세스 내부에서 새로운 프로세스를 생성하게 되면 현재 프로세스의 자식 프로세스로써 프로세스가 생성됨을 확인할 수 있다.
0
0
0
읽기모드
2y
Decorator pattern
새로운 기능을 추가할 경우 사용할 수 있는 디자인 패턴이다.
subclassing(상속) 을 사용하는 경우보다 더 효율적일 가능성이 있다.
Subclassing 을 하는 경우
기존의 클래스를 상속하는 경우 상위 클래스가 변경되면
0
0
0
읽기모드
2y
ControllerAdvice의 파라미터에 @CookieValue를 사용할 수 없는 이유
정확히 말하자면 ControllerAdvice의 @ExceptionHandler에서 파라미터에서 @CookieValue를 사용할 수 없는 이유다.
팀 프로젝트에 RefreshToken을 적용하는 과정에서 RefreshToken의
0
0
0
읽기모드
2y
Cache 맛보기
Cache 맛보기
캐시의 생명 주기(cache-control)
no-cache(강제 재검증) vs no-store(캐싱을 하지않음)
cache-control에 no-cache 로 설정하면 캐시를 사용하지만 항상 서버(프록시서버,
0
0
0
읽기모드
2y
HTTPS 통신 과정
HTTPS 는 TCP 위에 SSL/TLS 층을 추가하여 암호화, 인증 그리고 무결성 보장을 통해 더 안전하게 만들어주는 프로토콜이다.
대칭키와 공개키 방식을 전부 사용하는 하이브리드 방식이다. 데이터 전송을 위해 대칭키 방식을 사
0
0
4
읽기모드
2y
[레벨3] @ModelAttribute를 생략할 수 있는 이유
@ModelAttribute 는 요청 파라미터를 객체로 바인딩할때 사용된다. 그리고 생략이 가능하다 는 특징이 있다.
어떻게 생략이 가능한걸까? spring 내부를 뜯어보자.
먼저 빈이 등록되는 과정중에 afterPropertie
0
0
2
읽기모드
2y
[레벨3] Pageable 사이즈 제한하기
우리는 스프링에서 제공하는 Pagealbe을 사용해서 페이징 기능을 구현했다. (모르는게 없는 오찌의 Pagealbe 하드캐리 🙇♂️)
@GetMapping("/reviews")
public ResponseEntity<
0
0
0
읽기모드
2y
[2레벨] 좌충우돌 CORS 허용기
백엔드 서버 배포를 마친뒤 실제 프론트엔드와 연동해 데모하는 과정에서 일부 API에서 CORS 문제가 발생했다.
엥 CORS? 그게 뭐지?
(프론트엔드 서버와 백엔드 AWS 서버, 출처가 다르다.)
CORS 란 교차 출처 리소스
0
0
0
읽기모드
2y
메서드에서 값을 반환할 수 없을 경우
문제 :
로또의 순위를 구하는 로직에서 해당하는 순위가 없는 경우(낙첨)에 어떻게 처리 해야할까?
원인 :
기본값이 없어 반환해줄 요소가 없다.
해결 :
첫 번째 해결 시도
메서드가 값을 반환할 수 없을 때 3가지 처리 방법을
0
0
0
읽기모드
2y
전략패턴의 도입 이유와 DI
문제
상위 컨텍스트(Cars)에서 위임받은 객체에 대한 테스트(Car 전진 시도 기능)의 어려움
원인
자동차 전진 시도 기능의 캡슐화로 테스트하기 어려움
해결
전략 패턴을 도입해서 현재 자동차의 상위 컨텍스트인 Cars에서 자동차
0
0
0
읽기모드
3y
우테코 프리코스 및 최종 코딩테스트 후기
3주간의 프리코스를 마치고 최종 코딩테스트를 봤다.
이번 테스트에서 만족스러웠던 점은 dto객체를 사용해본 것이다. 저번 미션을 MVC패턴으로 구현하던 중에 View클래스에서 도메인 객체에 의존성을 가지는 것에 의구심이 들어서
0
0
2
읽기모드
3y
우테코 프리코스 3주차 회고
[MVC] 자판기 구현하기
이번 3주차 미션을 시작하기 전에 2주차 미션에 대한 피드백 받은 부분을 중심으로 자동차 경주 게임을 다시 구현해봤다.
// 내가 2차 미션에 제출했던 코드 일부
public class Car {
0
0
0
읽기모드
3y
[MVC] 동전 자판기 구현하기
구현하면서 가장 많이 고민했었던 세 가지를 중심으로 써봤다.
📌 유효성 검증은 어디서 할 것인가?
📍 View에서 모든 유효성 검증을 해보자!
최전선에서 입력값을 받아 바로 검증을 하는 게 단순하고 여러 로직을 거칠 필요가 없
0
0
0
읽기모드
3y
우테코 프리코스 2주차 회고
[TDD] 자동차 경주 게임
벌써 2주차 미션이 끝났다. 미션을 진행하면서 시간이 너무 빨리 흘러가는 것 같다.
이번에 미리 생각해놨던 커밋메세지 포맷대로 작성을 하니 1차 미션때 보다는 가독성이 좋아진것 같다👍
이번 미션을 진
0
0
0
읽기모드
3y
[TDD] 자동차 경주 게임
📌 설계
📍 도메인 모델
자동차 레이싱 게임을 기반으로 구조 설계
비즈니스 규칙은 토큰 게임기 작동 규칙으로 함.
도메인 모델에서 추출한 객체: 게임기, 트랙, 레코더, 자동차, 엔진, 토큰
📍 기능목록
자동차들 이름을
0
0
0
읽기모드
3y
[Git] Git commit message 정리
이번에 처음으로 PR을 보내고 내가 작성한 커밋메세지를 봤는데 생각보다 가독성이 떨어지고 난잡해 보였다. 가능한 제목에 모든 걸 상세하게 적으려고 했던 게 화근이었다. 그리고 매번 커밋 메세지 타입을 구글링했던 내가 생각났다. 그
0
0
1
읽기모드
3y
객체지향의 사실과 오해(feat. 되돌아보기)
객체지향 프로그래밍의 대략적인 정보는 블로그나 유튜브에서 여러 번 접해봤지만, 책을 통해 기본 개념을 공부해보고 싶었다. 그 중 이 책을 추천받아서 읽어봤는데 내가 짠 코드에 의구심이 생긴 이유를 알게 됐다.
첫 번째 이유는 내가
0
0
0
읽기모드
3y
우테코 프리코스 1주차 회고
객체지향 생활 체조 원칙 (feat. 숫자 야구 게임)
이번 미션을 통해서 배운점들과 느낀점들을 정리해봤다.
미션 요구사항중 코드 컨벤션 지키는 부분이 있었다. 나름 컨벤션은 잘 지키고 있다고 생각했는데 관련 문서에서 CheckS
0
0
0
읽기모드
3y
객체지향 생활 체조 원칙 (feat. 숫자 야구 게임)
📌 객체지향 생활 체조 원칙
우테코 프리코스 1주차 미션인 숫자 야구 게임을 구현하며 객체지향 생활 체조 원칙 9가지를 현재 내가 이해하고 있는 선에서 최대한 지키려고 노력했다. 동시에 TDD기반으로 구현하면서 테스트 케이스를
0
0
0
읽기모드
3y
[TDD] 문자열 계산기 구현
📌 기능
사칙연산자와 숫자로 이루어진 입력값을 받아 연산자의 우선순위와 관계없이 순차적으로 연산하는 문자열 계산기
📌 To do list
계산기 작동 순서에 따라 필요한 기능들을 작성했다.
입력값 받기
입력값 공백제거 하기
유
0
0
1
읽기모드
About
Badge
Contact
Activity
Terms of service
Privacy Policy