본문 바로가기
728x90
반응형

전체 글303

C#] ConcurrentBag C#에서는 여러 스레드를 이용하여 동시에 다루어야 하는 objects group을 위한 class가 여러개 있는데, 그 중 하나가 ConcurrentBag이다. ConcurrentBag으로부터 elements 추가, 접근, 삭제를 하는 방법을 알아보자. 그리고, ConcurrentBag의 장단점도 정리해보자. What Is a ConcurrentBag in C#? generic collection type이다. namespace : System.Collection.Generic objects의 정렬되지 않은 collection이다. (ConcurrentBag에 items을 추가한 순서와, 되찾을떄의 순서가 같지 않다. indexer로 ConcurrentBag의 items에 접근할 수 없다. ) IProd.. 2023. 1. 11.
C#] IEnumerable vs Enumerable 차이점 IEnumerable interface Namespace : System.Collections 하나의 메소드(GetEnumerator())만 가지고 있다. IEnumerable의 메서드만 확인해보면, GetEnumerator()를 확인할 수 있다. 나머지 함수들은 System.Object class에서 제공하는 함수들이다. Enumerable class Namespace : System.Linq 대부분의 함수들은 IEnumerable 확장 함수(Extension Method)를 가지고 있다. 따라서 IEnumerable를 구현하는 모든 object에서 instance method처럼 호출해서 사용할 수 있다. Extension Methods in IEnumerable Extension Method란? s.. 2023. 1. 9.
GitLab CI/CD] 4. rsync로 웹서버에 파일전송하기 3번글의 scp는 디렉토리 내 모든 파일을 복사하는 방법이다. 전체 소스 파일 중에서, 내가 수정한 일부 파일만 빠르게 전송하고 싶다면 rsync를 사용해보자. rsync사용법 rsync options source destination 1. 웹서버의 소스폴더를 가상디렉토리로 gitlab서버에 연결한다. 가상디렉토리 경로 : /testserver/testsite 2. 배포 시, rsync 스크립트 처리하기 include와 exclude 옵션을 이용해서 복사할 파일을 추가하거나 제외할 수 있다. backup디렉토리, gitlab-ci.yml, *.config파일을 제외한다. test-job: # 임의로 지정한 JOB 이름 stage: deploy only: - test #test branch에서만 실행됨 b.. 2022. 12. 30.
구성관리자] 조건부 컴파일 기호, connectionStrings 관리 개발 시, 보통 로컬pc에서 디버깅 하며 작업을 하고, TEST 서버와 REAL 서버에 배포를 한다. 로컬, TEST, REAL에서 소스와 connectionString을 다 다르게 해야 하는 경우, 구성관리자가 추가로 하나 더 필요하다. 1. 로컬pc 디버깅용으로 사용할 구성관리자를 추가해보자. 프로젝트의 구성을 Local로 세팅을 한다. 2. Local 구성에서 조건부 컴파일 기호와, 디버깅을 할 수 있도록 세팅해보자. 프로젝트 속성 > 빌드 > 조건부 컴파일 기호를 입력한다. 아래와 같이, #if 전처리기에서 LOCAL 을 사용하여 조건부 컴파일을 사용할 수 있다. 프로젝트 속성 > 빌드 > 고급 > 디버깅 정보 - 전체로 설정한다. 3. 구성에 따라 사용할 connectionString을 설정한다.. 2022. 12. 14.
JavaScript] Event delegation 출처 : https://javascript.info/event-delegation Capturing, bubbling은 강력한 event handling 패턴인 event delegation의 구현을 가능하게 해준다. 많은 elements를 비슷한 방식으로 handle할 때, 각각 handler를 할당하는 것이 아닌 공통 ancestor에만 하나의 handler를 할당할 수 있다. handler에서 우리는 event.target으로 event가 실제로 어디서 발생하는지 알 수 있다. Ba-Gua diagram을 예로 들어보자. HTML은 다음과 같다. Bagua Chart: Direction, Element, Color, Meaning Northwest Metal Silver Elders ... ... .. 2022. 12. 9.
C#] MSSQL AES128/256, SHA256 암복호화 어셈블리 DLL 만들기 1. SQL Server 데이터베이스 프로젝트 생성 2. 프로젝트 선택 후 추가 -> 새항목 -> SQL CLR C# -> SQL CLR C# 사용자 정의 함수 추가 3. Crypto.cs 파일 추가 총 9개 함수 추가 AES128/256 암복호화에 base64 인코딩을 사용했다. (HEX option도 있음) encryptAES128 : class내 KEY를 이용하여 AES128 암호 decryptAES128 : class내 KEY를 이용하여 AES128 복호 encryptAES128_pw : KEY를 parameter로 전달받아 AES128 암호 decryptAES128_pw : KEY를 parameter로 전달받아 AES128 복호 encryptAES256 : class내 KEY를 이용하여 AES2.. 2022. 12. 9.
728x90
반응형