반응형

전체 글 173

explicit interface implementation

Array class는 분명 IList 인터페이스를 구현하고 있다. 그런데 왜 .Count 속성을 쓸 수 없는 걸까?explicit interface implementation을 이용해서 그렇다. 이렇게 인터페이스를 구현할 경우, 인터페이스로 타입 캐스팅을 해주지 않으면 메소드를 호출할 수 없다.using System;using System.Collections.Generic;using System.Text.RegularExpressions;using System.Threading;namespace ConsoleApp1{ internal class Program:IDisposable { private static void Main() { new Pr..

C# 2024.12.24

왜 같은 input에 다른 MD5 값이 나올까?

파일을 서버에 업로드하고, 그 파일을 다시 다운로드받는 프로그램을 만드는 중이었다. 서버와 로컬의 파일 MD5 값이 같을 경우 이미 같은 파일을 가지고 있다고 판단하여 다운로드를 스킵하도록 하고 싶다. 근데 어찌된 일인지 똑같은 파일을 업로드하고 다운로드하는데 두 파일의 MD5가 다르게 나온다. 대체 왜 이러는 걸까? 뭐, 사실 당연한 말이지만, 같은 input에 다른 MD5 값이 나올 일은 절대 없다(MD5 알고리듬이 정상이라면). 즉 input이 같아 보이지만 사실은 다르다는 거다.C:\Users\nasoo>certutil -hashfile "C:\ForceMonitor\src\ForceMonitor2\forcemonitor3\bin\Debug\KOSPIDAQ.txt" MD5 MD5의 C:\Force..

암호학 2024.12.22

ubuntu update-ca-certificates

목표fullchain.pem을 갖고 있을 때 curl https 성공하기 환경Ubuntu 20.04.6 LTS 우선 curl https를 해 보면 아래와 같이 출력된다.ubuntu@ubuntu:~$ curl https://api.motrader.co.kr/terms/listcurl: (60) SSL certificate problem: unable to get local issuer certificateMore details here: https://curl.haxx.se/docs/sslcerts.htmlcurl failed to verify the legitimacy of the server and therefore could notestablish a secure connection to it. To..

ubuntu 2024.12.21

public 대신 internal을 사용할 수 있다면 internal을 쓰자.

접근 제한자는 엄격할 수록 프로그래머의 선택지를 줄일 수 있으므로 좋다. 하지만 그럼에도 불구하고 나는 public을 internal 대신 써 왔는데, 그 이유는 단순했다. public은 6글자고 internal은 8글자였기 때문이다. 쓰는데 후자가 33% 더 오래 걸린다. 그런데 오늘 버그를 하나 발견하면서 internal을 써야겠다고 다짐했다. 컴파일러가 보내주는 경고는 디버깅에 도움이 될 수 있는데, internal을 쓰면 절대 초기화되지 않는 변수를 판정할 수 있다. 아래 소스 코드를 컴파일하면using System;namespace ConsoleApp1{ public class Program { internal byte va; static void Main()..

C# 2024.12.21

MVVM(3) Button 하나, TextBox 둘, DataGrid 하나

아래 블로그를 참고하였다.[WPF][MVVM][Study] MVVM 실습 3 - 학생 리스트 만들기 [WPF][MVVM][Study] MVVM 실습 3 - 학생 리스트 만들기MVVM 패턴을 활용해 WPF로 간단한 학생 리스트를 만들어 보았다. 0. 파일 구조 - 파일의 구조는 아래와 같다. 1. View 생성 [xaml] [code-behind] using System.Windows; namespace WPF_MVVM_EX_App { public partial class MainWindosteadycodist.tistory.com   버튼을 누르면 위 텍스트 박스에 입력한 수 X에 1을 더한 수 Y를 아래 텍스트 박스에 출력하고, DataGrid에 (X, Y)가 적혀있는 행을 추가하는 프로그램을 MVVM..

MVVM 2024.12.20

MVVM(2) TextBox 둘, Button 하나

https://steadycodist.tistory.com/entry/WPFMVVMStudy-MVVM-%EC%8B%A4%EC%8A%B5-2-%EB%8B%A8%EC%9C%84-%EB%B3%80%ED%99%98%EA%B8%B0-2 [WPF][MVVM][Study] MVVM 실습 2 - 단위 변환기 2이번에는 버튼을 눌러야만 단위를 변환해주는 단위 변환기를 만드는 실습을 해보았다. 1 ~ 3. (실습 1)을 참고하여 기본적인 작업을 참고 4. Command 클래스 생성 및 코드 작성 1) Command 클래스를 생성steadycodist.tistory.com위 블로그를 참고했다. MVVM을 이용하여 버튼을 누르면 아래 텍스트 박스에 (위 텍스트 박스에 적힌 수+1)이 나타나는 프로그램을 작성했다.   Main..

MVVM 2024.12.20

MVVM(1) 두 개의 TextBox

아래 블로그를 참고해서 만들었다.[WPF][MVVM][Study] MVVM 실습 1 - 단위 변환기 [WPF][MVVM][Study] MVVM 실습 1 - 단위 변환기MVVM을 만들면서 이해하기 위해 간단한 실습을 해보았다. 아래 블로그를 참고해서 만들었다. https://esound.tistory.com/10 [C# WPF] MVVM 간단하게 시작하기 - 1 (데이터바인딩, 연동) MVVM, Model - View - ViewModelsteadycodist.tistory.com 두 개의 텍스트 박스가 있는데, 위 텍스트 박스에 X=0~255를 입력하면 아래 텍스트 박스에 X+1이 출력되는 매우 단순한 GUI 프로그램을 MVVM으로 만들었다.   MainWindow.xaml ..

MVVM 2024.12.20

나는 동적 타이핑이 싫어.

무슨 코드를 써야 오류가 나지 않을지를 알 수가 없다. 그걸 알려면 내가 쓸 변수의 타입을 알거나 무슨 인터페이스를 제공하는지 알아야 하는데, 일일히 명시하거나 문서에 써 놓는 수 밖에 없다. 반대로 말하면 아무것도 명시되어있지 않고 변수만 함수로 전달하면 답이 없다는 거다. add(x,y) 같은 간단한 함수야 x+y 갈기면 되겠지만, trainModel(model, dataset) 같은 함수는 뭐 대체 어떻게 하라고? 정적 타이핑도 문서가 중요하긴 하지만 동적 타이핑 언어에서 문서화가 안 되어 있다? 지옥문 열리는 거다. 문서 없으면 한 글자도 코딩 못 한다. 문제는 뭐냐면 동적 타이핑을 쓰는 언어, 예를 들어 Python, JavaScript 등이 널리 알려져 있고 많은 사람들이 읽고 쓴다는 거지. ..

잡담, 뻘글 2024.12.05
반응형