📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 2023.10.10 - [Go/디자인 패턴] - [Go] SOLID in Go - 패키지 2023.10.11 - [Go/디자인 패턴] - [Go] SOLID in Go - 단일 책임 원칙 2023.10.12 - [Go/디자인 패턴] - [Go] SOLID in Go - 개방 폐쇄 원칙 2023.10.13 - [Go/디자인..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 2023.10.10 - [Go/디자인 패턴] - [Go] SOLID in Go - 패키지 2023.10.11 - [Go/디자인 패턴] - [Go] SOLID in Go - 단일 책임 원칙 2023.10.12 - [Go/디자인 패턴] - [Go] SOLID in Go - 개방 폐쇄 원칙 2023.10.13 - [Go/디자인..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 2023.10.10 - [Go/디자인 패턴] - [Go] SOLID in Go - 패키지 2023.10.11 - [Go/디자인 패턴] - [Go] SOLID in Go - 단일 책임 원칙 2023.10.12 - [Go/디자인 패턴] - [Go] SOLID in Go - 개방 폐쇄 원칙 🎭 리스코프 치환 원칙 (Liskov..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 2023.10.10 - [Go/디자인 패턴] - [Go] SOLID in Go - 패키지 2023.10.11 - [Go/디자인 패턴] - [Go] SOLID in Go - 단일 책임 원칙 🚪 개방-폐쇄 원칙 (Open-Closed Principle) 확장에는 열려 있고, 변경에는 닫혀 있다. 개방-폐쇄 원칙은 상호 결합도..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 2023.10.10 - [Go/디자인 패턴] - [Go] SOLID in Go - 패키지 ☝ 단일 책임 원칙 (Single Responsibility Principle) 모든 객체는 하나의 책임만을 져야 한다. 단일 책임 원칙은 객체가 단일 책임 또는 역할에 집중하도록 유도함으로써 소프트웨어를 더 쉽게 이해하고 유지보수할..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 🎁 패키지 Go의 패키지는 다른 프로그래밍 언어에서의 라이브러리나 모듈의 개념으로, '.go' 접미사를 가진 연관된 코드들을 디렉터리 단위로 모아 코드의 재사용성을 높이는 중요한 개념입니다. 패키지 선언 파일의 맨 위에 'package' 키워드를 사용하여 패키지를 선언합니다. 예를 들어, 'package main'은 메인..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 🔗 컴포지션 Go는 상속을 지원하지 않습니다. 대신 구조체 안에 구조체 또는 인터페이스를 임베딩하는 컴포지션을 사용합니다. 인터페이스 또는 구조체에 다른 타입을 임베딩할 수 있게 함으로써 임베딩된 내부 타입의 메서드를 외부 타입이 차용할 수 있습니다. 구조체 임베딩 해적단에는 먼저 선원(Crew)이 있습니다. 선원들은 저마다 이름(Name)을 가지고 있습니다. 그리고 뱃노래를 부를(SingShanty) 수도 있..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 👾 인터페이스 인터페이스를 사용하면 구조체와 메서드를 사용해 구현한 구체화된 객체가 아닌 추상화된 객체를 통해 객체 간의 상호작용을 정의할 수 있습니다. 인터페이스는 메서드의 이름, 매개변수와 반환값의 타입을 정의하며, 이를 구현하는 것은 구조체 또는 별칭 타입과 같은 타입에 달려있습니다. type DuckInterface interface { Say() Swim() Walk(distance int) int } Go에서 인터페이스는 'implements'와 같은 구현을 위한 명시적인 키워드를 사용하지 ..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 🐭 Go는 클래스와 객체 대신 값과 타입을 가지고 있다 Go는 클래스(class)와 객체(object)를 사용하는 대신 다음과 같이 구조체(struct)와 다른 타입을 기반으로 정의된 타입(type)을 사용합니다. type Gopher struct { // 구조체: 필드들의 집합체 Name string State GopherState } func (g Gopher) String() string { return fmt.Sprintf("%s is %s", g.Name, g.State) } type GopherState int8 // 별칭 타입: int8을 기반으로 새로운 타입을 정의 const ( Aw..
💧 SOLID 원칙 SOLID 원칙은 객체지향 설계 다섯 가지 원칙의 앞글자를 따서 만든 용어로, 로버트 C. 마틴(Robert C. Martin)에 의해 제시되었습니다. 단일 책임 원칙 (Single Responsibility Principle, SRP) 개방-폐쇄 원칙 (Open-Closed Principle, OCP) 리스코프 치환 원칙 (Liskov Substitution Principle, LSP) 인터페이스 분리 원칙 (Interface Segregation Principle, ISP) 의존성 역전 원칙 (Dependency Inversion Principle, DIP) 이 다섯 가지 원칙들은 반드시 지켜야 하는 의무사항은 아니지만, 좋은 설계를 위해 지향해야 하는 원칙들입니다. 💯 좋은 설계..