framework 6

비동기 환경에서의 스레드 충돌 문제와 해결 방안

WCF와 SDK API의 스레드 문제 및 해결 방법1. 문제의 배경WCF(Windows Communication Foundation)는 기본적으로 호출을 처리하기 위해 고유한 스레드 풀을 활용합니다. 반면, 동기식 호출을 기반으로 작동하는 SDK API 는 특정 스레드에서의 호출을 요구하거나 스레드 상태를 관리합니다. 이로 인해 다음과 같은 문제가 발생할 수 있습니다:WCF 호출 스레드와 SDK API 호출 스레드가 동일한 경우, SDK 내부에서 스레드 상태(예: LockState)가 예상치 못한 방식으로 변경되어 오류가 발생.SDK API 호출 중 스레드 상태 충돌로 인해 연결이 끊어지거나 LockStateException과 같은 에러가 발생.2. 문제의 원인2.1 스레드 충돌WCF에서 제공하는 호출 ..

C# 2025.01.05

error MSB4006 에러 해결 -> .net framework 참조 방식 변경

. NET Framework에서 PackageReference로 전환하기. NET Framework는 기본적으로 packages.config 방식을 사용하여 NuGet 패키지를 관리합니다. 이 방식에서는 NuGet 패키지가 packages 폴더에 다운로드되고, 프로젝트는 해당 폴더에서 수동으로 참조 경로를 설정해야 합니다.하지만, 더 현대적이고 효율적인 방식인 **PackageReference**를 사용하면 NuGet 패키지 관리와 참조가 자동화되어 개발 과정이 간소화됩니다. 이 문서에서는 PackageReference 방식으로 전환하는 방법과 그 장점을 설명합니다.PackageReference란?PackageReference는 NuGet 패키지를. csproj 파일 내에서 직접 관리하는 방식입니다. 이..

C# 2024.12.27

.NET Framework 4.5.2 다운로드

Windows 10 사용 중 이전 버전 (framework 4.5.2) 를 다운로드 하려니 상위 버전이 있다고 다운로드가 되지 않았다. 근데 그건 Runtime 용을 설치 시도했기 때문이었고 개발자용은 설치가 가능했다. https://dotnet.microsoft.com/ko-kr/download/dotnet-framework/net452 .NET Framework 4.5.2 다운로드 | 무료 공식 다운로드.NET Framework 4.5.2 을(를) 사용하여 애플리케이션을 빌드하고 실행하기 위한 다운로드. .NET Framework용 웹 설치 프로그램, 오프라인 설치 프로그램 및 언어 팩 다운로드를 받으세요.dotnet.microsoft.com 위 링크에서 런타임용이 아닌 개발자용을 다운로드 하면 사용..

C# 2024.05.13

.NET Framework 에서 Windows Service(서비스) 사용 하는 방법

프로젝트 Service 관련 설정1. 본인이 배포하길 원하는 service를 우클릭 후 디자이너 보기 클릭 2, 검은 화면에서 우클릭 후 설치 관리자 추가 클릭 3. serviceInstaller 우클릭 후 속성 클릭ServiceName, DisplayName, Description 등 설정StartType 은 Automatic으로 설정해주면 된다. 4. serviceProcessInstaller 에서 Account는 LocalSystem으로 변경 5. 모든 설정이 완료됐다면 build를 해준다.  WindowService 설치 1. 명령 프롬프트 (CMD) 를 이용해서 설치하기  1-1. 명령 프롬프트(cmd) 를 관리자 권한으로 실행 1-2. InstallUtil.exe 도구가 있는 디렉터리로 이동 ..

C# 2024.04.19

Java 컬렉션 프레임워크 Iterator

Iterator 란 무엇일까요? Iterator란 자바의 컬렉션(Collection)에 저장되어 있는 요소들을 순회하는 인터페이스입니다. 즉, Collection을 상속받는 List와 Set 인터페이스에서도 사용가능하다는 얘기입니다. Iterator 에는 아래와 같이 총 세 가지 메서드가 있습니다. 다음 요소가 있는지 판단하는 boolean 타입의 hasNext() 다음 요소를 가져오는 next(), 가져온 요소를 삭제하는 remove() next() 메서드와 remove()는 단독으로 사용할 수 없으며 꼭 hasNext() -> next() -> remove() 단계로 사용해야 사용할 수 있습니다. ArrayList list = new ArrayList(); for (int i = 1; i list 요..

Java/Java 2023.01.14

Java 컬렉션 프레임워크 LinkedList vs ArrayList

ArrayList와 LinkedList 의 차이는 무엇일까요? ArrayList는 List안에 갹 엘리먼트들이 순차적으로 저장되어져 있는 구조입니다. 따라서, ArrayList를 읽는다는 것은 붙어 있는 것들을 순차적으로 읽는 것이기에 굉장히 빠르게 읽으 수 있습니다. 반대로 LinkedList는 각 엘리먼트들이 순차적으로 저장되어져 있는 것이 아닌 상태에서 각 각의 엘리먼트들을 연결해서 저장되어져 있는 구조입니다. 따라서, LinkedList를 읽기 위해서는 각 각 연결되어져 있는 노드들을 읽어야하는 과정이 필요하기에 ArrayList에 비해서 읽는 속도가 느릴 수밖에 없습니다. LinkedList linkList = new LinkedList(10); -> 오류 ArrayList arrayList =..

Java 2023.01.14