Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
해당되는 게시물 520건
  Grepability and space 
작성일시 : 2020. 5. 3. 20:06 | 분류 : Development/Python

In Python, you can put parameters with format "key=value". In this case, you could see there is no space between "=".

At the same time if it is assigning a value to a variable you coud see the space between "=" like "variable = 1".

 

The reason why different using space between "=", is to increase the grepability.

For example if you want to find the line which is calling a method with key=value parameter, you're going to use below command

$grep -nr "key=" .

Otherwise, if you need to find a valiable, you will use below command.

$grep -nr "key =" .

 

|
  "__init__" 과 "__call__"에 대한 이해 
작성일시 : 2020. 4. 18. 12:48 | 분류 : Development/Python

여러분이 아시는것과 같이 Python에서는 함수를 First Class 오브젝트로 취급합니다. 이는 함수가 다른 함수의 파라메터로 사용될 수 있다는 의미 이며, 또한 해당 함수 내에서 실행도 가능하는 것을 의미 합니다.

이와 마찮가지로 클래스의 인스턴스 또한 함수로 취급될 수 있는데, 이는 다른 함수의 파라메터가 될 수 있는 것을 의미하죠. 이 경우에 우리는 __call__ 함수가 필요하게 됩니다. 예를 들어 Class A가 있고, 인스턴스로 a를 선언 했습니다. 여기에 __call__(x, y) 함수가 선언되어 있다면, 이 함수를 호출 하는 경우 우리는 x.__call__(x, y)를 사용할 수 도 있지만 x(x, y)도 가능 합니다.

 

파이썬에서 __init__()는 클래스의 생성자 역할을 하고 있습니다. (마찮가지로 __del__()는 종료자 역할을 제공함) 이후 클래스를 함수로써 호출 가능하게 활용하기위하여 사용하는 특수한 메소드가 바로 __call__() 이 됩니다. 그리고 우리는 __call__ 함수를 이용하여 객체의 생성 및 종료와 관계 없이 객체의 내부 상태를 변경 할 수 있습니다.

class Stuff(object):

    def __init__(self, x, y, range):
        super(Stuff, self).__init__()
        self.x = x
        self.y = y
        self.range = range

    def __call__(self, x, y):
        self.x = x
        self.y = y
        print '__call__ with (%d,%d)' % (self.x, self.y)

    def __del__(self):
        del self.x
        del self.y
        del self.range

>>> s = Stuff(1, 2, 3)
>>> s.x
1
>>> s(7, 8)
__call__ with (7,8)
>>> s.x
7

출처: https://stackoverflow.com/questions/9663562/what-is-the-difference-between-init-and-call

|
  Python에서의 "_" Underscore 왜 쓰는거지? 
작성일시 : 2020. 4. 18. 10:48 | 분류 : Development/Python

주요 사용 용례

  • 인터프린터에서의 활용: 인터프린터에서는 "_"은 가장 나중에 실행된 명령의 결과를 의미
  • 이름으로써 활용: 임시적인 Throw-away 이름으로 활용하며, 예를 들어 특정 이름을 특정할 의미가 없는 경우에 활용 예를 들어 과거 For 루프에서 활용했던 i 와 같은 의미로 "_"를 활용 할 수 있음
for _ in range(10):
	print ("Hi 10 times")

 

  • Django: Translation lookup 함수을 위한 축약형으로 활용할 수 있으며, 혼동을 피하기 위하여 "_"를 잦은 활용은 피하는게 좋음
    참고: https://docs.djangoproject.com/en/dev/topics/i18n/translation/
  • 이름 앞에 "_" 활용 (예: _variable): "_"로 시작하는 함수 또는 변수는 Private이라는 의미를 갖고 있음, 예를 들어 from <module> import * 을 통해 모듈을 로딩하는 경우 "_"로 시작하는 요소들은 import 되지 않음. 이 경우 __all__ 을 이용하면 명시적으로 로딩 가능
A name prefixed with an underscore (e.g. _spam) should be treated as a non-public part of the API (whether it is a function, a method or a data member). It should be considered an implementation detail and subject to change without notice.

 

  • 이름 앞에 "__" 활용 (예: __variable): 이름 앞에 두개의 "__"를 쓰는 경우 특히 함수명앞에서 사용하는 경우 자식 클래스의 함수 명과의 충돌을 피하기 위해서 활용. 
    • 이름앞에 "__"이 사용되는 경우 이는 _classname__method_name 으로 치환
    • 이름앞에 "_"이 사용되는 경우 이는 _method_name으로 치환
class Super():
	def __method_a(self):
    	pass

