본문 바로가기

언어

(6)
[C#] 공변성과 반공변성이란? 공변성과 반공변성 공변성과 반공변성 어떤 의미이고 어떻게 쓰는 것이 좋을까? 개요 사실 공변성과 반공변성을 통칭 가변성이라고 한다. 그리고 이와 반대되는 의미로는 불변성이 있다. 가변성(Variance) : 특정 타입의 객체를 다른 타입의 객체로 변환할 수 있는 성격을 말한다. 공변성(Covariant) : X -> Y가 가능할 때 C가 C -> C로 가능하다면 이는 공변이다. 반공변성(Contravariant) : X -> Y가 가능할 때 C가 C -> C로 사용 가능하다면 이는 반공변이다. 불변성(Invariant) : X -> Y가 가능하더라도 C는 C로만 사용할 수 있다. 기본적으로 제네릭은 불변이다. 좀 더 상세히 설명하기 위해서 아래와 같은 다형성을 가진 환경이 있다고 가정해보자. class ..
[도구] VSC 설정파일 자주 사용하는 옵션들을 아래에 저장해 놓았다.
[Java8] 새로운 collection api에 대해서 java8의 새로운 collection api에 대해서 알아보자. Iterable void forEach(Consumer
[C#] 동기적 재시도(Retry) 함수 구현하기 많은 내용은 포함되지 않았고 일단 필요한 몇번 재시도할 것인지, 익셉션 발생이 핸들러와, 실패시 핸들러를 모두 넣었다. (옵셔널 파라미터라는게 정말 편하다.)
[C#] Thread로 Timeout 구현하기 C#에서 Thread로 timeout구현을 해보았다. Join을 호출하면 파라미터로 주어진 시간동안 현재 스레드가 정지하게 되므로 유의하자. (Join을 호출시 그 시간이 넘었더라고 해도 대상 스레드는 abort되지 않는다.) class로 만들어 쓰자면 이정도가 될 듯 하다.
classpath에 있는 file(resources) 읽어오기 알고리즘 문제를 풀다보면 자꾸 testcase를 입력해야하는데, 이게 너무 귀찮다. 파일의 절대 경로로 할 순 있지만 이는 형상에 올리도 다른 PC에서 작업할 때 각각의 프로젝트 위치가 다르므로 이는 사용할 수 없고.. 기존에 분명이 spring 설정 때 classpath;//path/to/some_thing.context 를 썻던 것 같은데 new File("~~")로 하니 먹지 않더라, 아마 spring 내부적으로 처리해주는 듯 하다. 그래서 찾아보니 아래와 같이 할 수 있다고 한다. 프로젝트의 classpath 설정에 따라 달라질 수 있으므로 유의하면 될 것 같다.