C# 범범조조 2022. 4. 7. 22:16
목적 앞에서 ASP.NET Core gRPC Server 프로젝트를 생성하여 gRPC 전용 Server를 만들었습니다. 다음으로 Blazor Client를 하나 생성하여 gRPC Server 와 통신하는 Client 프로그램을 만들어 보도록 하겠습니다. 개발 환경 개발 환경은 다음과 같습니다. OS : Windows 10 .NET Version : .NET 6 개발도구 : Visual Studio 2022 Blazor Server 앱 프로젝트 생성 Blazor gRPC Client 를 만들기 위해서는 Visual Studio 2022 실행합니다. 실행하여 Blazor Server 앱 프로젝트 하나를 선택하여 생성해줍니다. gRPC NuGet 패키지 추가 Blazor Server 앱을 생성 하였다면, gR..
더 읽기
C# 범범조조 2022. 4. 7. 21:11
목적 gRPC 통신을 하기 위해서는 Server/Client 각각의 프로그램이 있어야 합니다. .NET 에서 ASP.NET Core gRPC Server 프로젝트 생성을 하게 되면, 매우 쉽게 gRPC Server 프로그램을 생성할 수 있습니다. 개발 환경 개발 환경은 다음과 같습니다. OS : Windows 10 .NET Version : .NET 6 개발도구 : Visual Studio 2022 ASP.NET Core gRPC Server gRPC 서버를 만들기 위해서는 Visual Studio 2022 실행합니다. 실행하여 ASP.NET Core gRPC Server 프로젝트를 생성합니다. ASP.NET Core gRPC Server 프로젝트 구조 ASP.NET Core gRPC Server 프로젝..
파이썬(Python) 범범조조 2022. 4. 5. 22:25
참조 https://www.docker.com/blog/containerized-python-development-part-1/ https://www.docker.com/blog/containerized-python-development-part-2/ https://www.docker.com/blog/containerized-python-development-part-3/ 1. 소개 두 개 이상의 프로젝트가 동시에 개발되는 경우 로컬 환경에서 Python 프로젝트를 개발하는 것은 상당히 어려울 수 있습니다. 프로젝트를 부트 스트랩하는 것은 버전을 관리하고 종속성 및 구성을 설정해야 하므로 시간이 걸릴 수 있습니다. 이전에는 모든 프로젝트 요구 사항을 로컬 환경에 직접 설치 한 다음 코드 작성에 집중했습니..
파이썬(Python) 범범조조 2022. 4. 5. 19:31
참조 http://labs.brandi.co.kr/2018/06/07/kwakjs.html https://www.slideshare.net/hosunglee948/python-52222334 https://www.slideshare.net/ssuser163469/tdd-101 1. 파이썬과 TDD 파이썬은 정적 타입 검사 기능이 없습니다. (python 3.6부터 정적 타입 선언 가능) 동적 언어이므로 TDD 작성이 쉽습니다. 파이썬은 런타임 오류가 빈번합니다. 파이썬을 신뢰할 수 있는 방법은 단위 테스트 뿐 입니다. 2. 파이썬 unittest 사용 방법 import unittest unittest.TestCase 상속 받는 하위 클래스 생성 TestCase.assert() 메소드를 사용하여 테스트 3..
파이썬(Python) 범범조조 2022. 4. 5. 18:27
참조 https://realpython.com/absolute-vs-relative-python-imports/ 1. import 요약 python에서 py 파일은 모듈이라고 합니다. python에서 __init__.py가 포함된 폴더를 패키지라 합니다. (python3는 조금 다름) 모듈이 다른 모듈이나 패키지를 액세스 하기 위해 import를 사용합니다. 2. import 작동 원리 import abc python은 abc를 찾는다. sys.modules를 확인한다. sys.modules는 이전에 가져온 모든 모듈의 캐시이다. 내장 모듈 목록을 확인한다. sys.path를 기준으로 확인한다. sys.path는 현재 폴더가 포함된다. 이름은 찾을 수 없는 경우 ModuleNotFoundError를 반환..
파이썬(Python) 범범조조 2022. 4. 3. 16:54
리스트 컴프리헨션이란? 리스트 컴프리헨션은 리스트를 초기화하는 방법 중 하나입니다. 리스트 컴프리헨션을 이용하면 대괄호([]) 안에 조건문과 반복문을 넣는 방식으로 리스트를 초기화 할 수 있습니다. 예제 코드 간단히 0부터 19까지의 수 중에서 홀수만 포함하는 리스트를 만들고자 할 떄는 다음과 같이 리스트를 선언할 수 있습니다. 아래 예제 코드만 봐도, 리스트 컴프리헨션으로 표현 방법이 훨씬 소스코드가 짧고 간결한 것을 볼 수 있습니다. 일반 적인 표현 list = [] for i in range(20): if(i % 2 == 1): list.append(i) print(list) 리스트 컴프리헨션 표현 array = [i for i in range(20) if i % 2 == 1] print(array..
RabbitMQ 범범조조 2022. 4. 1. 20:43
참조 https://www.rabbitmq.com/tutorials/tutorial-three-python.html 소개 이번 포스팅에서는 하나의 메시지를 여러개의 작업자에게 배달 할 수 있는 방법에 대해서 알아 봅니다. 이 패턴은 게시(Publish) / 구독(Subscribe) 으로 알려져 있습니다. 시나리오 게시(Publish) / 구독(Subscribe) 패턴을 이해하기 위해서, 간단한 로깅 시스템을 만들어 봅ㄴ디ㅏ. 이것은 두개의 프로그램으로 구성되어 있는데, 첫 번째는 로그 메시지를 방출하고 두번째는 그것을 받아서 출력합니다. 로깅 시스템에서 모든 동작하는 Receiver 프로그램 복사본은 메시지를 받을 것입니다. 하나의 Receiver는 로그를 디스크에 저장하고, 동시에 다른 Receiver..
DOCKER 범범조조 2022. 4. 1. 19:12
참조 https://www.daleseo.com/docker-networks/ 소개 Docker 컨테이너(Container) 는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와의 통신이 불가능합니다. 하지만 여러 개의 컨테이너를 하나의 Docker 네트워크(netowrk) 에 연결시키면 서로 통신이 가능해 집니다. 컨테이너의 네트워크 구조 만약 외부와 연결을 해야 할 경우에는 호스트에 veth(=virtual eth) 라는 네트워크 인터페이스를 생성하고 컨테이너의 eth와 연결이 됩니다. veth 인터페이스는 사용자가 직접 생성할 필요 없이 도커엔진에 의해 자동으로 생성됩니다. veth 인터페이스 뿐만 아니라 docker() 라는 브리지도 있는데 이는 veth 인터페이스와 바인딩 되어 호스트의..