HttpListener를 사용하여 개발 중에 서버포트로 연결이 불가하다는 메시지로 Exception이 떨어지는 현상이 발생하여 찾아본 명령어


명령 프롬프트(관리자 권한)를 열고 아래 명령어에 포트만 변경하여 실행하고 실행해보자


netsh http add urlacl url=http://*:8888/ user=Everyone listen=yes 


아래 참고 블로그를 링크 걸어놓는다.


참고 : http://www.windowcmc.com/q.php?q=netsh-http-kr-manual

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

출처 : https://nabacg.wordpress.com/2013/05/13/gc-background-vs-concurrent-mode/


번역이며 오역이 있을 수 있습니다.


저는 최근 .NET에서 Garbage Collection에 대해 많은 것을 읽었습니다. 프로젝트 중 하나에서 메모리 누출을 연구하고 점점 더 많은 MSDN 기사를 읽었습니다. 놀랍게도 지난 번에 주제에 대해 괴롭힘을당한 이후로이 지역에 새로운 개발이 많이있었습니다. 그래서 다른 사람들이 유용하다고 생각할 때 나중에 참조 할 수 있도록 그들을 요약 해 보겠습니다. 이 MSDN 기사 에서 CLR의 현재 GC 상태에 대한 개요를 찾을 수 있으므로 자유롭게 시작할 수 있습니다.

워크 스테이션 대 서버

실제로 두 가지 모드 가비지 콜렉션이 있습니다.이 모드는 구성 파일의 런타임 구성 부분에서 gcServer 태그를 사용하여 제어 할 수 있습니다. 워크 스테이션 가비지 콜렉션은 기본적으로 gcServer = "true"로 설정하더라도 단일 프로세서 시스템에서 항상 사용됩니다.

1
2
4
5
<configuration>
   <runtime>
      <gcServer enabled="true|false"/>
   </runtime>
</configuration>

그 모드는 실제로 꽤 오래되었습니다. gcServer 태그는 .NET 2.0에 도입되었으며 따라서 CLR의 두 번째 버전입니다. 주요 차이점은 서버 모드에서 GC를 수행하는 스레드가 1 개 이상 있고 모두 THREAD_PRIORITY_HIGHEST 우선 순위 수준 에서 실행 된다는 것 입니다. GC 전용 스레드와 각 CPU에 대한 별도의 힙 (일반 및 대형 오브젝트 모두)이 있으며 이들 모두는 동시에 수집됩니다. 여기서 우선 순위가 높은 여러 스레드를 사용하여 최대한 빨리 컬렉션을 만들려고하지만 모든 사용자 스레드가 준비 될 때까지 일시 중지해야한다는 것을 의미합니다. 일반적으로 응답 속도보다 처리량이 높은 서버 응용 프로그램에 더 적합합니다. 이는 일반적인 데스크톱 응용 프로그램의 경우가 아닙니다. 서버 모드는 리소스를 많이 소비 할 수도 있습니다.

동시 vs 백그라운드
서버 vs 워크 스테이션 외에도 동시 및 백그라운드 작업 모드가 있습니다. 둘 다 사용하면 모든 사용자 스레드를 일시 중지하지 않고 전용 스레드가 2 세대를 수집 할 수 있습니다. 0 세대와 1 세대는 모든 사용자 스레드를 일시 중지해야하지만 항상 빠릅니다. 이는 물론 애플리케이션이 제공 할 수있는 대응 수준을 높입니다. 실제 모드는 다양하며 서버 대 워크 스테이션 유형의 GC에 따라 달라질 수 있습니다. 다음 섹션에서 자세히 설명합니다. 조금 혼란 스러울 수 있으므로 아래에서 가능한 모든 조합을 찾을 수 있습니다.

워크 스테이션 가비지 수집은 다음과 같습니다.

  • 병발 사정
  • 배경
  • 비 동시성

서버 가비지 수집 옵션은 다음과 같습니다.

  • 배경
  • 비 동시성

