Golang Interface
이번 포스팅의 주제는 Interface다. 👉Interface 구체화된 객체 (Concrete Object)가 아닌 추상화된 상호작용으로 관계를 표현 구체화된 객체 ? 구현이 있는 객체. 즉, Method의 내용물이 있는 객체 type DuckInterface interface { // 메서드 집합 } 택배 배송을 위해 Fedex...
이번 포스팅의 주제는 Interface다. 👉Interface 구체화된 객체 (Concrete Object)가 아닌 추상화된 상호작용으로 관계를 표현 구체화된 객체 ? 구현이 있는 객체. 즉, Method의 내용물이 있는 객체 type DuckInterface interface { // 메서드 집합 } 택배 배송을 위해 Fedex...
golang의 테스트 패키지 중 goconvey 패키지와 stretchr/testify 패키지를 사용하여 빌드없이 코드를 테스트할 수 있다. 빌드 시간이 오래걸리거나, 코드 테스트까지 여러 step이 필요한 경우 유용할 듯 하다. 패키지 사용법에 대해 기록하려 한다. goconvey 터미널에서 go get github.com/smartystre...
Struct의 Filed에 타입 별로 zero value를 지정해야 하는 경우가 생겼다. golang에선 reflect 패키지를 활용하여 해당 작업을 할 수 있어 테스트 코드를 기록해놓으려 한다. type user struct { Name string `json:"name"` Age int32 `json:"age"` } func LoopO...
gRPC(Google Remote Procedure Call)는 구글에서 개발된 고성능 RPC 프레임워크이다. HTTP/2에서 동작하며 양방향 스트리밍 및 흐름 제어를 제공한다. gRPC는 원격으로 호출할 수 있는 메서드를 지정하여 서비스를 정의하는 개념이 기반이며 protobuf(IDL로 사용)를 기본 메시지 형식으로 사용한다. IDL : In...
RPC & REST RPC(Remote Procedure Call)와 REST는 API 설계의 2가지 아키텍쳐 스타일이다. API는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어의 구성요소가 서로 통신할 수 있게하는 메커니즘이다. RPC API를 사용하면 개발자가 외부 서버의 함수를 로컬 소프트웨어의 함수처럼 직접적으로 호출할 수 있다....
Monolithic Architecture란? Monolithic Architecture는 애플리케이션 안에 모든 비즈니스 로직이 다 들어있는 아키텍처다. 전통적인 아키텍쳐를 지칭한다. 모든 프로세스가 긴밀하게 결합되고 단일 서비스로 실행된다. 장점 소규모 프로젝트에선 합리적 개발, 빌드, 배포, 테스트가 용이함 단점 애플리케이...
Pool golang은 Garbage Collector(GC)가 지원되는 언어다. 따라서 사용하지 않는 객체는 GC가 알아서 정리하려한다. 그러나 객체의 생성은 오랜 시간이 걸리므로 당장 사용하지는 않지만 추후 재사용할 가능성이 있다면 GC가 객체를 삭제하는 것은 성능의 저하를 불러올 것이다. 이를 효율적으로 관리해주는 것이 Pool이라 불리는 객체 ...
대용량의 로그처리를 go에서 어떻게 할 수 있을까 찾아보다가 미디엄에서 go를 이용해 대용량의 로그 파일을 빠른 시간에 읽는 코드를 보게 되어 포스팅 하려한다. https://medium.com/swlh/processing-16gb-file-in-seconds-go-lang-3982c235dfa2 파일 읽기 코드 file, err := os...
WebRTC WebRTC (Web Real-Time Communication) 웹 브라우저간에 플러그인의 도움 없이 서로 통신(음성,영상,텍스트,파일)할 수 있도록 설계된 API P2P 통신에 최적화되어있다. 3가지 클래스에 의해 실시간 데이터 교환이 이루어짐. (대부분의 브라우저에서 지원하는 표준 API...
들어가며 비동기(Asynchronous) 프로그래밍 : 코드의 실행 결과처리를 별도의 공간에 맡겨둔 채 결과를 기다리지 않고, 코드의 실행을 계속하는 프로그래밍 동시성(Concurrency) 프로그래밍 : 동시에 실행되는 것처럼 보이는 것 싱글코어에서도 구현 가능 하나의 커피머신에서 N명이 번갈아가며 커피를 받아간다 병렬성(P...