Server

· Server/C#
좋은 서버 개발자가 무엇인가! 바로 서버가 죽지 않게 개발하는 서버 개발자이다. 그러려면 실행 에러에 대한 잡지식이 많아야 하는것같다. 컴파일 에러는 IDE 가 잡아 주니... 그래서 이제 이 페이지에 잡지식을 기록해 보려고 한다. 2024년 3월 22일 금요일 1. 제너릭를 쓸 때, 제너릭 변수 자리에 null을 넣으면 서버가 터진다 2. 클래스를 사용할 때, 널인 상태에서 맴버를 찾으려고 하면 서버가 터진다. 2024년 4월 9일 화요일 3. List.AddRange(null) 은 에러난다.
· Server/C#
lock 을 하면 비동기를 사용할 수 없다. 더보기 정확히는 위험하다. ( lock(리소스) {작업} 식으로 사용할 때에는 아예 컴파일 에러가 난다. ) lock 은 다른 스레드에서 이 리소스에 접근하지 못하게 하는 기법이기 때문이다. 비동기 호출을 하게 되면 await 를 할 때마다 실행 중이던 작업이 중지되고 대기 상태가 되었다가 스레드 풀의 스레드 중 하나에서 실행이 되는데, 이때 스레드가 원래 lock 을 했던 스레드가 아닐 가능성이 매우 높기 때문에 이 리소스에 접근하지 못하게 되는 현상이 생겨날 수 있다. 아무튼 이런 이유 때문에 비동기 함수에서 lock 을 주의해서 써야 한다. 비동기에서 lock 을 사용하려면 SemaporeSlim 을 사용하면 된다. SemaphoreSlim 은 lock ..
· Server/C#
생성자 public class Mom { public Mom() { Console.Write("mom "); } } public class Son : Mom { public Son() { Console.Write("son "); } } public static void Main() { new Son(); // mom son new Mom(); // mom } mom son mom 상속 public class Mom { public void Print() { Console.Write("mom "); } } public class Son : Mom { public void Print() { Console.Write("son "); } } public static void Main() { var son = n..
· Server/C#
해시테이블 딕셔너리 Key, Value 모두 자료형을 지정할 필요 없다. Key, Value 모두 자료형을 지정해야 한다. 박싱-언박싱 을 사용한다. 박싱-언박싱 을 사용하지 않는다. 해시 테이블의 박싱-언박싱 과정에서 데이터가 값 복사가 일어날 것이라 생각했는데, 참조가 보호된다. var list = new List(); list.Add(1); Console.WriteLine(JsonSerializer.Serialize(list)); var hashTable = new Hashtable(); hashTable.Add(1, list); var listInHash = hashTable[1]; var convertedListInHash = (List)listInHash; convertedListInHash...
· Server/Linux
문제) net 7.0 으로 구동되던 프로그램을 net8.0 으로 업그레이드 하면 해당 프로그램을 $ dotnet Server.dll 로 실행하던 머신들의 dotnet 버전을 전부 업그레이드해 주어야 한다. 해결) 이렇게 매번 dotnet 버전을 업그레이드하는 불편함을 없애려면 dotnet 까지 함께 빌드해주면 된다. sudo dotnet publish ./TcpTestServer/TcpTestServer.csproj \ --configuration Release \ --self-contained \ --property:PublishSingleFile=true 위 명령어를 입력하면 어느 경로에 실행 파일이 생기는지 나온다. 찾아가서 실행해준다. // 찾아가서 cd /Users/jaeeun/free/AWS/..
· Server/Linux
프로젝트 sln 파일이 있는 곳으로 이동한다. 빌드한다 dotnet build bin/Debug/net7.0 경로로 이동한다. net7.0
개발자 재은
'Server' 카테고리의 글 목록