Develop/Etc

Develop/Etc

[Cache/Spring] EhCache vs Cache2k vs Caffeine 캐시 비교하기

사이드 프로젝트에 캐시를 적용하며 이것저것 알아보는 시리즈 1. [Spring] 캐시란? + Spring Boot 내장 캐시 알아보기2. [Cache/Spring] EhCache vs Cache2k vs Caffeine 캐시 비교하기3. [Cache/Spring] 내 어플리케이션의 캐시 히트율 알아보기  개요 포스팅을 작성하는 24년 기준, Spring Boot에서 공식적으로 Auto-configuration을 지원하는 캐시 라이브러리는 Ehcache, Cache2k, Caffeine 3가지가 있다. 캐시 그게 그거 아니야? 싶지만 각 라이브러리별 지원하는 기능과 관리법이 다르니 각각을 간단하게 비교해보자.  용어 정리 용어의미로컬 캐시, 글로벌 캐시이전 포스팅 참고Eviction데이터 공간(메모리) 확..

Develop/Etc

[객체지향] 일급 컬렉션 (First Class Collection)

개요 마틴 파울러의 소트웍스 앤솔로지에 나오는 객체지향 생활 체조 원칙 (Object Calisthenics) 중 이런 항목이 있다. '일급 컬렉션(first-class)을 쓴다'. 객체지향과 클린 코드를 논할때면 단골 손님처럼 등장하는 일급 컬렉션에 대해 알아보자. 일급 컬렉션이란? 일급 컬렉션(First Class Collection)은 컬렉션을 Wrapping하면서, 해당 컬렉션 이외의 다른 멤버 변수를 가지지 않는 클래스를 의미한다. 컬렉션을 단순 데이터로 보지 않고, 하나의 논리 (도메인) 객체로 취급하여 데이터와 데이터를 조작하는 로직을 하나의 클래스로 캡슐화 하는 것이라고 이해하면 된다. List members = new ArrayList(); 이렇게 만든 코드를 class Members {..

Develop/Etc

[클린 코드] 클래스 응집도의 중요성, 그리고 완전 생성자와 값 객체

개요 최근 클린 코드에 대한 내용을 다루는 내 코드가 그렇게 이상한가요? 라는 책을 읽는 스터디에 참여하게 되었는데, 첫 주차 미팅에서 흥미있게 읽은 부분 일부를 정리해보려고 한다. ( + 혹시 클린 코드 책 (로버트 C. 마틴의 그거그거)에 관한 정보인 줄 알고 들어오셨다면 길 잘못 드신 거라는 삼삼한 사과의 말씀과 함께 시작하겠습니다.. 홀홀 ) 클래스 응집도가 낮을 때 생기는 문제들 객체 지향에 대해 공부하다보면 자주 접하게 되는 몇 가지 권고 사항들이 있다. 그 중 하나가 바로 '결합도는 낮추고 응집도는 높여라' 다. 응집도를 높여야 하는 이유는 관련 로직들을 한 곳에 집중시켜 개발자로 하여금 코드 의미를 파악하기 쉽게 하고, 기능 변경이나 확장으로 인한 유지 보수를 쉽게 만들고, 코드 재사용을 ..

Develop/Etc

[Design Pattern] Facade 패턴과 이모저모

개요 최근 좋은 기회로 새로운 팀에 합류하게 되었다🚀 사이드 프로젝트를 진행하기 위해 백엔드 개발 방식을 논의하던 중, 아래와 같은 제안을 마주했다. Facade 컴포넌트..? Facade 패턴을 책에서 읽긴 했지만, 스프링 부트 프로젝트를 하면서 직접 사용해 본 적은 없어서 감이 쫌 안잡혔다. Interface와 Implementation으로 나누는 거랑 크게 다른건가? 🤔 그래서 오늘은 퍼사드 패턴에 대해 다시 한 번 복기하고, SRP 원칙과 연관하여 살펴보려고 한다 🚀 퍼사드 패턴 (Facade Pattern) 일단 스프링에 퍼사드를 적용하기 전에 퍼사드 패턴이 뭔지부터 알아보자. 퍼사드 패턴의 정의는 아래와 같다. 서브 시스템에 있는 일련의 인터페이스를 통합 인터페이스로 묶는 것. 고수준 인터페이..

스껄한우디
'Develop/Etc' 카테고리의 글 목록