동시 모드
Workstation GC의 기본 모드이며 다중 프로세서 시스템에서도 GC를 수행하는 전용 스레드를 제공합니다. gcConcurrent 태그 를 사용하여 끌 수 있습니다 .

1
2
4
5
<configuration>
   <runtime>
      <gcConcurrent enabled="true|false"/>
   </runtime>
</configuration>

이 모드는 병행 GC 동안 제한된 할당 기능을 희생시켜 가장 많은 시간을 소비하는 Gen2 수집이 동시에 수행되므로 사용자 스레드 일시 중지가 훨씬 짧아집니다. Gen2 수집이 진행되는 동안 다른 스레드는 새로운 임시 메모리 세그먼트를 할당 할 수 없기 때문에 현재 임시 세그먼트의 한도까지만 할당 할 수 있습니다. 현재 세그먼트에서 프로세스가 제대로 실행되지 않으면 모든 스레드를 일시 중지하고 동시 수집이 완료 될 때까지 기다려야합니다. 동시 GC가 아직 진행 중일 때 Gen0 및 Gen1 컬렉션을 수행 할 수 없기 때문입니다. 또한 동시 GC에는 약간 더 높은 메모리 요구 사항이 있습니다.

백그라운드 모드 .NET 4.0
에는 새로운 백그라운드 모드가 도입되었습니다.이 모드는 동시 모드와 비슷한 개념을 가지고 있지만, 동시 모드를 대체해야하기 때문에 기본적으로 설정되어 있습니다. Concurrent는 Workstation에서만 사용할 수있는 반면 Workstation 및 Server 모드에서도 사용할 수 있습니다. 배경 모드가 실제로 Gen2 및 Gen1 컬렉션을 수행하면서 동시에 Gen2를 수행 할 수 있다는 큰 개선점이 있습니다. 이제 gen0, gen1 모음을 전경 모음이라고합니다. 사용자 스레드가 실행 중일 때 별도의 스레드에 의해 2 세대 콜렉션 만 수행되고, 포 그라운드 콜렉션은 모든 사용자 스레드를 일시 중지해야합니다. 또한 전경 컬렉션에는 배경 컬렉션에서 일시 중지가 필요하며, 그래서 그들은 다양한 안전 포인트를 통해 서로 상호 작용합니다. 백그라운드 컬렉션은 서버 GC에서 사용할 수 있으며 .NET 4.5로 시작하는 기본 모드입니다. 서버와 워크 스테이션 백그라운드 모드의 주요 차이점은 백그라운드 GC를 수행하는 스레드의 수입니다. 워크 스테이션에서는 항상 단일 스레드이고 서버 GC에서는 CPU 당 전용 스레드가 있습니다.

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

1. 박스 




2. 개봉

  1. 구성품
    1. 케이블
      • 전원케이블
      • HDMI X 2
      • DP-Mini to DP
      • Usb 3.0(후면 허브)
      • 오디오 케이블
      • D-SUB
    2. 부속품
      • 받침대(좌,우)
      • 나사 X 4
      • 설명서


  1. 조립


친절하게 L, R 써 있고 좌, 우 모니터에 맞는 모양이 다릅니다. 확인하세요.



※ 전동 드라이버 쓰시는 분들 조심하세요 나사가 약해서 헛돌면 저렇게 마모되어 버립니다.


3.  후기


다행히 불량화소가 한개도 없네요

몇 개의 다른 분들 후기를 보고 산 것인데 다른 분들도 불량화소 이야기는 없었습니다.


마침 영화 "침묵의 목격자"가 나와서 켜놓고 사진 찍었습니다. 

연결은 U+ TV이고 UHD TV입니다.


HDMI로 연결해서 보고 있습니다. 

참고로, 모니터 기본 설정은 HDMI 1.4로 되어있습니다. 





혹시 글씨가 확대되면 깨지나 싶어서 근접해서 찍었습니다.

제 눈엔 깨지는 느낌은 없네요.


아래부터는 U+ TV에서 무료로 볼 수 있는 4K(UHD) 영화를 보았습니다. 

