profile
Young , Wild , Free
post-thumbnail

이메일 전송 서버 구현기 - 1(Dead Letter Queue)

FrameCheckMate에서 담당한 부분은 이메일 전송 서버 구축이다. 이번 회고는 이메일 전송 서버를 구축하기까지의 사고 과정을 담고 있다.Email 전송을 수행하는 상황은 다음과 같다.imageCard Server와 Member Server에서 이벤트가 발생한 경

2024년 12월 7일
·
0개의 댓글
·
post-thumbnail

Record Class 적용기 근데 TMI를 곁들인

프로젝트에 대해서 면접관은 정말 다양한 질문을 한다. Spring Project를 했다 하면 질문하는 것 중의 하나는 다음과 같다.Java는 몇 버전을 사용하셨고 이유가 뭔가요 ?나는 보통 Spring과의 호환성을 위해 버전 업을 했다고 얘기한다.\

2024년 12월 4일
·
0개의 댓글
·
post-thumbnail

Mapper 사용기

프로젝트를 수행하는데 있어 DTO와 Entity간의 변환을 Mapper를 적용했다.확실히 코드의 길이는 줄어들었고 중복 부분도 많이 처리했다. 그렇다면 Mapper란 무엇이며 실제 적용 방법과 확장에 대해 기술해보겠다.

2024년 11월 29일
·
0개의 댓글
·
post-thumbnail

실시간 통신 분석 프로젝트 (테스트 지표 분석)

각 실시간 통신을 스프링 환경에서 구현하는 방법과 테스트 로직을 앞서 구현하였다. 이제는 각 통신 방법을 시나리오에 따라 테스트하고 결과를 분석해보겠다.테스트 시나리오를 구성할 때 몇가지 상황을 고려하였다.서비스가 시작되고 사용자들이 진입하는 상황 : 정상 진입 확인사

2024년 6월 20일
·
0개의 댓글
·
post-thumbnail

실시간 통신 분석 프로젝트 (각 방법의 구현 코드)

앞서 실시간 통신 방법에 대한 이론을 전체적으로 다뤄봤다. 이번에는 각 실시간 통신을 Spring 환경에서 구현하는 방법에 대해 설명하고 비교 분석 테스트를 위한 코드를 설명하겠다.‘그룹별 실시간 위치 공유’ 로직을 위한 테스트 코드를 작성할 것이다. 사용자가 각 좌표

2024년 6월 17일
·
0개의 댓글
·
post-thumbnail

실시간 통신 분석 프로젝트 (이론)

Polling, Long Polling, SSE, WebSocket, STOMP와 같은 실시간 통신 방법에 대한 이론

2024년 6월 17일
·
0개의 댓글
·
post-thumbnail

JVM (실행 관점)

Java Virtual Machine (자바 가상 머신)자바 기반 애플리케이션의 실행 환경 제공사용자 언어로 작성된 프로그램이 실행되기 위한 흐름에 대한 이해가 필요하다결국 사용자가 작성한 프로그램이 실행되기 위해서는 OS와의 통신이 필요하다.기계어로 변환된 코드가 사

2024년 5월 12일
·
0개의 댓글
·
post-thumbnail

RabbitMQ 비동기 처리와 데드레터 처리

FCM 오류 처리그룹 초대 , 친구 요청 서비스를 수행하는데 있어 ‘알림 전송 서비스’를 구현할 때 FCM을 사용했다. 1\. FCM 자체의 성능 개선을 위해 RabbitMQ을 사용함. 2\. FCM 요청에 있어 오류가 발생할 경우 처리를 위해 데드레터 처리기존 Spr

2024년 4월 21일
·
0개의 댓글
·
post-thumbnail

Resilience4j & 슬랙 모니터링

사용자 경로 제공에 있어 Kakao, Naver, Tmap Open API를 사용하였고 Open API에 장애가 발생한 경우 처리에 있어 유연한 처리가 필요함을 느낌Resilience4j를 통해 Open API에 장애가 발생한 경우 close - open - half

2024년 4월 20일
·
0개의 댓글
·
post-thumbnail

Open API 결과에 Redis Cache 적용기

사용자에게 경로를 제공하기 위해 Kakao, Naver, Tmap Open API를 사용한다. 위 API 제공에 있어 호출까지의 시간이 소요되고 비용 낭비가 발생이미 반환된 경로를 사용자가 재사용하는 경우가 많기 때문에 경로를 임시 메모리에 저장하는 로직 필요‘경로’

