Home
marshmel.log
Cancel

[MSA 4] Maven Repository로 MSA 환경에서 DTO 공유하기(maven central)

maven central은 여러가지 dependency를 저장해 놓은 패키지 저장소이다. 프로젝트에 필요한 의존성을 import 하여 사용할 수 있다. MSA 환경에서 Maven repository의 필요성 MSA 환경에서는 DTO(Data Transfer Object)를 공유하게 되는 경우가 발생한다. 마이크로 서비스 간의 통신이나 이벤트 발생 ...

[MSA 3] Custom annotation과 AOP를 이용한 멱등성을 보장하는 알림 전송하기

알림 시스템 구조 [MSA 2] AWS SQS를 이용한 알림 시스템 설계 및 구현 알림 시스템은 위와 같이 구성되어 있다. 여러 micro service에서 이벤트가 발생하게 되면 SNS나 SQS에 메세지를 publish하게 된다. Notification service는 SQS에 담겨 있는 메세지를 polling 받아 알림을 전송하고 알...

[MSA 2] AWS SQS를 이용한 알림 시스템 설계 및 구현

프로젝트를 설계할 때는 알림 시스템을 간단하게 생각하고 설계했었다. 하지만 알림을 구현하기 시작하면서 재 설계의 필요성을 느꼈다. 알림 시스템의 요구사항 알림 템플릿 먼저 알림 시스템의 템플릿을 알아보자. 배송이 시작되었습니다. [알림 메세지] https://mypage [연관된 페이지] 알림 형태 수신자 ...

[MSA 1] spring cloud로 프로젝트 초기 세팅하기

MSA 아키텍처로 설계하기 아키텍처에는 대표적으로 monolithic, micro service architecture 가 있다. 클라이언트와 서버가 합쳐진 하나의 거대한 아키텍처이고, msa는 작고 독립된 서비스들로 구성된 아키텍처로 독립적인 배포와 서비스별로 다른 기술을 사용해도 되는 장점을 가지고 있다. 독립적 배포와 장애 확산을 줄일 수 있...

Vite 사용해보기

Vite 란?? Vite(프랑스어로 “빠르다(Quick)”를 의미하며, 발음은 “veet”와 비슷한 /vit/ 입니다.)는 빠르고 간결한 모던 웹 프로젝트 개발 경험에 초점을 맞춰 탄생한 빌드 도구이며, 두 가지 컨셉을 중심으로 하고 있습니다. 개발 시 네이티브 ES Module을 넘어 더욱 다양한 기능을 제공합니다. 가령, Ho...

AOP with java

AOP란?? AOP는 Aspect Oriented Programming으로 관점 지향 프로그래밍으로, Cross cutting concern(횡단 관심사)의 분리를 허용하여 모듈성을 증가시키는 것이 목적인 프로그래밍 방법론, 패러다임이다. 위키백과 Cross cutting concern (횡단 관심 모듈) 서비스의 비즈니스 로직을 포함하는...

[Effective Java] Generic에 대하여…

최근 JDBC를 이용해 정말 간단한 이커머스 CRUD를 개발하면서 팀원들과 제네릭 사용에 대해 많이 고민했다. 제네릭을 따로 정의해서 사용해본 경험이 거의 없었기 때문에 정확히 왜 사용하고 어떤 점에서 타입 안정성이 보장된다고 하는지 알고 싶어 Effective Java에 제네릭 부분을 읽고 정리하게 되었다. Generic이란? Java 5 부터 ...

[Effective Java] 싱글턴과 빌더 패턴

Effective Java를 읽으며 정리한 내용입니다. Builder 패턴 Builder는 spring boot에서 @Builder 어노테이션으로 많이 사용했었다. 이번 글에서는 lombok에서 제공되는 어노테이션이 아닌 직접 빌더 패턴을 만들어 본다. 생성자에 매개변수가 많다면 빌더를 고려하라 - item2 점층적 생성자 패턴 ...

SSAFY 8기 후기 및 취업 후기

2022.07 부터 2023.07까지의 회고를 담은 포스팅입니다. SSAFY 8기 시작 엘리스 AI 트랙 4기를 마치고 바로 SSAFY 8기를 합격해 1년간 교육을 받았다. SSAFY 8기 합격 후기 1학기 강의 교육과 2학기 프로젝트 수행으로 시간을 보냈다. SSAFY에서 Spring boot 기반의 백엔드는 처음 접했지만 재밌었다. 2...

REST API의 특징과 설계

API란 무엇인가 ? API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말입니다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있습니다. 이 계약은 요청과 응답을 사용하여 두 애플리케이...