본문 바로가기

분류 전체보기490

추상 팩토리(Abstract Factory) 패턴 🤔문제예를 들어 가구 판매장을 위한 프로그램을 만들고 있다고 가정해 보자. 코드는 다음을 나타내는 클래스들로 구성된다. 관련 제품들로 형성된 패밀리(제품군), 예: Chair(의자) + Sofa(소파) + CoffeeTable(커피 테이블)해당 제품군의 여러 가지 변형. 예를 들어 Chair(의자) + Sofa(소파) + CoffeeTable(커피 테이블) 같은 제품들은 Modern(현대식), Vi.. 2024. 4. 24.
팩토리 메서드(Factory Method) 패턴 팩토리 메서드팩토리 메서드는 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성 패턴이다.  팩토리 메서드는 기존 객체들을 매번 재구축하는 대신 이들을 재사용하여 시스템 리소스를 절약하고 싶을 때 사용하자. 이러한 요구 .. 2024. 4. 23.
레디스(Redis) TTL 설정하기 레디스의 TTL(Time To Live) 특성 지정된 시간이 지나면 자동으로 키가 삭제된다. 만료 시간을 설정하지 않으면 사용자가 명시적으로 삭제하지 않는 한 영원히 저장된다. 현재 컴퓨터 시간을 기반으로 TTL이 동작하기 때문에 만료 시간을 1000초로 설정해 놓고 현재 컴퓨터 시간을 2000초로 바꾸면 즉시 만료된다. 현재 컴퓨터 시간을 기반으로 TTL이 동작하기에, 레디스 인스턴스가 켜져 있지 않더라도 시간이 카운팅 된다. 명령어로 TTL 설정하기 set [key] [value] 키-값 추가하기 expire [key] [seconds] 만료될 시간 추가하기 expire [key] [seconds from Unix start point] 만료될 시간 추가하기 (Unix timestamp를 기준으로 작.. 2024. 4. 23.
의존 관계 vs 연관 관계 의존 관계 의존은 클래스 간의 가장 기본적이고 약한 유형의 관계이다. 한 클래스의 정의를 일부 변경했을 때 다른 클래스가 변경되는 경우 두 클래스 사이에 의존성이 있다고 할 수 있다. 의존성은 일반적으로 코드에서 구상 클래스 이름들을 사용할 때 만들어진다. 당신의 코드를 구상 클래스가 아닌 인터페이스나 추상 클래스에 의존하게 만들면 의존성을 약하게 만들 수 있다. 연관 관계 연관은 한 객체가 다른 객체를 사용하거나 이 두 객체가 상호 작용하는 관계이다. 이때 객체는 언제나 상호작용하는 객체에 접근할 수 있다. 반면 단순한 의존관계에서는 객체 사이의 영구적인 연결이 만들어지지 않는다. 예제 코드 class Professor is field Student student // ... method teach(C.. 2024. 4. 22.
중위 표기법을 후위 표기법으로 변환하기 후위 표기법으로 바꾸는 과정 중위 표기법을 후위 표기법으로 바꾸는 개념은 아래와 같다. 문자열 수식을 순회한다. 피연산자를 만나면 출력한다. 연산자를 만나면 스택에 연산자가 있는지 확인한다. 스택의 마지막 연산자가 현재 연산자보다 우선순위가 높으면 pop 하여 출력한다. 현재 연산자를 스택에 추가한다. 스택이 빌 때까지 pop하여 출력한다. "3 + 5 * 2"를 후위 표기법으로 변환 위의 과정을 따라가면서 "3 + 5 * 2"를 후위 표기법으로 바꿔보자. 피연산자 352 연산자 +* 연산자는 스택 구조로 저장된다. >> 3 >> 35 >> 352 >> 352*+ 352*+ (*의 우선순위가 더 높으므로 *가 pop 되지 않고 그대로 스택 되어서 마지막에 출력된다.) "3 * 5 + 2"를 후위 표기법으.. 2024. 4. 22.
C# [백준 BAEKJOON] 10773번 제로 문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다. 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할.. 2024. 4. 22.