본문 바로가기
반응형

프로그래밍500

C# 공변성(Covariance)이란 무엇인가? 공변성 공변성은 대리자에서 정의하고 있는 반환 형식보다 하위의 상속 형식(서브 형식, 더 많이 상속된 형식) 반환을 허용한다. Covariance 프로젝트에서 대리자의 공변성 예제를 살펴보자. public partial class Program { private delegate TextWriter CovarianceDelegate(); } 이 대리자는 TextWriter 형식을 반환한다. 다음으로 StreamWriterMethod()를 만들 텐데, 이 메서드는 StreamWriter 개체를 반환한다. public partial class Program { private static StreamWriter StreamWriterMethod() { DirectoryInfo[] arrDirs = new Dir.. 2024. 3. 26.
C# 제네릭 대리자(Generic Delegate) C# 제네릭 대리자(Generic Delegate)란? 대리자 형식은 제네릭(generic) 형식을 매개 변수로 이용할 수 있다. 제네릭을 지원하면, 대리자를 변수로 초기화할 때까지 대리자에 사용할 매개 변수나 반환 형식을 지정을 미룰 수 있다. 즉, 대리자 형식을 정의할 때는 대리자의 매개 변수와 반환 형식을 명시하지 않는다. 다음 코드를 이용해서 좀 더 자세히 알아보자. public partial class Program { private delegate T FormulaDelegate(T a, T b); } using System; public partial class Program { private delegate T FormulaDelegate(T a, T b); private static in.. 2024. 3. 26.
도커 파일(Docker file) 작성하기 도커 파일(Docker file)이란?그동안은 단순히 공식 허브에 올라와 있는 이미지를 다운받아서 컨테이너를 생성하고 그 안에서 각종 도구를 사용하거나 파일을 생성하는 과정을 진행했었다. 하지만, 이런 방식이라면 매번 애플리케이션을 동작하는 환경을 구성하기 위해서 패키지를 설치하고 환경설정하는 과정을 반복해야 한다. 이런 문제를 해결하기 위해서 도커 파일(Dockerfile)을 이용해보자. 도커 파일은 컨테이너에 설치해야하는 패키지, 소스코드, 명령어, 환경변수설정 등을 기록한 하나의 파일이다. 그리고 이를 빌드하면 자동으로 이미지가 생성된다. 이렇게 되면 앞으로는 애플리케이션 빌드 및 배포를 자동화 할 수 있게 된다.컨테이너에서 작업을 한 다음에 이를 이미지로 커밋하면 되는거 아닌가하는 의문에 대해서는.. 2024. 3. 26.
도커(Docker)로 리스프(LISP) 실행하기 도커 컨테이너 접속윈도우 시작 탭에서 PowerShell을 관리자 권한으로 실행하자. 먼저, 도커 이미지를 다운로드한다.$ docker pull everypreciousday/functionalbigdata:latest 다운로드한 이미지를 바탕으로  컨테이너를 실행한다.$ docker run -it --name fpstudy everypreciousday/functionalbigdata:latest /bin/bash 리스프 실행 방법 - REPL설치한 도커 이미지에는 CLISP 및 REPL 환경이 설치되어 있다. REPL은 'Read Eval Print Loop'의 약자다. REPL을 사용하면 코드를 한 줄씩 입력하고 그 결과를 즉각적으로 확인할 수 있다. 즉, 마치 컴퓨터와 대화하듯이 한 문장씩 주고받.. 2024. 3. 26.
서비스(Service) vs 데몬(Daemon) 서비스(Service) 부팅 때 자동으로 실행되며 계속 백그라운드에서 실행되는 프로세스 메모리에 상주해 있다가 사용자 요청이 오면 응답하는 프로세스 서비스는 눈에 보이지 않지만 현재 시스템에서 동작 중인 프로세스이므로 백그라운드 프로세스의 일종이라고 할 수 있다. 서비스 == 데몬 데몬(Daemon)과 서비스(Service)는 둘 다 "부팅 시에 자동으로 켜지고 계속 백그라운드에서 실행되는 프로세스"를 의미한다. 유닉스/리눅스 계열에서는 데몬으로, 윈도우에서는 서비스라고 했었지만 요즘은 같은 의미로 사용 서비스(Service) 서비스(Service)란 단어는 "윈도우 운영체제"에서 주로 사용됐던 단어 "윈도우 OS와 함께 시작되어 계속 실행되는 백그라운드 프로세스"란 의미로 데몬과 거의 비슷 "데몬"과 .. 2024. 3. 25.
도커(Docker)로 레디스(redis) 실행하기 항상 동일한 환경으로 레디스 실행하기 메모리에 상주하는 레디스(Redis)는 인메모리 방식으로 다른 RDS와 다르게 엄청난 속도를 보장한다. 이런 레디스를 항상 동일한 환경으로 배포해보자. 도커를 이용하면 가능하다. 도커 공식 이미지 가져오기 파워쉘에서 아래 커맨드 입력시 공식 이미지를 pull 해온다. docker pull redis redis - Official Image | Docker Hub Quick reference Supported tags and respective Dockerfile links 7.2.4, 7.2, 7, latest, 7.2.4-bookworm, 7.2-bookworm, 7-bookworm, bookworm 7.2.4-alpine, 7.2-alpine, 7-alpine, .. 2024. 3. 25.