Writing

작업 노트

기술 자체보다 어떤 문제를 왜 그렇게 풀었는지에 초점을 둡니다.

포스트그레스큐엘(PostgreSQL) 도커 실행시 sql 파일 같이 실행 시키기

포스트그레스큐엘(PostgreSQL) 도커 실행시 sql 파일 같이 실행 시키기 Initialization scripts 이 하나에서 파생 된 이미지에서 추가 초기화 작업을 수행하려는 경우, 하나 이상의 추가 .sql, .sql.gz또는 .sh아래 스크립트를 /docker entrypoint initdb.d(필요하면 디렉

2 min read

카프카(kafka) 도커로 설치

카프카(kafka) 도커로 설치 zookepper 1대에 kafka 브로커 3대 구성 이미지는 zookeeper는 공식 repository 와 kafka는 confluentinc repository에 있는것으로 구성함 오늘기준으로 최신 릴리즈 구성으로 셋팅 모니터링 용으로 cmak 까지 같이 셋팅하는 구성임 offsets

2 min read

레디스(redis)

레디스(redis) 개발 용이성 자료구조가 atomic 하다.(race condition을 피할수 있다.) collection을 제공 한다. replication primary 와 secondary 구조로 replication을 셋팅할수 있다. DB의 statement replication(명령어로 동기화 되기 때문에 r

4 min read

c# 환경변수 설정

c 환경변수 설정 launchSettings.json 에 설정된 환경 변수값을 받아서 처리를 하는데 테스트 코드 작성시 특정 환경 변수에서 동작하고 싶을때 아래처럼 Environment.SetEnvironmentVariable 메소드를 사용하면 환경 변수를 셋팅할수 있다. 참조

1 min read

이펙티브 c# (6)

이펙티브 c 아이템 21: 타입 매개변수가 IDisposable을 지원할 경우를 대비하여 제네릭 클래스를 작성하라 제네릭의 역활 런타임 오류가 발생할 가능성이 있는 부분을 컴파일 타임 오류로 대체 가능 타입 매개변수로 사용할 수있는 타입을 명확히 규정하여 사용자에게 도움을 준다. 타입 매개변수로 지정하는 타입이 IDisp

3 min read

dotnet-ef 명령 사용 하기

dotnet ef 명령 사용 하기 비주얼 스튜디오에서는 패키지 관리자 콘솔을 제공해서 엔티티프레임워크 마이그레이션을 실행할수 있다. 하지만 다른 IDE에서는 제공하지 않아서 콘솔창에서 직접 실행하는 방법을 알아 보겠다. 먼저 dotnet core sdk가 설치가 되어 있으면 donet 명령어가 실행이 된다. dotnet

2 min read

이펙티브 c# (5)

이펙티브 c 아이템 18: 반드시 필요한 제약 조건만 설정하라 제약 조건은 제네릭 타입에 대해 우리가 가정하고 있는 사실을 컴파일러와 다른 개발자에게 알려주는 용도로 사용된다. 컴파일러에게 제약조건을 알려준다는것은 System.Object에서 노출하는 수준 이상으로 사용할 수 있음을 알려주는것이다. 제네릭 사용시 컴파일러

3 min read

이펙티브 c# (4)

이펙티브 c 아이템 13: 정적 클래스 멤버를 올바르게 초기화하라 정적 멤버 변수 초기화 하는 방법엔 2가지 정적 멤버 초기화 구분 정적 생성자: 타입내에 정의된 모든 메서드, 변수, 속성에 최초로 접근하기 전에 자동으로 호출되는 특이한 메서드다. 아이템 14: 초기화 코드가 중복되는 것을 최소화하라 위처럼 하면 여러개의

11 min read