반응형

c# 13

[C# 8.0] 배열 접근을 파이썬처럼! Range와 Index (ft. 깊은 복사)

환영합니다, Rolling Ress의 카루입니다. C# 8.0 들어서 슬라이싱 기능이 추가가 됐죠. 이제 더 이상 substring() 같은 거 쓸 필요 없습니다. 바로 예제 코드부터 볼게요. ** C# 9.0 / 10.0 의 최상위 문 및 전역 using을 사용합니다. int[] classes = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, }; Console.WriteLine($"마지막 반은 {classes[^1]}반 입니다."); 출력 결과: 마지막 반은 8반 입니다. 배열 형식 컨테이너에 접근할 수 있는 방법이 다양해졌습니다. 인덱스 연산이 많아졌는데, 역순 인덱스가 추가되었습니다. 파이썬에서 [-1]라 하면 마지막 원소를 선택했는데, C# 에서는 [^1]을 통해 마지막 원소를..

카테고리 없음 2022.03.02

[C# 10.0] C#의 편리한 구문들 모음 (Syntax Sugar)

환영합니다, Rolling Ress의 카루입니다. 오늘은 C# 의 여러 편리한 문법들을 소개해드리려고 합니다. 처음에는 C# 코드들이 상당히 번잡하다는 느낌이 들었는데, 8.0부터 점점 간결해지더니 10.0 현재는 오히려 다른 언어들에 비해서도 상당히 깔끔해졌어요. 하나씩 살펴봅시다. ** C# 10.0에만 한정된 내용은 아닙니다. 7.x부터 9.0까지의 내용이 섞여있습니다. 1. 최상위문(Top-level statements) (C# 9.0) 사실 이건 쓸 일이 많지 않아보이는데, 그래도 간단한 테스트용으로는 충분히 요긴하게 쓸 수 있으니까 가져와봤습니다. C# 9.0 이상 환경에서 동작합니다. 기타 프로젝트에서는 을 Preview로 설정해주세요. using System; namespace Applic..

C# & .NET 2022.02.23

GGHS Time Table 5 개발 스토리 #4: 최적화를 위해

환영합니다, Rolling Ress의 카루입니다. 사실 지금쯤이라면 GGHS Time Table 5 베타4가 올라갔어야 합니다. 그런데 제가 실수로 개발자용 기능을 모두에게 열어두고 제출한 바람에(...) 급하게 내렸습니다. 소소하게 Bugfix를 하고 있었는데, 기존 채팅 기능에서 문제가 있었던 알고리즘을 같이 손보기로 했습니다. 이게 ReloadChat() 메서드 본문입니다. 보시면 아시겠지만...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 맞아요. 잘못 본 거 아닙니다. 매 초마다 (chatDelay = 1000) 서버에 있는 모든 내용을 통으로 긁어와서 채팅창에 뿌리는 겁니다. 새로 보낸 메시지가 없더라도. 이게 뭔... 그래요. 저땐 그걸 생각을 못했습니다. private async Task LoadChatsAsync(..

고양국제고 2022.02.23

GGHS Time Table 5 개발 스토리 #3: 베타버전 배포 완료

환영합니다, Rolling Ress의 카루입니다. GGHS Time Table 5의 베타 버전이 오늘 오후 10시 30분 경 마이크로소프트 스토어에 올라갔습니다. 임시 시간표가 나오지 않은 관계로 시간표 기능은 정상 동작하지 않습니다. 다만, 선택과목을 선택하면 정식 버전 배포시 그대로 유지되어 업데이트 됩니다 ;) 그럼 뭘 베타로 테스트하냐? 채팅방이요. SQL 서버와 직접 연동해서 10기 학생들에게 실시간 채팅 기능을 제공합니다. 심심할 때 들어와서 이야기하도록...ㅋㅋㅋㅋㅋㅋ 물론, 누군가를 왕따시킨다거나 기타 부적절한 사용이 확인되면 제가 직접 검열을 할 겁니다. 그런데 역시... 새로 도입한 채팅 기능에서 문제가 생겨버립니다. System.NullReferenceException이면 뭔가 Nul..

고양국제고 2022.02.23

[C# UWP] UWP에서 설정값 저장하고 불러오기

환영합니다, Rolling Ress의 카루입니다. ​ GGHS Time Table을 개발하면서 이제껏 설정값을 그냥 StorageFile 클래스로 걍 파일에 텍스트로 읽고 쓰며 저장했습니다. 그러다가 XmlWriter에 대해 알게되고 그 뒤로는 그걸 써왔는데, UWP에서 제공하는 아주 쉽고 간단한 방법이 있더군요. // 설정 쓰기 SubjectList list = new(ttc.Korean.Selected, ttc.Math.Selected, ttc.Social.Selected, ttc.Language.Selected, ttc.Global1.Selected, ttc.Global2.Selected); DataWriter writeSubject = new(DataFile, list); DataWriter wr..

C# & .NET 2022.02.23

[C# UWP] UWP에선 ConfiguraionManager 대신 이걸 사용하세요

환영합니다, Rolling Ress의 카루입니다. 보통 앱을 개발할 때, SQL 등의 connectionString은 app.config 에 넣어두죠. 그리고 C# 에서는 ConfigurationManager을 이용해 불러들입니다. 그게 이상처럼만 잘 된다면 얼마나 좋을까요. 계속 오류가 났습니다. 보아하니 UWP 플랫폼에서는 특유의 폐쇄성으로 인해 ConfigurationManager가 제대로 동작하지 않는다는 모양이에요. File 클래스도 사용하지 못해서 Windows.Storage의 클래스들을 사용해야만 하는데, 여러모로 불편합니다.​ ConfigurationManager and AppSettings in universal (UWP) app I would like to store an API key..

C# & .NET 2022.02.23

C# 머신러닝 프로젝트: NOCHES 멤버의 말투를 잡아라!

환영합니다, Rolling Ress의 카루입니다. ​ C# 으로 머신러닝 모델을 학습시킬 수 있다는 걸 알고.. 부리나케 준비했습니다. NOCHES 친구들과 함께 실험을 진행했는데, 확인해보시죠. Rolling Ress 실험 개요 ======================== 진행자: 카루 진행기관: Rolling Ress ​ 피실험자: ㄴ**, ㅂ**, ㅅ**, ㅅ**, ㅇ** ​ 실험 개요: - 머신러닝을 통한 기계의 언어 분류 - 피실험자의 NOCHES 카톡 데이터를 사용할 예정 ​ - 개인의 카톡 데이터를 학습시킨 뒤 임의의 문장을 넣었을 때 누구의 말투와 가장 비슷한지 알려줌 ​ 기대 효과: - 다른 멤버 말투 따라하기 전에 진짜 그 멤버 말투인지 검증 가능 ​ 피실험자 유의사항: 없음. 평소처럼..

[C# ML] C#으로 머신러닝 모델 구축하기 (ML.NET)

환영합니다, Rolling Ress의 카루입니다. import sklearn import tensorflow 보통 머신러닝과 딥러닝 학습을 할 땐 파이썬을 사용하죠. ​ 그런데 제 주력 언어는 C#입니다. (원래는 C++이었지만, 최근에 UWP 개발을 하면서 바뀌었어요...ㅎㅎ) 그런데 C#에서는 파이썬의 사이킷런과 텐서플로를 이용하기 힘들죠. 뭐, IronPython을 이용해서 편법을 쓸 수는 있어요. 그런데 C#에서는 dynamic으로 받아야 하고, 무엇보다 C#은 컴파일 언어인데 비해 파이썬은 인터프리터 언어라, 괴리감이 엄청납니다. 그래서 힘들더라고요. https://dotnet.microsoft.com/en-us/learn/ml-dotnet/get-started-tutorial/install M..

C# & .NET 2022.02.20

[셰어텍] 8. 회귀본능

환영합니다, Rolling Ress의 카루입니다. ​ ...오! 저 혼자 제 3세계로 떨어진 기분입니다. 남들 다 학교에 있는데 나 혼자 집이라니. (뭐 엄밀히 말하면 저만 조퇴한 건 아닙니다만...) 저는 그새 정말 바쁜 하루를 보냈습니다. 그리고 마침내 들려오던 우리 셰어텍의 절규.... 처음으로 돌아가자! ShareTech, 2021/10/29 그래요. 계획이 망가지는 것. 이 얼마나 멋진 일입니까? 아, 물론 그건 내 계획이 아니라는 전제 하에. 저런... 이건 우리 계획이죠. .....그래요. 뭐, 그럴 수 있습니다. 사실 저는 신경 쓰지 않으셔도 됩니다. 제가 뭐 GTT 개발하면서 갈아엎은 게 한두번일까요. 이런 상황은 익숙하거든요. 원래 무언가를 개발한다는 게 쉬운 일은 아닙니다. ​ 셰어텍..

[셰어텍] 4. 갈아엎...^^; 새로운 시작

환영합니다, Rolling Ress의 카루입니다. ​ 블로그 글 열심히 봐주셔서 감사합니다, 오늘은... 이제 또 그동안 얼마나 했나 짚어봐야겠군요. 칠판 인증샷부터 가겠습니다. 자, 왼쪽은 큰 틀 디자인입니다. MainPage.xaml 페이지에서 시작해서 서브메뉴를 클릭할 경우 각각의 Page들로 넘어가는 형식을 취했었죠. 이건 지난번에 보여드렸습니다. 오늘은 그냥 제가 구현만 조금 더 얹은 거고요. ​ 오른쪽에는 웬 다변수함수의 편미분 식이 있습니다...만 이거 우리 교과서 문제입니다. 그냥 '편'법(...죄송합니다)으로 푼 거예요. 이미 알고 있는 분들도 있겠지만, 풀이는 아래에. [NOCHES+MATH] 다변수함수와 편미분 환영합니다, Rolling Ress의 카루입니다. 수학 II 교과서 67쪽..

반응형