반응형

전체 글 101

Abstract Factory Pattern(추상 팩토리)

Abstract Factory Pattern소프트웨어 디자인 패턴중 하나로, 객체 생성을 위한 디자인 패턴입니다.관련된 객체들의 팩토리를 묶어 추상화하는 역할을 합니다.팩토리 메서드 패턴의 확장된 형태이며, 상호 관련되거나 의존적인 객체군(제품군)을 생성할 때 유용합니다. 추상 팩토리는 인터페이스를 제공하고, 이 인터페이스를 구현하는 구체적인 팩토리가 제품군을 생성합니다.클라이언트는 구체적인 팩토리 클래스를 알 필요 없이 인터페이스를 통해 객체를 생성합니다.  팩토리 메서드 패턴과 추상 팩토리 패턴의 차이점과 확장된 점팩토리 메서드 패턴객체를 생성할 때 단일 제품에 대해 팩토리 메서드를 제공합니다.하나의 팩토리 메서드가 특정 제품의 객체를 생성합니다.추상 팩토리 패턴여러 제품군에 대한 객체를 생성할 수 ..

디자인패턴 2024.12.17

Builder Pattern(빌더 패턴)

Builder Pattern(빌더 패턴)Builder Pattern은 소프트웨어 디자인 패턴 중 하나로 객체 생성의 복잡성을 줄이고, 단계적으로 객체를 구성할 수 있도록 도와주는 생성 디자인 패턴입니다. 주로 생성자가 복잡하거나 다양한 설정이 필요한 객체를 생성할 때 사용합니다. 예를 들어 자동차를 만든다고 가정할때, 자동차를 주문할때 여러가지 옵션을 넣을수가 있습니다. 썬루프, 시트, 타이어 크기, 자동차 색상 등등을 구매자가 원하는대로 결졍됩니다. 어느 사람은 기본 옵션을 그대로 사용할 수 도 있고, 어떤 사람은 썬루푸, 시트만 변경할 수 도 있고, 어떤 사람은 모두 변경할 수 도 있습니다. 이처럼 선택적 옵션을 보다 유연하게 받아 다양한 타입의 인스턴스를 생성할 수 있어, 클래스의 선택적 매개변수가..

디자인패턴 2024.12.16

Adapter Pattern(어댑터 패턴)

