전체 글484 [MSA] 마이크로 서비스 아키텍처, 설계 전략, 사례 지난 번에 마이크로 서비스 아키텍처(MSA, Micro Service Architecture)가 무엇인지 정의를 정리 해봤습니다.이번엔 MSA를 활용할 수 있는 전략에 대해 정리 해보려 합니다.MSA 기반으로 설계하는 이유는 운영을 잘 하기 위해서 라고 생각합니다.구체적으로 장애에 치명적인 타격을 예방하고, 확장의 유연성을 고려하며, 운영하는데 인력을 효과적으로 분배하기 위함 이라 생각합니다.이렇게 하려면 어떤 식으로 MSA를 구상해야 할지 한번 고민해보려 합니다.특히 대규모 서비스를 담당하는데 모노리틱 보단 MSA 기반 설계가 유리했습니다.대규모 서비스를 제공하는 기업에선 MSA를 어떤 서비스에 적용했는지 AI로 확인해습니다.Amazon:Amazon은 수많은 마이크로 서비스를 사용하여 규모가 큰 e-c.. 2024. 5. 28. [MSA] 마이크로서비스 아키텍처, 모노리틱 아키텍처 이해하기 소프트웨어 아키텍처 중에서 크게 두가지 분류가 있습니다.- 모노리틱 아키텍처(Monolithic Architecture)하나의 어플리케이션 안에 모든 소스가 들어있는 구조입니다.(뷰, 컨트롤러, db접근, 핵심로직 등)어플리케이션을 실행파일로 말아서 내보내면, 독립적으로 바로 실행 가능한 어플리케이션이 됩니다.다른 어플리케이션과 연동 없이 단독적으로 수행도 가능합니다.특징 및 장점간편한 개발 : 전체 애플리케이션을 하나로 처리하기 때문에, 개발툴 등에서 하나의 프로젝트로 개발하면 됩니다.간편한 배포 : 테스트 및 배포도 단일 어플리케이션 하나로 수행합니다. 상대적으로 단순합니다.운영 측면에서 다운 되더라도 큰 영향이 없거나 다른 서비스에 영향이 가도 문제가 덜한 프로그램 이라면 유리할 수 있습니다.단점긴.. 2024. 5. 28. [javascript] 익명함수,즉시실행함수,화살표함수 자바스크립트에서 지원하는 함수의 종류 중에, 자바처럼 함수를 선언해서 사용하거나람다를 선언해서 사용하는 방법 처럼 여러 가지 방법으로 함수를 선언할 수 있다.특히 다양한 기법으로 함수를 선언함으로써 코드 수를 줄이고 아는 사람만 알아볼 수 있도록 하는 것이 목적이다.성능의 목적으로 쓰이기도 하지만, 자바스크립트 특성상 함수를 제대로 불러오지 못하는 경우도 있어서, 그냥 자주 쓰인다고 알아두면 좋다.익명함수말그대로 이름이 없는 함수. 익명 함수를 선언 할 때는 이름을 붙이지 않는다.함수자체가 '식'이기 때문에 함수를 변수에 할당할 수 있다. 또한 다른 함수의 매개변수로 사용할 수 있다.단 한번만 사용되는 함수의 경우, 불필요한 시간동안 메모리를 차지하지 않도록 익명함수로 구현한다면, 정확히 해당 함수가 필.. 2024. 5. 22. [javascript] 배열 선언 // 2가지가 있다.let arr1 = [];let arr2 = new Array(); const arr1 = [];const arr2 = ['white', 'red', 'black'];document.write('arr1 : ' + arr1 + '');document.write('arr1의 길이 : ' + arr1.length + '');document.write('arr2 : ' + arr2 + '');document.write('arr2의 길이 : ' + arr2.length + '');const arr = ['apple', 1, true, [100, 200]];document.write('arr : ' + arr + '');document.write('arr의 길이 : ' + arr.length .. 2024. 5. 22. [Spring] Spring boot 프로젝트에서 application.properties와 application.yml 파일이 동시에 존재할 스프링 부트 프로젝트에서 application.properties와 application.yml 파일이 동시에 존재할 경우, 스프링 부트는 두 파일을 모두 읽어들입니다. 설정은 다음과 같은 규칙에 따라 적용됩니다:우선순위: 스프링 부트는 application.properties와 application.yml 파일의 설정을 병합하여 사용합니다. 만약 동일한 설정 키가 두 파일에 모두 존재하면, application.properties 파일의 설정이 우선적으로 적용됩니다.병합 방식: 두 파일의 설정은 병합됩니다. 즉, 두 파일에 중복되지 않은 설정 키들은 모두 적용되며, 중복된 설정 키는 앞서 언급한 우선순위 규칙에 따라 적용됩니다.예를 들어, 아래와 같은 두 파일이 있을 때:# application.pro.. 2024. 5. 21. [redis] 캐싱 전략(Caching Strategies) 정리하기, 어떤 식으로 설계하고 사용할 것인가? 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템인 redis를 사용하려면, 설치하고 어플리케이션에 캐싱을 사용하기 위한 로직을 넣어줘야 합니다.그러려면 소프트웨어 아키텍처 설계를 해야 하고, 이 과정에서 캐싱을 언제 어떤 과정으로 사용할지 설계가 들어가야 합니다.그러다보니 캐싱 전략을 사용하지 않는 어플리케이션에서 캐싱을 도입하려면, 어플리케이션에 캐싱할 서비스나 위치에는 많은 수정이 들어가게 됩니다.이를 조금 더 편리하게 제공하기 위해 완전관리형으로 제공하는 aws서비스 중 elasticache와 rdb를 연계시켜 사용할 수도 있습니다.그러나 조금 더 개념적인 부분에서 캐싱을 어떤식으로 어플리케이션에 구현할 지 다루는캐싱 전략(Caching Strategies)에 대해 정리해보려 합니다.레디스를 어.. 2024. 5. 20. [redis] 캐싱, 활용할 데이터 선정, 고려할 점 이전엔 캐싱을 사용할 수 있는 redis가 무엇인지 정리해봤습니다.그런데, 모든 데이터를 캐싱 적용 하면, 성능이 올라갈까?redis는 메모리에 값을 저장해 db에 저장하는 것 보다 값을 빠르게 불러오도록 해주지만, 저장장치에 저장된 데이터를 메모리에도 모두 저장시킨다면 자원이 많이 필요하게 될 것이라 생각합니다.수정이 자주 일어나는 작업이라면 캐싱을 쓰지 않는 부분이 더 나을수도 있으며,사용 빈도가 높지 않은 데이터라면 캐싱을 안쓰더라도 별 영향이 없을 수도 있습니다.또한 메모리에 지속적으로 보관할 지, 아니면 수명 정책을 걸어 일정 시간이 지나면 삭제하고 메모리 여유를 둘지 고민해야 합니다.이런 부분들을 고려하여 캐싱을 적용할 정책, 기준을 정하는 것이 필요합니다.1. 데이터에 만료 정책 적용하기캐.. 2024. 5. 20. [redis] 메모리 기반 캐싱기능을 지원하는 레디스 알아보 Redis는 빠른 성능과 유연성으로 많은 개발자들에게 인기 있는 오픈 소스 인-메모리 데이터 스토어입니다. 프로젝트에 따라 다양한 활용 방법이 있겠지만, 일반적으로 Redis는 다음과 같은 경우에 유용합니다:캐싱: 데이터베이스 쿼리 결과나 계산된 값 등을 임시로 저장하여 빠른 응답 속도를 제공합니다.세션 관리: 사용자 세션 정보를 저장하여 웹 애플리케이션의 상태를 유지합니다.메시지 브로커: 메시지 큐를 통해 서비스 간 메시지를 전달하고 처리합니다.실시간 애플리케이션: 채팅, 게임 서버 등 실시간으로 데이터를 교환해야 하는 애플리케이션에 적합합니다.Java와 Spring Boot를 사용하여 REST API 서비스에 Redis 캐시를 적용하는 간단한 예제가 있습니다.샘플 프로젝트를 시작하기 전에, Redis.. 2024. 5. 20. [IntelliJ] 플러그인 추천 2 인텔리제이로 개발하다보니 플러그인을 설치해서 사용하는 편입니다.IntelliJ 에서 플러그인이란?개발하는데 도움을 받을 수 있는 도구를 말하며, 자동완성, 디자인, 외부 서비스 연동(git 등), 테스트에도움을 받을 수 있는 툴 들이며, 업데이트도 주기적으로 제공하므로 업데이트하며 사용 가능하다.플러그인을 통해 개발 효율을 올릴 수 있다.기존 게시물에서 시기가 지난만큼 2탄을 만들어 보려 합니다.변경사항 확인- 기존 Presentation Assistant 은 IntelliJ ultimate 에서 기본설정으로 채택되어 옵션에서 확인가능1. Atom Material Icons메뉴의 아이콘을 보기 좋게 바꿔준다.미적 효과와 가독성이 올라간다.2. AiXcoder Code Completer코드 자동 완성을 도.. 2024. 5. 17. 이전 1 2 3 4 5 ··· 54 다음