목록전체 글 (51)
Interface인터페이스란 구현을 포함하지 않는 메소드 집합으로, 구체화된 타입이 아닌 인터페이스만 가지고 메소드를 호출할 수 있어 추후 프로그램 요구사항 변경 시 유연하게 대처할 수 있다. Go에서는 인터페이스 구현 여부를 특정 타입이 인터페이스에 해당하는 메소드를 가지고 있는지로 판단하는 덕 타이핑을 지원한다. 인터페이스를 사용하는 것으로 객체 간 상호작용을 정의할 수 있으며, 덕 타이핑을 통해 사용자 중심의 코딩이 가능하다.인터페이스 선언 방법은 다음과 같다.type DuckInterface interface { Fly() Walk(distance int) int}인터페이스 또한 구조체처럼 타입의 한 종류이기 때문에 type 키워드를 작성해야 한다. 인터페이스를 작성할 때 유의해야 할 ..
Method이전에 Java를 사용해본 사람이라며 Method라는 이름이 친숙하게 느껴질 것이다. 필자 또한 Java를 주로 사용했기 때문에 이번 파트를 공부하며 Method라는 명칭이 굉장히 반갑게 느껴졌다. 하지만 Go는 Java와 달리 클래스가 존재하지 않기 때문에 어떤 식으로 메소드를 사용하는지 의구심이 들었다. Go에서의 메소드는 구조체 바깥에서 정의되며 리시버를 통해 구조체와 연결된다.Receiver메소드는 구조체 바깥에서 선언되기 때문에 메소드가 어떤 구조체에 속하는지 표시할 방법이 필요하다. 이를 위해 리시버를 사용하여 메소드가 속한 구조체를 알려준다.🚀Method 선언메소드를 선언하기 위해서는 리시버를 ()로 명시해야 한다.func (r Rabbit) info() int { retu..

OverviewKubernetes 환경에서 이루어지는 네트워킹은 크게 4가지로 분류할 수 있다.서로 결합된 컨테이너와 컨테이너 간의 통신Pod와 Pod 간의 통신Pod와 Service 간의 통신외부와 Service 간의 통신서로 결합된 컨테이너와 컨테이너 간의 통신Docker 환경에서 생성된 컨테이너의 기본적인 네트워크 동작 구조를 그림으로 표현하면 아래와 같다.Docker에서는 기본적으로 같은 노드 내의 컨테이너끼리의 통신은 위 그림과 같이 docker0라는 가상 네트워크 인터페이스를 통해 가능하다. 각 컨테이너는 veth라는 가상 네트워크 인터페이스를 고유하게 가지며 따라서 각각의 veth IP 주소 값으로 통신할 수 있다. 하지만 두 컨테이너가 동일한 veth에 할당되는 경우도 존재한다.위 그림에서..