본문 바로가기

분류 전체보기489

프로토타입(Prototype) 패턴 🤔문제객체가 있고 그 객체의 정확한 복사본을 만들고 싶다고 가정하면, 어떻게 해야 할까?먼저 같은 클래스의 새 객체를 생성해야 한다. 그런 다음 원본 객체의 모든 필드들을 살펴본 후 해당 값들을 새 객체에 복사해야 한다. 하지만 함정이 있다. 객체의 필드들 중 일부가 배공개여서 객체 자체의 외부에서 볼 수 없을 수 있으므로 모든 객체를 그런 식으로 복사하지 못한다. 이 직접적인 접근 방식에는 한 가지 문제가 더 있다. 객체의 복제본을 생성하려면 객체의 클래스를 알아야 하므로, 코드가 해당 클래스에 의존하게 된다는 것이다. 또, 예를 들어 메서드의 매개변수가 일부 인터페이스를 따르는 모든 객체를 수락할 때 당신은 그 객체가 따르는 인터페이스만 알고, 그 객체의 구상 클래스는 알지 못할 수 있다. 😎해결.. 2024. 4. 30.
단일 장애 지점(SPOF)에 대해서 단일 장애 지점(Single Point Of Fail, SPOF)이란?단일 장애 지점(SPOF)은 시스템이나 네트워크의 한 부분이 고장 났을 때 전체 시스템의 가동이 멈추는 상황을 말한다.이런 지점은 시스템의 취약점으로 작용하고, 이를 해결하지 않으면 예기치 못한 상황에서 전체 시스템이 마비될 수 있다. 데이터베이스 서버핵심 네트워크 스위치주요 애플리케이션 서버등이 하나만 존재할 때 발생한다. 이런 중요한 구성 요소가 장애를 일으키면 전체 서비스가 정지하는 위험이 있다. 백엔드 개발에서 단일 장애 지점(SPOF)은 주로 중요한 서버나 네트워크 장비와 같은 핵심 자원에서 발생한다.예를 들어, 모든 웹 트래픽을 단일 서버가 처리하는 경우나, 모든 데이터를 한 개의 데이터베이스 서버에서 저장하는 경우가 있다... 2024. 4. 29.
C# [백준 BAEKJOON] 1935번 후위 표기식2 문제후위 표기식과 각 피연산자에 대응하는 값들이 주어져 있을 때, 그 식을 계산하는 프로그램을 작성하시오. 입력첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이는 100을 넘지 않는다) 그리고 셋째 줄부터 N+2번째 줄까지는 각 피연산자에 대응하는 값이 주어진다. 3번째 줄에는 A에 해당하는 값, 4번째 줄에는 B에 해당하는값 , 5번째 줄에는 C ...이 주어진다, 그리고 피연산자에 대응 하는 값은 100보다 작거나 같은 자연수이다.후위 표기식을 앞에서부터 계산했을 때, 식의 결과와 중간 결과가 -20억보다 크거나 같고, 20억보다 작거나 같은 입력만 .. 2024. 4. 26.
깃허브 코파일럿(GitHub Copliot) 무료로 사용해보기 Take flight with GitHub Copliot깃허브 코파일럿의 가격 및 포함 기능에 대해서 알아보자. 사이트 링크GitHub Copilot · Your AI pair programmer 💰가격Copilot Individual$10 USD per month (13,000원) / $100 USD per year  (130,000원)Copilot Business$19 USD per user / month (26,000원)Copliot Enterprise$39 USD per user / month (53,000원) ⚡주요 기능채팅(Chat)무제한 메세지와 상호작용문맥-기반 코딩 서포트와 설명디버깅과 보안 관련 지원코드 완성(Code completion)실시간 코드 제안코드 관련 코맨트스마트 액션(S.. 2024. 4. 25.
빌더(Builder) 패턴 🤔문제많은 필드와 중첩된 객체들을 힘들게 단계별로 초기화해야 하는 복잡한 객체를 상상해 보자. 이러한 초기화 코드는 일반적으로 많은 매개변수가 있는 괴물 같은 생성자 내부에 묻혀 있다. 또, 더 최악의 상황에는 클라이언트 코드 전체에 흩어져 있을 수도 있다.예를 들어 House(집) 객체를 만드는 방법에 대해 생각해 보자. 간단한 집을 지으려면 네 개의 벽과 바닥을 만든 후 문도 설치하고 한 쌍의 창문도 맞춘 후 지붕도 만들어야 한다. 하지만 뒤뜰과 기타 물품(난방 시스템, 배관 및 전기 배선 등)이 있는 더 크고 현대적인 집을 원하면 어떻게 해야 할까? 위 문제의 가장 간단한 해결책은 기초 House 클래스를 확장하고 매개변수의 모든 조합을 포함하는 자식 클래스들의 집합을 만드는 것이다. 그.. 2024. 4. 24.
추상 팩토리(Abstract Factory) 패턴 🤔문제예를 들어 가구 판매장을 위한 프로그램을 만들고 있다고 가정해 보자. 코드는 다음을 나타내는 클래스들로 구성된다. 관련 제품들로 형성된 패밀리(제품군), 예: Chair(의자) + Sofa(소파) + CoffeeTable(커피 테이블)해당 제품군의 여러 가지 변형. 예를 들어 Chair(의자) + Sofa(소파) + CoffeeTable(커피 테이블) 같은 제품들은 Modern(현대식), Vi.. 2024. 4. 24.