Go

Go Design Patterns

Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID

24 면접 질문·
Senior
1

Go에서 Functional Options pattern의 주요 장점은 무엇입니까?

답변

Functional Options pattern을 사용하면 생성자를 오버로딩하지 않고도 선택적 파라미터를 가진 구성 가능한 API를 만들 수 있습니다. 서로 다른 시그니처를 가진 여러 생성자를 피하고 확장 가능하며 읽기 쉬운 API를 제공합니다. 이 pattern은 first-class function을 활용하고 모호한 기본값을 피하기 때문에 Go에서 관용적입니다.

2

Go에서 Singleton pattern을 구현할 때 권장되는 접근 방식은 무엇입니까?

답변

Go에서 Singleton pattern은 thread-safe하고 lazy initialization을 보장하는 sync.Once를 사용하여 구현하는 것이 이상적입니다. 이 접근 방식은 오류가 발생하기 쉬운 수동 mutex와 double-checked locking을 피합니다. sync.Once는 여러 goroutine이 동시에 실행되더라도 함수가 단 한 번만 실행되도록 보장합니다.

3

Go에서 interface 사용을 장려하는 SOLID 원칙은 무엇입니까?

답변

Dependency Inversion 원칙은 상위 수준 모듈이 하위 수준 모듈이 아니라 추상화(interface)에 의존해야 한다고 명시합니다. Go에서는 이것이 interface를 받아들이고 구체 타입을 반환하는 것으로 나타납니다. 이 원칙은 테스트(mocking), 결합도 완화, 코드 유지보수성을 용이하게 합니다.

4

Go에서 Factory pattern을 관용적으로 구현하려면 어떻게 해야 합니까?

5

Adapter pattern의 주요 역할은 무엇입니까?

+21 면접 질문

다음 면접을 위해 Go을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기