Dapper 사용 중에 발생한 의문
세가지(단, Dynamic은 키워드로 사용)
Dynamic과 Object와 var는 뭔가 공통점이 있어서 따로 검색
http://blog.naver.com/PostView.nhn?blogId=dotnethelper&logNo=60178694913 (var의 타입변경이 안된다고 적혀있음)
http://www.dotnettricks.com/learn/csharp/differences-between-object-var-and-dynamic-type
https://stackoverflow.com/questions/21080346/difference-between-object-dynamic-and-var
dynamic != object 이다
object를 이해하려면 unboxing/boxing도 이해해야 함
하나 의문점
- var 는 선언 시점에 타입을 정한다고 하고 정해진 이후에는 타입을 변할 수 없다고 해서 형변환이 안되는가 싶어 테스트 해봤는데 형 변환이 됨
왜 그런 말이 적혀있는지는 모르겠네..
어쨌든 공통점은 유연한 프로그래밍??
이런것이 가능하게 설계된 키워드들이라는 것
바인딩이 느슨하다고 생각하기도 싶지만 var는 컴파일 시점에 이미 타입을 확인하므로 이런점은 다르다
그러면 <T> <dynamic> 이것은 무엇인가??
그리고 결과적으로 보면 인터페이스를 사용하는 경우와 Dynamic을 사용하는 경우가 겹칠 수 있다
이유: 상속관계가 아니지만 dynamic을 사용해서 상속된 객체처럼 사용할 수는 있다 (근데 비추다 명확하지가 않을 것 같다)
어쨌든 <T> 는 interface를 사용해서 해당 타입에 대해 사용을 하는 것이라고 볼 수 있고
<dynamic> 도 컴파일 때 타입확인이 아니라 실행 때 확인하며 유연한 제너릭을 제공??? 하는 느낌이다
그렇다면 모든 객체를 받아 올 때 <dynamic>은 만능인가? 끝이 없다..
여기서 일단 정리
- 두개가 공통점이 많으면서 dynamic이 더 한계가 없는(더더 유연한) 느낌이다
'My Work > 파편 조각' 카테고리의 다른 글
RESTful Anti-design (0) | 2017.10.18 |
---|---|
RESTful API 디자인(네이밍) (0) | 2017.10.18 |
REST란 무엇이냐? (1) | 2017.10.18 |
단위테스트 - TDD (0) | 2017.10.18 |
CI 서버 - 젠킨스 - 지속적통합 (0) | 2017.10.18 |