본문 바로가기

분류 전체보기

(63)
MSA(Microservices Architecture)란? MSA(Microservices Architecture)란?MSA(Microservices Architecture, 마이크로서비스 아키텍처)는 애플리케이션을 작은 독립적인 서비스들로 나누어 개발하고 운영하는 아키텍처 스타일입니다. 각 서비스는 특정 비즈니스 기능을 담당하며, 독립적으로 배포 및 확장이 가능합니다.1. MSA의 특징독립적인 서비스 구성각 마이크로서비스는 독립적으로 개발, 배포, 운영됩니다.특정 기능(예: 사용자 관리, 주문 처리, 결제 등)을 담당하는 작은 단위의 서비스로 구성됩니다.분산 시스템서비스 간 네트워크를 통해 통신하며, 보통 REST API, gRPC, 메시지 큐(Kafka, RabbitMQ) 등을 활용합니다.폴리글랏 프로그래밍각 서비스는 서로 다른 프로그래밍 언어, 프레임워크,..
잘된 REST API 설계 vs 잘못된 REST API 설계 ✅ 잘된 REST API 설계 vs ❌ 잘못된 REST API 설계REST API를 설계할 때 올바른 방식과 그렇지 않은 방식을 비교하여 이해하면 더욱 직관적으로 좋은 설계를 할 수 있습니다.1. 자원(Resource) 설계✅ 잘된 설계 (자원을 명확하게 표현)GET /users → 모든 사용자 조회GET /users/{id} → 특정 사용자 조회POST /users → 사용자 생성PUT /users/{id} → 사용자 전체 수정PATCH /users/{id} → 사용자 일부 수정DELETE /users/{id} → 사용자 삭제❌ 잘못된 설계 (동사를 URI에 포함하거나 RESTful하지 않음)GET /getUsers ..
REST API / REST / RESTful API 란 ? 안녕하세요 이번엔 RestAPI, REST, Restful 에 대해 알아보겠습니다.REST는 하이퍼미디어 기반 분산 시스템(WEB) 을 구축하기 위한 아키텍처 스타일입니다.REST의 등장 배경에는 분산 시스템에서의 효율적이고 확장 가능한 통신을 위한 표준을 제공하기 위해 만들어졌습니다.REST 가 무엇인가요?REpresentational State Transfer 의 약자로자원을 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다.즉, REST는 HTTP URI를 이용해 자원을 URI로 식별하고, HTTP 메서드(GET, POST, PUT, DELETE 등)를사용하여 자원에 대한 행위를 정의하고 상태를 전달합니다.그리고 이런 REST 아키텍처 스타일을 따르는 API를..
Cache#2 캐시에 대한 이해 📌 CacheCache는 컴퓨터 과학에서, 데이나 값을 미리 복사해놓는 임시 저장소를 가르킨다. 한글로는 고속완충기억기..지만 아무도 그렇게 안부른다성능향상을 위해 결과를 캐싱(저장)하여 값을 재사용하는 것이며 보통 사용하는 입장에서는 캐싱 여부를 알 수 없다.여러 분야에서 다양한 의미의 Cache가 사용되고 있지만,  스프링에서 말하는 캐시 추상화는 Java Method의 반환값 캐싱을 의미한다.참고로 스프링의 @Cacheable 어노테이션을 클래스에 달면, 해당 클래스의 모든 메서드에 캐시가 적용된다.📌 Cache 를 사용할 때 고려해야할 점1. 캐시는 만능이 아니다.캐시를 사용하는 목적은 성능의 향상과 서버 부하 방지이다. 자주 조회되는 곳에 사용해야 의미가 있다.캐시는 반복적으로 동일한 결과를..
Cache#1 스프링의 캐시 추상화(@Cacheable) Cache#1스프링의 캐시 추상화(@Cacheable)!https://blog.kakaocdn.net/dn/08rWR/btrKJ6gJT9H/OexB6JlmrYBLJYcepmUv3K/img.png스프링 프레임워크는 다른 서비스와의 통합 & 기능 추상화를 제공해준다. (RedisTemplate, RestTemplate, MailSender....)2012년 스프링 3.1버전부터 캐시 추상화(Cache Abstraction)을 제공해주며, 이는 2014년 스프링 4.1에서 여러가지가 개선되었다.스프링 프레임워크의 다른 서비스와의 통합(Integration) 관련 문서Integration As a lightweight container, Spring is often considered an EJB replace..
SaaS란? SaaS란?SaaS(Software as a Service)는 클라우드를 통해 소프트웨어를 제공하는 서비스 형태로, 사용자는 소프트웨어를 설치하거나 유지보수할 필요 없이 인터넷을 통해 바로 사용할 수 있습니다. 즉, SaaS는 소프트웨어를 구독 기반(월별 또는 연간 요금)으로 제공하는 클라우드 서비스 모델입니다.SaaS의 주요 특징클라우드 기반 제공인터넷만 연결되어 있으면 어디서든 접속 가능별도의 설치 없이 웹 브라우저에서 사용 가능구독형 요금제사용자 수 또는 사용량에 따라 요금이 부과됨초기 구축 비용이 적고 유지보수가 용이자동 업데이트 및 유지보수서비스 제공업체가 자동으로 최신 버전 업데이트 및 보안 패치를 수행사용자는 버전 관리나 서버 운영에 신경 쓸 필요 없음멀티 테넌시(Multi-Tenancy) ..
Growth Hacking(그로스 해킹)란? Growth Hacking(그로스 해킹)란?Growth Hacking(그로스 해킹) 은 제품이나 서비스를 빠르게 성장시키기 위해 데이터 분석, 마케팅, 제품 개발, 사용자 행동 분석을 결합하여 최적의 성장 전략을 찾아내는 기법이다.특히, 전통적인 마케팅보다 실험과 데이터 기반의 의사결정을 중시하며, 최소한의 비용으로 최대한의 성장을 이끄는 것이 핵심 목표다.✅ "Growth(성장)" + "Hacking(해킹)"👉 기존의 마케팅 기법을 넘어 창의적이고 실험적인 방식으로 성장을 촉진하는 기법1. 그로스 해킹의 핵심 개념1) 그로스 해킹의 핵심 원칙빠른 실행 & 반복적인 실험시장의 반응을 빠르게 확인하고, 효과가 없으면 즉시 수정 또는 폐기A/B 테스트, MVP(최소 기능 제품) 활용데이터 기반 의사결정감(..
Agile 개발이란? Agile 개발(애자일 개발)이란?Agile(애자일) 개발은 변화에 빠르게 적응하고, 지속적인 개선을 통해 효율적으로 소프트웨어를 개발하는 방법론이다. 기존의 전통적인 폭포수 모델(Waterfall model) 이 분석 → 설계 → 개발 → 테스트 → 배포의 단계를 순차적으로 진행하는 반면, 애자일은 짧은 주기(iteration)로 반복적인 개발과 개선을 수행한다.1. 애자일 개발의 핵심 원칙애자일 개발은 2001년 발표된 애자일 선언(Agile Manifesto) 를 기반으로 한다. 여기에는 다음과 같은 4가지 핵심 가치와 12가지 원칙이 포함되어 있다.1) 애자일의 4대 핵심 가치프로세스와 도구보다 개인과 상호작용을 중시문서나 프로세스보다 팀원 간 원활한 협업과 소통이 중요함.방대한 문서보다 동작하는..