분류 전체보기 477

Spring Boot 에서 Redis Cache 사용하기

이번 포스팅에서는 이전 포스팅에서 못 다한 Spring Redis Cache 를 사용해보고자 합니다.코드는 Github 에 있습니다.💡Redis 묶음Redis 란 (특징, 주의점, 동작 구조)Spring 에서 Redis 사용하기 (설정, In-memory DB, Transaction)✔️ Spring Boot 에서 Redis Cache 사용하기  [목차]Cache ManagerRedis Cacheconfig@Cachable@CachEvictCache hits 모니터링 종류Spring Cache AbstractionSpring 에서는 캐시 기능 자체에 대해서 특정 기술에 종속되지 않게 추상화를 제공합니다.AOP 를 이용한 어노테이션을 활용하여 특정 기술에 종속되지 않고, 애플리케이션에 캐싱 기능을 부여할..

Spring/Spring Boot 2024.07.02

Spring 에서 Redis 사용하기 (설정, In-memory DB, Transaction)

본 포스팅은 다음과 같은 환경 아래에서 진행합니다. JDK 17, Spring Boot 3.x, Gradle 💡Redis 묶음Redis 란 (특징, 주의점, 동작 구조)✔️ Spring 에서 Redis 사용하기 (설정, In-memory DB, Transaction)Spring Boot 에서 Redis Cache 사용하기 이번 포스팅에서는 Spring 에서 제공하는 Spring Data Redis 를 사용하여 Redis 를 이용하는 방법에 대해 기록하고자 합니다.대부분의 내용이 Spring Data Redis 공식문서 내용 정리입니다. [목차]의존성추가Redis 연결Redis ConnectionRedisTemplateRedisTemplateStringRedisTemplateRedis Repository..

Spring/Spring Boot 2024.07.01

[한빛앤 MSA 세미나] 서비스 장애 잘 이해하고 대비하기 | 박순영

한빌앤 MSA 세미나 2-7 : 볼트업 CTO 박순영 연사님의 "서비스 장애 잘 이해하고 대비하기" 오프라인 세미나를 듣고 정리한 글 입니다.✔️ 세미나 Keyword : Reliability서비스 장애를 주제로 어떤 원인에 의해서 발생하는지 이해하고 정의 내리고, 이를 잘 대응할 수 있도록 해보자 [목차]어디까지 장애라고 볼 수 있을까?장애는 어떻게 잘 대응할 수 있을까?장애를 예방할 수 있을까?부록: 장애 대응의 2가지 사례(1) 장애의 정의 (어디까지 장애일까?)🧐 간단한 오류도 장애에 포함해야 할까? → 장애를 나누는 기준 1. 서비스 장애의 기준# 민감도와 심각도민감도 (범위)사용자 범위장애 발생 시 어떤 사용자까지 피해를 보고 있는가 (개발자, 내부자, 전체 사용자 등)→ 즉, 장애/오류를 ..

Redis 란 (특징, 주의점, 동작 구조)

💡Redis 묶음✔️ Redis 란 (특징, 주의점, 동작 구조)Spring 에서 Redis 사용하기 (설정, In-memory DB, Transaction)Spring Boot 에서 Redis Cache 사용하기  [목차]Redis 란Redis 특징Redis 사용시 주의사항Redis 동작 구조Redis 란 무엇일까Redis - Remote dictionary server (외부 딕셔너리[key : value] 구조의 서버)Redis 는 Key, Value 의 구조를 가지는 비정형 데이터를 저장하고 관리하는 비 관계형 데이터베이스 관리 시스템(DBMS) 입니다.Redis 는 DataBase, Cache, Message Broker (Pub/Sub)으로 주로 사용됩니다.Redis 는 인 메모리 데이터 구..

DataBase/Redis 2024.06.19

@Transactional 동작과정 살펴보기 (with. Spring AOP)

이번 포스팅에서는 Spring 에서 제공해주는 @Transactional 어노테이션의 동작과정에 대한 공부한 것을 기록합니다. @Transactional 은 Spring 에서 제공해주는 어노테이션입니다.@Transactional이 제공하는 기능은  해당 어노테이션이 붙은 시점의 작업단위를 하나의 트랜잭션 단위로 묶어 관리할 수 있도록 합니다.어노테이션은 단지 주석일 뿐이고, 실제로 런타임 시에 어떠한 일이 일어나 해당 어노테이션이 우리가 원하는 기능을 제공해주는지 일련의 과정을 살펴보고자 합니다. Spring 에서 어노테이션을 처리하는 방법이 몆가지 있다고 하는데, 이번 포스팅에서는 @Transactional 이 목표이기 때문에 해당 내용은 넘어가겠습니다.@Transactional 은 AOP 기반으로 처..

Spring/Spring Boot 2024.06.16

OpenAPI 와 스웨거를 활용한 실전 API 설계 (feat. 요구사항으로 부터 도메인 모델링하기)