Adapter Pattern소프트웨어 디자인 패턴 중 하나로, 기존의 클래스나 인터페이스를 변경하지 않고도 다른 인터페이스와 호환되도록 만드는 데 사용됩니다. 주로 서로 호환되지 않는 인터페이스를 연결하여 시스템 간 통합을 쉽게 만드는 데 활용됩니다.쉽게 설명하자면 Adapter Pattern은 중간 통역사라고 생각하면 편합니다. 예시로 이해해보기:A는 한국사람이고 영어를 못하고, B는 외국사람이고 영어만 가능합니다.이때 통역사가 필요한데, 통역사는 한국어를 영어로, 영어를 한국어로 바꿔서 전달해줍니다.결국, A(클라이언트)는 B와 원할하게 대화할 수 있게됩니다.A: Client (타겟 인터페이스를 원하는 사용자)B: Adaptee (타겟과 다른 인터페이스를 가지고 있는 클래스, 호환되지 않는 기존 객체..

디자인패턴 2024.12.11

Git 연습하기

Git Repository 만들기 1. 실험 환경 구축 1-1. git repo를 만든다. 화면 왼쪽 상단에 new 초록 버튼을 클릭한다. repo를 만들고 터미널에서 아래 명령어를 입력한다 마지막 push까지하면 화면이 바뀐다. 1-2. ssh key 생성 ssh 키가 있는지 확인# cat cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC41jSXWvbK3zzhs6qNppOAZ10nD1AsAYZKWbWJ66VeSE33TUp7zRttk2PcSFGEhqFup5YQDxWmSWx4VmenuNz9XvDLufhicODXoH9+6PNG4AHreAnntUCupWcx9fG3FnISsF/nm6xUxaL+q2gHRPGIEnnfGkxhTFwMEWBeGQX6bgd0..

카테고리 없음 2022.12.19

C# 문법 정리 5

### Indexer - Indexer는 클래스 객체의 데이타를 배열 형태로 인덱스를 써서 엑세스할 수 있게 해준다. 즉, 클래스 객체는 배열이 아님에도 불구하고, 마치 배열처럼 []를 사용하여 클래스 내의 특정 필드 데이타를 엑세스하는 것이다. ### 인덱서 정의 - C# Indexer는 특별한 문법인 this[ ] 를 써서 클래스 속성(Property)처럼 get과 set을 정의한다. 클래스 내부의 어떤 데이타를 리턴하는지는 클래스 디자인시 필요에 따라 정하게 될 것이고, 리턴 데이타 타입도 여러 가지로 지정할 수 있다. - 입력 파라미터인 인덱스도 여러 데이타 타입을 쓸 수 있는데, 주로 int 나 string 타입을 사용하여 인덱스값을 주는 것이 일반적이다. class MyClass { priva..

카테고리 없음 2022.06.16

C# 문법 정리 4

### 네임스페이스 - .NET Framework은 무수하게 많은 클래스들을 가지고 있는데, 예를 들면 .NET 4.0은 약 11,000개의 클래스를 가지고 있다. 이렇게 많은 클래스들을 충돌없이 보다 편리하게 관리/사용하기 위해 .NET에서 네임스페이스를 사용한다. C#에서도 이러한 개념을 적용하여 클래스들이 대개 네임스페이스 안에서 정의된다. 비록 클래스가 네임스페이스 없이도 정의 될 수는 있지만, 거의 모든 경우 네임스페이스를 정의하는 것이 일반적이다. - 네임스페이스를 사용하기 위해서는 두가지 방식이 있다. 첫째는 클래스명 앞에 네임스페이스 전부를 적는 경우와 둘째는 프로그램 맨 윗단에 해당 using을 사용하여 C# (.cs) 파일에서 사용하고자 하는 네임스페이스를 한번 설정해 주고, 이후 해당..

카테고리 없음 2022.06.16

C# 문법 정리 3

### 연산자 - C#은 다른 프로그래밍 언어와 비슷하게 수식 연산자, 논리 연산자, 조건 연산자등 다양한 연산자들을 제공하고 있다. 아래 표는 각 카테코리별 연산자 및 그 샘플을 예시한 것이다. 연산자 타입연산자예제 산술 연산자 +, -, *, /, % int a = (x + y - z) * (b / c) % d; 할당 연산자 =, +=, -=, *=, /=, %= int a = 100; sum += a; [설명] sum += a 는 sum = sum + a 를 축약한 표현이다. 증감 연산자 ++, -- int i = 1; i++; [설명] i++ 는 i = i + 1 를 축약한 표현이다. 논리 연산자 && (And), || (Or), ! (Not) if ((a > 1 && b < 0) || c == ..

카테고리 없음 2022.06.16

c# 문법 정리 2

### Array - 배열은 일련의 동일한 데이타 타입 요소들로 구성된 데이타 집합으로서, 인덱스를 통하여 개개의 배열요소(Element)를 엑세스할 수 있다. C#에서 배열은 Zero-based Array 즉 첫번째 요소가 인덱스 0을 갖는다. - 두번째 요소는 인덱스 1, 그 다음 요소들은 인덱스 2, 3, ... 등을 갖는다. - 배열의 요소는 Sqaure Bracket([ ])안에 인덱스를 넣어 표시한다. 즉, 배열 A의 첫번째 요소는 A[0] 으로 표시한다. - 모든 C# 배열은 내부적으로 .NET Framework의 System.Array에서 파생된 것이다. 따라서, System.Array의 메서드, 프로퍼티를 사용할 수 있다. // 1차 배열 string[] players = new stri..

카테고리 없음 2022.06.16

C# 문법 정리 1

c# 이란 c#은 마이크로소프트에서 개발된 객체 지향 프로그래밍 언어로서 java 나 c++과 비슷한 면들을 많이 가지고 있다. - c#을 이야기 하면 자연스럽게 .NET 프레임워크를 함께 이야히 해야할 정도로 c#은 .NET 프레임워크를 이용하여 프로그래밍하는 대표적인 언어이다. main 모든 c# 프로그램은 Main() 이라는 시작 함수(메서드)를 가져야 한다. Main() 메서드는 임의의 클래스 안에서 존재하며, 포르개름 상에 단 1개만 존재해야한다. Main()는 static을 선언되며, 메서드 인자는 string[] 문자열이다. system.Console은 .NET 프레임워크 클래스 이며, WriteLine은 화면에 데이터를 출력하는 메서드이다. 주석 한 라인에 대한 주석은 // , 여러 라인에..

카테고리 없음 2022.06.15
반응형