class Child(Super):
	def __method_a(self):
    	pass
        
##########################
# 실제 이름: _Super__method_a,
# 실제 이름: _Child__method_a

 

  • 이름뒤에 "__" 활용 (예: __init__): 파이썬에서 특별한 이름을 갖는 메소드들에 대하여 사용하는 이름 명명 규칙.
    • 사용자 함수와의 이름 충돌을 피하기 위하여 사용
    • Override 가능

원글 출처: https://shahriar.svbtle.com/underscores-in-python

 

|
  SCVMM에서 확인되는 Missing VM 왜 그럴까요? 
작성일시 : 2014. 4. 27. 23:34 | 분류 : Cloud

왜 이러는걸까요?
image

VM tes-0이 두 개로 보이는군요.

그래서 로그를 한번 봤습니다.
로그 수집 방법은 “http://blogs.technet.com/b/jonjor/archive/2013/10/07/vmm-repro-simple-tracing-for-vmm.aspx

08103 [1]05B8.0AB8::‎2014‎-‎04‎-‎15 16:34:56.880 [Microsoft-VirtualMachineManager-Debug]26,4,VMRemovedEventProcessor.cs,83,Eventing Refresher (VM Removed) - Updating VM tes-0:5919706D-6D83-45BC-876F-F1AC5C6873F1 to Missing state from PowerOff. Refresher ID: 13e6be4b-da5f-4117-b74e-2136f04cd299,{00000000-0000-0000-0000-000000000000}

26174 [1]05B8.084C::‎2014‎-‎04‎-‎15 16:43:14.166 [Microsoft-VirtualMachineManager-Debug]26,4,VmRefresher.cs,2404,We are trying to add new VM tes-0:CF472C21-B969-4C6B-81E0-A5CDA9442EA8. Refresher ID: 0b5f3ff7-fb51-4491-bf33-661529c08485,{00000000-0000-0000-0000-000000000000}

역시 로그는 위대 합니다.
동일한 tes-0 이라는 이름을 갖는 VM이지만 실제로 ID는 5919706D-6D83-45BC-876F-F1AC5C6873F1 과 CF472C21-B969-4C6B-81E0-A5CDA9442EA8 로 완전히 다릅니다. 당연히 SCVMM에서는 ID로 구분하겠죠. 그렇기 때문에 동일한 tes-0 이지만 다른 VM으로 취급합니다.

재미있는 사실은 VMM 로그상에서 Refresher 즉 새로 고침을 통해 해당 VM이 제거된걸 로그상에서 확인 할 수 있듯이 확인하였습니다. 하지만 VMM 콘솔에서는 여전히 Missing으로 보여주고 있군요.
(물론 이렇게 된 이유에는 아마도 고객이 tes-0을 Hyper-v 콘솔에서 삭제하고 다시 생성해서 발생했겠지만요.)
(이렇게 SCVMM을 통하지 않고 관리되는 경우를 Out-of-band라 부릅니다. 그리고 이 경우는 Out-of-band로 제거된 경우를 의미 합니다.)
실은 이는 By Design 입니다. 고객이 확인하고 필요하다면 해당 정보를 제거하라는 의미죠.

다만 이러한 설정을 자동으로 진행 되도록 할 수는 있는데… 권고 사항은 아니니 충분히 고려하시고 적용하시기 바랍니다.

HKLM\Software\Microsoft\Microsoft System Center Virtual Machine Manager\Server, name=DeleteVmsFromVMMWhenDeletedFromHyperV
type=DWORD
Value=1

감사합니다.
지식 From 이정훈 부장님

중요한 점은 SCVMM을 통해서만 VM을 관리하라! 라는 점이죠. 그렇다면 절대 이런 문제를 걱정하실 필요는 없습니다.

|
  SCOM 데이터 엑세스 서비스 이중화 
작성일시 : 2014. 4. 26. 07:03 | 분류 : Cloud

안녕하세요.

오늘도 역시 SCOM 애기를 좀 해야 할꺼 같은데요.
다름이 아니라 데이터 엑세스 서비스 이중화에 대해 이야기 할까 합니다.

데이터 엑세스 서비스란 SCOM의 관리 서버들이 제공하는 SCOM DB 등에 대한 접속 관리 서비스로 예를 들면 우리가 흔히 이용하는 SCOM관리 콘솔이 이 서비스를 이용하고 있습니다.

