본문 바로가기

C#6

[C#] 비동기 프로그래밍 가이드(Async and Await) 비동기 프로그래밍은 정말 쉽지 않은 것 같다. 개념을 어느정도 익히고 사용하더라도 실제 개발을 진행하다보면 내 마음같이 움직이지 않는 것이 비동기 프로그래밍인 것 같다. 이왕 괴롭힌 받은 김에 비동기 프로그래밍을 정리해본다.  동기 프로그래밍비동기 프로그래밍에 대해 알아보기 전에, 동기 프로그래밍을 먼저 살펴보자.동기 프로그래밍 방식에서는 이전 작업이 완료되기 전까지 다음 작업이 시작되지 않으며, 요청과 요청에 대한 결과가 동시에 일어난다. 즉, 순차적으로 하나의 작업이 실행되는 방식이다. 때문에 여러가지 작업을 동시에 처리할 수 없다. 예를 들어 아침식사를 준비하는 과정을 동기적으로 진행해보자.  1번부터 7번까지의 작업을 순차적으로 진행하는데 총 30분이라는 시간이 소요되었다. 각 작업은 동기적으로 .. 2024. 12. 21.
[C#] Byte 크기로 문자열 길이 제한하기 서비스 사용자에게서 개발 요청사항이 들어왔다. 우리 앱에서는 로그인한 아이디의 그룹웨어로 상대방에게 메일을 보내는 기능이 있는데, 일부 그룹웨어 메일이 없는 사람들이 메일기능을 사용할 수가 없어 불편함을 겪고 있다는 것이다. 회사 보안가이드 상 외부 메일을 사용할 수 없기 때문에 SMS문자를 보내는 기능을 개발하기로 하였다.  문자를 보내는 것은 이미 OTP인증 기능을 개발하며, 시스템을 갖추어 놨는데 이번에는 사용자가 내용을 입력을 할 수 있기 때문에 최대 가능 문자용량인 80Byte를 넘지 않도록 해야 했다. 서비스 사용자가 중국, 한국, 베트남 등 다양한 언어를 사용하기 때문에 이를 고려해서 Byte에 제한을 두는 방법을 생각해보았다. 우선 문자 내용이 제한에 의해 잘려도 크게 문제가 되지는 않는내.. 2024. 8. 29.
[C#] IOException: Sharing violation on path 에러 해결 Unity에서 json파일을 로컬로 생성할일이 생겼다. 처음엔 별 생각없이 파일을 생성하고, 내용을 넣어주면 될 것이라고 생각하고 코드를 짰다.File.Create(settingDataPath);File.WriteAllText(settingDataPath, JsonConvert.SerializeObject(setting)); settingDataPath라는 파일을 생성하고,  setting이라는 Object를 직렬화해서 write하려했는데 IOException이 발생했다. IOException은 주로 파일이 이미 열려있거나, 다른 프로세스에 의해 사용 중일 때 발생한다고 한다. 정황상 WriteAllText가 실행될 때, Create가 정상적으로 종료되지 않은 것이라고 생각되어 찾아보니   File.Cr.. 2024. 8. 22.
[C#] InstallUtil.exe로 Windows Service 설치 시 에러 InstallUtil로 Windows Service를 설치할 때 아래와 같은 에러가 발생했다. 트랜잭트 설치를 실행하고 있습니다. 설치의 Install 단계를 시작하고 있습니다. C:\Users\202322\source\repos\TransferMailingService\TransferMailingService\bin\Release\TransferMailingService.exe 어셈블리의 진행 상황을 보려면 로그 파일 내용을 검토하십시오. 파일은 C:\Users\202322\source\repos\TransferMailingService\TransferMailingService\bin\Release\TransferMailingService.InstallLog 위치에 있습니다. 어셈블리 'C:\Users.. 2023. 12. 22.