2024년 4월 20일
·
0개의 댓글
·
post-thumbnail

전략패턴을 이용한 단위 테스트 적용기

‘TWTW’의 테스트는 크게 Controller, Service, Repository Layer에서 진행되었다. 우리의 목표는 단위 테스트 적용이었다. 하지만 Service 테스트 코드 내에서 Repository를 통한 실제 DB 접근이 이루어져 완벽한 단위 테스트를

2024년 4월 20일
·
0개의 댓글
·
post-thumbnail

FULL TEXT INDEX 적용기

Like 연산의 문제점에 대한 분석 및 FULL TEXT INDEX 도입기

2024년 4월 20일
·
0개의 댓글
·
post-thumbnail

상속

Abstraction (추상화)Polymorphism (다형성)Inheritance (상속)Encapsulation (캡슐화)우리는 자동차라는 클래스를 생성했다. 근데 ‘소나타’ 라는 새로운 클래스를 작성해야 한다 가정하자. 소나타는 자동차가 가지고 있는 모든 정보를

2024년 1월 10일
·
0개의 댓글
·
post-thumbnail

[Java] 클래스 + 변수와 메서드

(Top - Down 방식)코드가 위에서부터 아래로 순차적 진행되는 형태자주 사용되는 코드를 함수로 만들어 중복 방지장점컴퓨터의 작업 처리 방식과 유사하기 때문에 시간적 유리단점유지보수가 어렵다.하나의 절차가 바뀐다면 ? : 전체에 대한 변경이 불가피하다.코드의 순서가

2024년 1월 9일
·
0개의 댓글
·
post-thumbnail

MapStruct 사용기

Java Bean 유형 간의 매핑 구현 단순화하는 코드 생성기컴파일 시점에 코드 생성 반복적 구현을 줄여준다.Annotation processor를 이용하여 객체 간 매핑 자동화MapStruct는 Lombok의 Getter,Setter,Builder를 이용한다.꺼내오는

2023년 11월 28일
·
0개의 댓글
·
post-thumbnail

DI-2

아키텍처 관점에서 특정 계층에 사용하는 어노테이션명명을 통해 직관적으로 구조를 파악할 수 있다.스프링은 자동으로 StereoType 어노테이션이 붙은 클래스들을 빈으로 등록한다.@ComponentScan의 감지 대상AOP 적용시 관점 적용을 위해 역할에 맞게 사용해야

2023년 11월 22일
·
0개의 댓글
·
post-thumbnail

DI - 1

IOC → 프로그램의 제어 흐름이 뒤바끼는 것스프링 관점에서 바라보자면 스프링 컨테이너가 빈 오브젝트에 대한 생성 및 생명 주기를 관리하는 것이다.이러한 IOC는 조금 더 포괄적인 개념으로 바라볼 수 있다. DI는 스프링에서 IOC 기능의 대표적인 동작 방식으로 바라

2023년 11월 22일
·
0개의 댓글
·
post-thumbnail

Decorator-Pattern

스타벅스의 주문 시스템수많은 추가 옵션과 파생 음료를 깔끔하게 포용할 수 있는 시스템을 설계하라 !가격 산출추가된 옵션에 따른 설명 변경기존 시스템UntitledUntitled첨가물의 종류가 많아진다면 → 새로운 메소드를 추가해야 한다.첨가물 가격이 바뀔 때마다 기존

2023년 11월 20일
·
0개의 댓글
·
post-thumbnail

Observer-Pattern

UntitledWeatherData온도 , 습도 , 기압각 정보를 최신화하여 디스플레이에 전달 !Display 종류현재 조건기상 통계기상 예보WeatherDataDisplay의 종류가 많아진다면? (확장성의 문제)늘어날때마다 measurementsChange() 메소

2023년 11월 15일
·
0개의 댓글
·
post-thumbnail

Spring - AOP (Proxy)

AOP의 등장 배경으로는 핵심 기능과 부가 기능의 분리였다. 그리고 AOP를 학습하다 보면 프록시라는 개념이 많이 등장한다. 오늘은 프록시에 대한 설명과 Spring AOP에서 프록시를 사용하는 방법에 대해 기술하겠다.목표 : 핵심 기능이 작성된 클래스와 부가 기능이

2023년 10월 8일
·
0개의 댓글
·