문제는 여러분이 때에 따라서 SCOM이 발생 시키는 여러 ALERT에 대한 Recovery Runbook을 SCOr (시스템 센터 오케스트레이터)등에 등록하여 서비스를 하는데 이때 필요에 따라 고 가용성을 확보 해야 할 수 있습니다.
예를 들어 특정 Alert에 대란 Recovery을 위한 Runbook 을 SCOr에 등록해 놓았습니다. 문제는 하필 그 시점에 SCOr로 연동해 놓은 SCOM의 MS (Management Server)의 데이터엑세스 서비스가 문제가 있었다면 당연히 Recovery Runbook이 동작하지 않겠죠.

자 실은 관제의 경우 둘 또는 셋 이상의 관리 서버 구성만으로 고 가용성이 확보 됐지만 데이터 엑세스 서비스 또한 그렇게 가능할까요?
당연히 가능하겠죠. 다만 NLB 또는 하드웨어 L4가 필요할 뿐이죠.

image

만약 H/W L4를 통해 구현하신다면 아래와 같은 정보가 필요합니다.

Load-balanced address:
- Load-balanced FQDN is required and needs to be created in DNS

Physical server nodes:
- <FQDN of MS>
- <FQDN of MS>

OpsMgr Console service:
- Source: - any TCP >1023
- Load-Balance Type: Round-robin load balanced
- Destination:  TCP 5724
- Keep-Alive: Session affinity

Health Check Method: LooksAlive TCP probe

감사합니다.

|
  VDI RDS의 Remote FX가 도대체 뭐야? 
작성일시 : 2014. 4. 25. 10:33 | 분류 : Cloud

안녕하세요.
저도 처음에 햇갈렸던 부분인데… 도대체 RemoteFX 그 실체가 무엇이냐 였습니다.
”결론은 고급 사용자 환경을 위한 여러 구성들의 집합’ 이 아닐까 합니다.
그럼 구체적으로 확인해 보겠습니다.

RemoteFX는 크게 보면 4가지 정도 기능으로 요약 할 수 있습니다.

image

RemoteFX for WAN
- 자동으로 네트워크 상태를 확인하고 그에 맞춰 사용자 경험을 제어 합니다.
예) 바탕화면 배경 조정, 동영상의 프래임 수 조정등
- WAN 환경에서도 멀티 터치 뿐아니라 자동 화면 전환 및 스크린 맞춤 기술등을 제공 합니다.

GPU 지원
- 3D 영상 제작 및 편집 실행을 위한 물리 GPU 공유 기능 뿐 아니라 소프트웨어 GPU를 지원 합니다.

USB Redirection
- 로컬 접속 장치에 대한 VDI 장치 원격 연결을 지원 합니다.
예) USB 뿐 아니라 PC에 연결된 카메라 등

리모트 데스트톱 클라리언트
- 윈도우 계열 리모트 데스크톱 클라이언트뿐 아니라 Mac OS, iOS, 안드로이드를 포함한 모든 리모트 데스크톱클라이언트에도 멀티 터치를 포함한 모든 기능들을 동일하게 제공 합니다.

자 그럼 좀 더 구체적으로 확인해 볼까요?

RemoteFX for WAN

image

- 리모트 데스크톱에서 실행되는 미디어의 타입과 네트워크 대여폭을 고려하여 적절한 코덱 및 품질을 선택합니다.
- 네트워크 대여폭에 맞춰 메모리 사용 효율 또는 네트워크 대여폭 사용 효율을 고려한 맞춤 전송 기술을 제공하여 네트워크 대여폭이 좋지 못한 경우 데이터 압축 전송을 지원 합니다.
- TCP 뿐 아니라 WAN 구간에서의 적절한 성능 보장을 위하여 UDP 연결을 제공 합니다.
- 화면 전송 시에 영역을 분류하여 최적의 전송 방법을 사용하여 전송시의 네트워크 대역폭을 최소화 합니다.
image
 
- WAN과 같은 대역폭의 제한이 있을 경우, 텍스트를 먼저 표시하고 이미지를 단계적으로 선명하게 표시해 줍니다.
image

RemoteFX 미디어 스트리밍

- 윈도우 미디어에 대한 Redirection을 지원 합니다.
예: Lync의 동영상 회의 진행 시 동영상 스트리밍 데이터는 원격 데스크톱을 통하지 않고 직접 사용자에게 스트리밍 됩니다.

image
-  미디어 타입을 판별하여 적절한 동영상 재생 코덱을 사용합니다.
예: Flash 및 QuicTime, Silverlight의 경우 최상의 압축 기술 및 품질을 제공하는 H264 코덱을 통하여 재 가공하여 데이터를 제공 합니다.
image
- 현재 연결된 네트워크 상황에 맞춰 동영상의 프레임 수 및 품질을 제어하여 끊김없는 동영상 실행 환경을 제공 합니다.

