CS7 CS 메세지 큐(Message Queue) 메세지 큐는 소프트웨어 간의 비동기적으로 메세지를 전달하기 위한 통신 시스템이다. 생산자와 소비자간의 데이터를 임시로 저장하는 중간 매개체 역할을 하며, 일반적으로 메세지의 안정적인 전달, 비동기 처리, 시스템 분산 및 확장성 향상에 도움이 된다. 메세지 큐의 구조1. 생산자(Producer)메세지를 생성하여 큐에 넣은 애플리케이션이나 서비스이다. 생산자는 특정 주제(Topic) 또는 메세지를 큐에 전달한다. 2. 소비자(Consumer)큐에서 메세지를 읽고 처리하는 애플리케이션이다. 소비자는 메세지 큐로부터 메세지를 가져와 작업을 수행한다. 3. 메세지 브로커(Message Broker) 생산자와 소비자 사이에서 메세지를 전달하고 큐를 관리하는 시스템이다. 브로커는 메세지의 순서, 전달 보장, 재시도 .. 2024. 12. 9. [Design Pattern]팩토리 메서드 패턴 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정한다. 즉 클래스의 인스턴스를 만드는 일을 서브클래스에 맡기는 것 ㅇ 개념상위 클래스에서 객체 생성의 인터페이스 정의상위 클래스는 객체를 생성하는 팩토리 메서드를 선언하지만, 구체적인 구현은 제공하지 않는다.객체 생성 로직의 캡슐화클라이언트는 객체 생성 방식을 알 필요 없이 팩토리 메서드를 호출해 객체를 생성한다.객체 생성 로직이 변경되어도 클라이언트의 코드에 영향을 받지 않는다.개방 폐쇄 원칙 준수새로운 객체 유형을 추가할 때 기존 클래스를 수정하지 않고 새로운 하위 클래스를 추가하여 확장할 수 있다. ㅇ 장단점장점개방-폐쇄 원칙 준수새로운 객체 타입을 추가하려면 기존 코드를 수정하지 않고 하위 클래스를 .. 2024. 11. 26. [Design Pattern] 템플릿 메서드 패턴 템플릿 메서드 패턴은 알고리즘의 골격을 정의한다. 이 패턴을 사용하면 알고리즘의 일부 단계를 서브 클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 특정 단계를 서브클래스에서 재정의할 수도 있다. 말 그대로 알고리즘의 템플릿(틀)을 만든다. 여러 단계 중 하나 이상의 단계가 추상 메서드로 정의되어 서브 클래스에서 구현된다.서브클래스가 일부분의 구현을 처리하게 하면서도 알고리즘의 구조는 바뀌지 않는다. ㅇ 구현 코드상위클래스 하위클래스1 하위클래스2 클라이언트 출력 ㅇ 장단점장점코드 재사용성알고리즘의 공통된 구조는 상위 클래스에서 정의하므로, 코드 중복을 줄이고 재사용성을 높인다.확장성하위 클래스가 특정 단계만 구현하거나 재정의하면 되므로, 새로운 동작을 추가하기 쉽다.알고리즘의 구조 .. 2024. 11. 26. [Design Pattern] 싱글톤(Singleton) 패턴 싱글톤 패턴은 간단하게 말하면 객체의 인스턴스를 한개만 생성되게 하는 패턴이다.생성자를 여러 번 호출하더라도 인스턴스가 하나만 존재하도록 보장한다. 즉 아래와 같은 상황에서 사용한다.프로그램 내에서 하나의 객체만 존재해야 한다.프로그램 내에서 여러 부분에서 해당 객체를 공유하여 사용해해야 한다.ㅇ 싱글톤 패턴의 장단점 장점유일한 인스턴스애플리케이션 전역에 단 하나의 인스턴스만 존재하도록 보장한다.객체의 일관된 상태를 유지하고, 전역에서 접근 가능하여 공유 자원의 관리를 편하게 한다.메모리 절약생성자를 여러 번 호출하여도 새로운 인스턴스를 생성하지 않아 메모리 점유 및 해제에 대한 비용을 줄인다.지연 초기화필요할 때만 객체를 생성하여 초기화 비용을 줄일 수 있다. 애플리케이션 시작 시 불필요한 자원 소모를.. 2024. 11. 26. CS 알고리즘 시간복잡도 시간 복잡도(Time Complexity)는 알고리즘이 처리하는 작업의 양이 입력 데이터의 크기에 따라 어떻게 변화하는지를 분석한 것이다. 입력 크기가 커짐에 따라 알고리즘이 얼마나 많은 시간을 소요하는지를 나타내는 척도라고할 수 있다. 주로 사용되는 빅오 표기법(Big-O Notation)에 대해 간단히 알아본다. ㅇ 빅오 표기법(Big-O Notation)O(1) - 상수 시간(Constant Time) (오-원)입력 크기와 상관없이 항상 일정한 시간이 걸리는 경우예 : 배열에서 특정 인덱스의 요소에 접근할 때 O(log n) - 로그 시간(Logarithmic Time) (오-로그-엔)입력 크기가 증가할 때, 시간이 로그 단위로 증가하는 경우예 : 이진 탐색(Binary Search) O(n) -.. 2024. 10. 7. CS 오토 스케일링(Auto Scaling)이란 오토 스케일링(Auto Scaling)은 클라우드 컴퓨팅 환경에서 시스템의 부하나 트래픽의 변화에 따라 자동으로 리소스의 수를 조정하는 기능이다. 애플리케이션이나 서비스가 고가용성과 성능을 유지하면서 효율적인 비용으로 운영될 수 있도록 돕는다. (클라우드의 유연성을 극대화 하는 핵심 기술이라 할 수 있다.) ㅇ 스케일링(Scaling)스케일링이란 컴퓨팅 시스템에서 성능과 처리능력을 향상시키거나 감소시키는 과정을 말한다. 클라우드 환경에서는 VM 인스턴스 또는 VM 인스턴스의 컴퓨팅 파워를 늘리는 것을 말한다. 스케일링의 종류 스케일 업(Scale Up)서버에 더 많은 리소스(CPU, 메모리, 스토리지)를 추가하여 성능을 향상 시키는 방법(쉽게 컴퓨터 사양을 업그레이드 한다고 생각하면 된다.)클라우드 환경.. 2024. 9. 19. CS Cloud VS On-Premise ㅇ Cloud(클라우드 컴퓨팅)클라우드 컴퓨팅은 인터넷을 통해 컴퓨팅 리소스(서버, 저장소, 네트워크)등을 제공 받아서 사용하는 방식이다. 사용자는 필요에 따라 자원을 임대하여 사용하며, 별도의 물리적 하드웨어나 인프라를 직접 관리할 필요가 없다. 클라우드는 확장성과 유연성을 제공하며, 서비스 제공 업체가 하드웨어와 소프트웨어를 관리하고 유지 보수하는 책임을 가진다. 대표적인 서비스 제공 업체로는 AWS, Microsoft Azure, Google Cloud 등이 있다. cloud의 장점비용 절감초기 비용 절감: 물리적 서버나 데이터 센터를 구축할 필요 없이, 필요한 만큼의 리소스를 제공 업체에서 임대할 수 있어 구축 비용을 절감할 수 있다.운영 비용 절감: 사용한 리소스만큼의 비용을 지불하는 종량제 요.. 2024. 9. 10. 이전 1 다음