시간이 없어 다 못 보고 사진만 몇장 찍고 껐네요.





모니터 메뉴입니다. 

여기에서 HDMI 2.0으로 변경해주셔야 UHD가 나옵니다.


U+ TV에 연결하고 UHD로 컨텐츠를 보려고 하니 모니터가 지원하지 않는다고 나와서 메뉴에 보니 1.4로 되어 있어 변경해 주었습니다.





불량화소 테스트를 하다가 맥북에 연결해서 했더니 모니터 무결점 테스트 사이트 (http://monitor.co.kr/)에서 테스트하려고 보니 

맥에서는 제대로 작동하지 않아서 부트캠프에 연결해서 테스트 했습니다. 


맥북 레티나 15 2013 late에서 잘되네요 

HDMI로 연결했습니다. 


추가로 필요한 후기가 있으시면 댓글 달아주시면 보충하거나 답변 드리겠습니다. 



블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

출처 : http://theburningmonk.com/2014/08/json-serializers-benchmarks-updated-2/

DISCLAIMER : as always, you should bench­mark against your pay­load and use case, the bench­mark num­bers I have pro­duced here is unlikely to be rep­re­sen­ta­tive of your use cases and nei­ther is any­body else’s bench­mark numbers.

You can use the sim­ple test har­ness I cre­ated and see these exam­ple code to bench­mark against your par­tic­u­lar payload.

 

Json.Net, ServiceStack.Text, MongoDB Drive and Jil were all updated to the latest version.

RpgMaker’s NetJson serializer has also been added to the mix and the results are really impressive with a level of performance that’s almost identical to protobuf-net!

image

image

 

Versions tested:

Jil1.7.0
ServiceStack.Text4.0.24
Json.Net6.0.4
fastJson2.1.1.0
MongoDB Drive1.9.2
System.Json4.0.20126.16343
System.Text.Json1.9.9.1
JsonFx2.0.1209.2802
JayRock0.9.16530


블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

변수명 찾기 

http://stackoverflow.com/questions/9801624/get-name-of-a-variable-or-parameter

변수명 찾기, 변수 값 가져오기

https://blogs.msdn.microsoft.com/csharpfaq/2010/03/11/how-can-i-get-objects-and-property-values-from-expression-trees/

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

블루스택을 이용해서 로그를 볼 수 있네요


방법은 블루스택에 apk를 설치하시고(당연 빌드에 로그를 남기게 해야겠죠?)


설치가 되면 CMD(명령프롬프트를 띄웁니다.)

android-sdk가 설치된 경로를 찾습니다. 


전 C:\Program Files (x86)\Android\android-sdk\platform-tools 여기에 설치 되었네요

그리고 명령어를 입력합니다. 


adb logcat  




이제 준비는 끝났습니다.

블루스택에서 기능을 테스트하면 로그가 주~욱 올라올겁니다.


주의) 프롬프트를 선택하면 로그가 안 올라 옵니다.

갑자기 로그가 안 올라온다 느끼면 프롬프트 창에서 ESC키를 한번 눌러주세요 

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

var collectionNames = db.getCollectionNames();
for(var i = 0, len = collectionNames.length; i < len ; i++){
    var collectionName = collectionNames[i];
    if(collectionName.indexOf('cache_') == 0){
        db[collectionName].drop()
    }
}

출처 : http://stackoverflow.com/questions/12844531/mongodb-removing-all-collections-whose-name-matches-a-string


db.getCollectionNames().forEach(function(collection) {

   indexes = db[collection].getIndexes();

   print("Indexes for " + collection + ":");

   printjson(indexes);

}); 






블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

What you want is:

 mongo sm-repository2.db.qa.test.com:27017/testdb --eval "db.stats()"

Or for longer scripts:

 mongo sm-repository2.db.qa.test.com:27017/testdb script.js


출처 : http://stackoverflow.com/questions/4837673/how-to-execute-mongo-commands-through-shell-scripts

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요