RemoteFX GPU

- RemoteFX vGPU (일반적으로 vGPU로 불림)
Hyper-v 호스트에 설치된 물리 GPU를 각 가상 데스트톱에 할당하는 방식이 아닌 공유 하는 방식으로 구현되어 하드웨어 자원 사용의 레버리징은 물론 DirectX 11 기반의 그래픽 원본에 대한 최고의 사용자 경험을 제공 합니다.
1) 3D 그래픽 어플리케이션에 대하여 최고의 성능을 제공 합니다.
2) 전체 화면 모드에서도 끊김없는 동영상 재생 및 화면 전환 성능을 제공 합니다.
3) 원격 데스트톱 연결에서 뿐 아니라 콘솔 세션 (관리자 접속 세션)에서도 동일한 고급 사용자 경험을 제공 합니다.
- RemoteFX CPU 에뮬레이트 소프트웨어 GPU (일반적으로 소프트웨어 GPU로 불림)
물리 GPU가 없는 환경에서도 소프트웨어 GPU를 제공하여 최선의 그래픽 처리 환경을 제공 합니다.
Office 및 웹 브라이징 업무에 대해 최적화된 환경을 제공 합니다.

RemoteFX에 대한 몇 가지 기능들을 다뤄 봤는데요.
실은 이 외에도 정말 많은 기능들이 숨어 있고 또한 말씀 드린 기능들도 실제로는 많은 숨은 기능들을 품고 있습니다. 다른 내용들은 차후에 천천히 살펴보도록 하겠습니다.

감사합니다.

|
  IaaS PLA (Product Line Architecture) 
작성일시 : 2014. 4. 21. 11:08 | 분류 : Cloud

안녕하세요.
Microsoft Service에서 Private Cloud를 그리고 Hybrid Cloud를 어떻게 구현하는지 궁금하시지 않나요?
따끈 따끈한 PLA 설계 문서가 나와 공유해드립니다.

당연히 Windows Server 2012 R2 및 System Center 2012 R2 기반입니다.

IaaS PLA Public Versions
· Infrastructure as a Service Product Line Architecture-Fabric Architecture Guide (public)
· Infrastructure as a Service Product Line Architecture - Fabric Management Guide (public)
· Infrastructure as a Service Product Line Architecture-Deployment Guide (public)
· Infrastructure as a Service Product Line Architecture - Consolidated Set (public)

Microsoft 파트너분들은 좀 더 많은 내용이 제공되는데 아래와 같습니다.
IaaS PLA Partner Versions
· http://www.microsoftpartnerserverandcloud.com/SitePages/Incentives_DatacenterPracticeGuidanceAccelerator2.aspx

감사합니다.

|
  SCCM에서 C:\Windows까지 소프트웨어 인벤토리 정보를 수집하려 했더니 수집이 실패 하네요. 
작성일시 : 2014. 4. 13. 22:38 | 분류 : Cloud

현상
일부 Computer 들에서 Software Inventory 정보 수집이 실패함

원인
C:\Windows 의 모든 EXE 및 DLL에 대한 Inventory 수집을 진행 함에 따라 수집 데이터의 크기가 너무 커짐
즉 기본 사이즈인 5MB로는 해결이 불가능

해결 방안
HKLM\Software\Microsoft\SMS\Components\SMS_SOFTWARE_INVENTORY_PROCESSOR\Max File Size 
Default 5MB -> 20MB로 늘림

추가 구현 사항
실제 Client가 서버에 전송하는 데이터의 사이즈가 커짐에 따라 전체 시스템에 대한 인벤토리 수집 및 전송 진행 시 네트워크 성능 이슈가 발생 될 것으로 예상되어 Collection을 보다 세분화 하여 구현 한 후 그에 맞은 데이터 수집 설정을 진행 하기로 함

기타
해당 구현을 진행 한 경우 아마도 바로는 해결은 않될 것으로 보임
(일반적으로 Full Scan 주기가 하루 이기 때문에 적용 후 하루 이상이 지났을 때 데이터 수집이 진행 됨)
즉 Delta 가 수집되는 기간인 하루 이내의 경우 지속적인 인벤토리 수집 실패 메세지가 전달될 것으로 보임

* 참고 사항 : Server 쪽의 Sinvproc.log 를 보면 해당 이슈 발생 시 로그에 “File size of 11013429 byte has exceeded the limit of 5000000 byte” 라는 메세지가 기록됩니다. Trouble Shooting에 참고하세요.

|
 Prev   1   2   3   4   ···   65   Next