Designing APIs with Swagger and OpenAPI(OpenAPI 와 스웨거를 활용한 실전 API 설계) - 조시 포널랫, 루카스 로젠스톡 의 책을 읽고 특정 부분을 정리한 글입니다. OpenAPI를 더 유연하게 사용할 수 있는 방법을 기대한 책이었지만, 프로젝트를 전반적으로 진행하며 클라이언트와 서버간의 협업과정에서의 도메인 모델을 상세하게 구축해나가는 부분이 인상깊어 책의 전체 내용이 아닌 해당 부분에 대해서만 정리하고자 합니다. 📌 체크포인트해당 책에서는 [펫시터 구인구직 서비스] 라는 가상의 서비스를 주제로 설계해 나갑니다.[목차]도메인 모델링과 APIAPI 에 사용할 도메인 모델링도메인 모델 추출하기모델에 사용되는 개념 추출하기 - 펫시터 도메인 모델도메인 모델에 속성 추출..

클래스 다이어그램 정리

최범균님의 - UML 기초 01 - 클래스 다이어그램 유튜브 강의를 정리한 글입니다.link : https://www.youtube.com/watch?v=HG0dwNnTsII&list=PLwouWTPuIjUgd-1167R5\_6gTBsp\_9cfu3 1. 클래스 다이어그램이란객체의 타입을 표현타입 간의 정적 관계 기술전달하고자 하는 내용 위주로 표시반드시 모든 것을 다 표시하는 것이 아님UML로 완벽하게 표현할 수도 없음2. 클래스 다이어그램 구조클래스 이름속성오퍼레이션1) 속성 표기법가시성 이름 : 타입 = 기본값가시성 : +(public), -(private), #(protected), ~(package)2) 오퍼레이션 표기법가시성 이름 (매개변수 목록) : 리턴타입3. 연관관계 (associatio..

객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향 | 조영호

2년 전에 읽었던 객사오를 다시 읽고, 책의 내용을 정리한 글입니다. [목차] 협력하는 객체들의 공동체 객체란 무엇일까 협력하는 사람들 협력 속에 사는 객체 메세지와 메서드 이상한 나라의 객체 객체와 소프트웨어 나라 객체와 상태 상태 캡술화 행동이 상태를 결정한다. 타입과 추상화 추상화를 통한 복잡성 극복 객체지향과 추상화 객체의 일반화와 특수화 역할, 책임, 협력 책임의 분류 대체 가능성 책임 주도 개발 책임과 메세지 다형성 유연하고 확장가능하고 재사용성이 높은 협력의 의미 객체 인터페이스 인터페이스와 구현의 분리 도메인 모델 1. 협력하는 객체들의 공동체 1) 객체란 무엇일까 ✔️ 객체란 현실 세계에 존재하는 사물에 대한 추상화이다. ✔ 객체 지향의 목표는 실세계를 모방하는 것이 아닌, 오히려 새로운..

육각형 개발자 - 시니어 개발자로 성장하기 위한 10가지 핵심 역량 | 최범균

최근에 진행하게 된 스터디에서 읽게된 책인데 편하게 잘 읽히고 기억하고 싶은 내용이 있어 기록으로 남겨보고자 합니다. 1장 들어가며 1) 개발이란 ✔️ 서비스 기업에서의 개발은 사용자에게 기능을 제공하는 일이다. ✔️ 고객의 요구를 파악하고 원하는 것을 충족하는 기능을 만드는 것이 개발이다. ✔️ 개발은 단순히 경력을 쌓거나 관심 있는 기술을 사용하기 위한 과정이 아니었다. ✔ 개발은 회사와 나에게 돈을 벌어주는 기능을 만드는 과정이기도 했다. 내가 만든 결과물은 직간접적으로 회사의 수익과 연결된다. ✔️ 회사 규모가 작을수록 개발 결과물이 회사가 생존하는 데 큰 영향을 준다. ✔️ 코딩과 구현 기술은 개발의 일부이지 개발의 전부는 아니다. ✔️ 개발자가(저자가) 성장한다는 느낌을 받지 못한 이유 중 하..

Spring Rest Docs Enum class 문서화 하기

개발환경 : Java 17, Spring 3 현재 사이드 프로젝트에서 Rest Docs + Swagger UI 를 사용 중 입니다. (참고 → restdocs + swagger ui 같이사용하기) 보통 상태나 선택 특정 목록같은 딱딱 선택지가 정해져있는 상태값은 Enum 으로 관리하는 걸 선호하는 편인데, 이게 RestDocs 를 사용하지만, Open API 를 사용하여 바로 Swagger UI 에 적용되는 json 파일을 자동적으로 만들어주다보니, Enum 클래스에 대한 문서 지원이 되지않아 (찾지못해) 신경이 좀 쓰였습니다. 그래서 이번 글에서는 Rest Docs 와 Open API를 이용한 Swagger UI 적용환경에서 ENUM 클래스를 어느정도 문서화하기 편한 상태로 만든 방법에 대해 공유하고자..

Spring/Spring Boot 2024.03.19