[컴] 정규표현식을 이해하는 데 도움이 되는 사이트

regex 그림 / 정규표현식 그림 표현 / 정규표현식 다이어그램 생성 / 자동 생성 / regualr expression / reg / 101 / 초보 / 쉽게 / 해석 /

정규표현식을 이해하는 데 도움이 되는 사이트

정규표현식 도표를 얻을 수 있는 사이트

javascript 의 regex 를 입력하면 해당하는 도표(다이어그램) 으로 보여준다. 물론 그림을 download 를 할 수도 있다.

  1. https://regexper.com/

정규표현식을 해석 해주는 사이트

원하는 정규표현식을 넣으면, 그것에 대한 설명이 자동으로 만들어진다. 테스트도 가능하다.

  1. regex101: build, test, and debug regex

[컴] RabbitMQ 의 권한 설정

user access control / authorization / authentication / 권한 설정 / 계정 만들기 / 계정 추가하기

RabbitMQ 의 user access control

기본적으로 guest 는 localhost(정확히는 loopback interface) 에 한해 열려있다
이것은 config 파일의 ‘loopback_users’ 을 통해 수정할 수 있다.(참고: RabbitMQ - RabbitMQ Configuration )

remote host 에서 guest 계정 사용하기

guest 계정이 remote host 에서도 접속이 되게 하려면
  • loopback_users = none 해준다.
  • 옛버전에선 [{rabbit, [{loopback_users, []}]}].,
guest 로 외부 ip 에서 접속하는 것은 보안 이슈상 권장하지 않는다.

ID/Password 추가하기


계정은 아래처럼 추가할 수 있다.
rabbitmqctl add_user new-user my_password

password 를 없애려면 아래 command 를 추가하면 된다.
rabbitmqctl clear_password new-user

권한 추가 permission


virtual host '/' 에 대해 username 에게 모든 resource 에 config/write/read permission 을 주려면 아래처럼 하면된다.
rabbitmqctl set_permissions -p / username ".*" ".*" ".*"






[컴] host 에서 VM 로 접속하는 방법

vmbox 의 server 에 접속하는 방법 / 가상머신의 서버로 접속하는 방법 / vmbox bridge

vm 에서 server 를 띄운 상황에서 host 에서 vm 으로 접속을 하는 방법

환경

  • host: Windows10
  • vm: virtualbox 5.2.4

대체로 host 가 gateway 를 하는 경우에 주소는 10.0.2.2 이다.(ref. 3 참고)

bridged networking/Host only networking

기본적으로 vm 의 ip address 가 10.0.2.15 로 보였다. ref. 1 에 따르면 " bridged networking/Host only networking" 를 선택하면 vm 이 고유의 ip address 를 갖고 그것을 사용하면 된다고 한다.

bridged networking

host 가 사용하는 network 에 guest 가 껴들어가는 것이다. host 의 network 에 다리를 놓는다고 상상하면 기억하기 싶다.

internal networking

guest vm 들은 host 와 격리된 network 를 구성하게 된다. 당연히 guest 와 host 와의 통신이 안된다.

그래서 VirtualBox 는 이 시점에 DHCP 같은 서비스를 internal network 에 해줄 수 없다.

Host only networking

virtualbox 가 network 를 만들게 된다. 이 network 가 vboxnet 이 된다. 이 network 의 주소를 guest 가 배분받게 된다.

host 에도 가상의 NIC 가 추가돼서, guest vm 들의 network 인 vboxnet 의 network 에 들어가게 된다. 다만 NAT 와 다른점은 host 가 gateway 역할을 하지 않는다. 그래서 guest 가 인터넷에 접근할 수 없다.

외부에서는 host 만 보이기 때문에, Host-only 라는 이름이라고 한다.[ref. 3]

NAT

virtualbox 에서는 기본적으로 NAT 를 사용하도록 설정된다. NAT 를 사용하게 되면 VirtualBox NAT 엔진이 동작 한다.

host 는 gateway 로 동작한다. 그래서 만들어지는 guest vm 들이 전부 host 에 만들어진 gateway 를 통해서 internet 을 사용할 수 있게 된다.

주의할 점은 여러 guest vm 을 만든다고 할 때 NAT를 중심으로 여러 guest 가 하나의 network 를 사용하는 것이 아니다. 각자가 모두 10.0.2.15 의 ip address 를 가지고 동작한다.

vmbox 에서 port forwarding 설정은 ref. 2 를 참고하자.vbox 에서 네트워크 설정을 NAT 로 사용하면, 설정된 vm 이 자체적으로 Network 를 만들어서, NAT 작업을 하게 된다. 스스로가 gateway 가 된다.

ping issue

+-----------+-------------+-------------+----------------+----------------+
|           | VM <-> Host | VM1 <-> VM2 | VM -> Internet | VM <- Internet |
+-----------+-------------+-------------+----------------+----------------+
| HostOnly  |     Yes     |     Yes     |      No        |       No       |
| Internal  |     No      |     Yes     |      No        |       No       |
| Bridged   |     Yes     |     Yes     |      Yes       |       Yes      |
| NAT       |     No      |     No      |      Yes       |  Port forward  |
| NATNet    |     No      |     Yes     |      Yes       |  Port forward  |
+-----------+-------------+-------------+----------------+----------------+

다른 options

아래 링크에 자세한 설명들이 있다 참고하자.

  1. 버추얼박스 네트워크 이해 및 구성 완벽 가이드 | 김재벌의 IT 이야기

References

  1. https://stackoverflow.com/a/43025206
  2. All about tech: Creating Virtual machine in Virtual box
  3. Oracle VM VirtualBox: Networking options and how-to manage them | Simon Coter Blog

[컴][머신러닝] 머신러닝 학습 사이트

기계학습 / AI 인공지능 학습 / 텐서플로어 학습 / 튜토리얼 / ai 강의 / mooc

머신러닝 Machine Learning

deep learning

Neural Networks, 인공 신경망

AI 관련 projects

graph 모형

기타 자료

[컴] UFS vs eMMC

내장 메모리 스펙  / 플래시 메모리 스펙 / spec / specification

UFS vs eMMC

UFS(Universal Flash Storage) vs eMMC(embedded Multi-Media Card)

일단 UFC 나 MMC 나 전부 스마트폰등 모바일 기기에 들어가는(내장) 메모리에 사용하는 표준이다.

그래서 대체로 스마트폰에 쓰이지만 어디서나 이 표준을 구현해서 사용할 수는 있다.

여하튼 아래 도표를 보면 알 수 있듯이 이 표준을 속도별로 구분하면 eMMC 다음 버전이 UFC 가 되는 것이다. 물론 이것은 eMMC 표준이 더이상 발전을 안한다는 가정이 있다.
  • eMMC --> UFS 



출처 : ref. 1

eMMC

eMMC는 패키지이다. '컨트롤러'와 '낸드플래시 메모리' 를 함께 가지고 있다.
  • 컨트롤러
  • 낸드플래시 메모리


삼성전자는 2015년 2월 128GB UFS(Universal Flash Storage) 내장 메모리를 양산

UFS 2.0 interface

  • 국제 반도체 표준화 기구 ‘제덱(JEDEC)’의 최신 내장 메모리 규격
  • 커맨드 큐 : SSD에서 사용 중인 속도 가속 기능 ‘커맨드 큐(Command Queue)’가 적용
    커맨드 큐는 여러 개의 명령어를 동시에 처리할 수 있고 그에 따라 작업 순서도 변경할 수 있다.
    eMMC 5.1 에도 command queue 가 적용됐다.
  • LVDS(Low-Voltage Differential Signaling) 직렬 인터페이스 : 이로 인해 full duplex 양방향 통신이 가능하다.
    half duplex 는 무전기 같은 방식(한명이 이야기할 때 한명은 들어야 하고), full duplex 는 전화기 같은 방식으로 보면된다.(동시에 이야기하는)

See Also


  1. 소소한 일상의 공간 v2.0 :: eMMC의 발전과 UFS의 탄생

References

  1. 모바일 기기용 낸드플래시 메모리의 진화, eMMC부터 UFS까지 , 삼성 뉴스룸

[컴] 구글의 진급 시스템에 대한 생각



구글의 진급 시스템에 대한 생각

Disclaimer : 필자는 googler 가 아니며, 구글의 진급시스템은 아래글 을 읽고 스스로 생각해 본 내용이다.


Google 에 사표쓰고 나온 한 프로그래머의 이야기이다. 글을 보면서 어느정도 미국의 잘나가는 Tech 기업도 결국 다를바 없다는 것을 느꼈다.


이 글을 보면서 예전 "Joel on Software" 에서 언급했던 내용이 떠올랐다. 구체적으로 어떤 글이었는지는 찾기 힘들지만, 대략적인 내용은 실제로 product 와 관련되지 않은 일들을 처리하는 등으로 team 에 도움이 되는 software engineer 가 있지만, 결국 해고됐다는 내용이었던 것 같다.

대부분의 조직이 이런 실수? 들을 하고 있다. 구글처럼 아예 자신의 관리자가 아닌 누군가가 자신을 평가하는 것은 어느정도 객관성을 가져갈 수 있겠지만, 그 엔지니어가 하는 모든일을 파악할 수 없다. 반대로 관리자만이 평가하는 방식은 객관적이지 않은 점수를 줄 가능성도 있다.

여전히 이 문제는 해결하기 어려운 문제인듯 하다. 하지만 구글이 진행했다던 '아리스토텔레스 프로젝트' 를 고려해볼 때 구글의 지금 시스템은 스스로 아는 바도 제대로 실천하지 못하는 듯 하다.

  • 성공하는 팀의 조건 - 구글의 아리스토 텔레스 프로젝트



See Also


  1. 조엘온소프트웨어 한글 , Joel on Software 
  2. Joel on Software



[컴] Desktop HDD 와 NAS 의 차이

엔터프라이즈 NAS의 장점, NAS 와 일반하드의 차이점 /




이곳의 내용은 ref. 1 의 내용을 번역하고 재 구성한 것에 지나지 않는다. 정확한 내용은 ref. 1을 확인하자.

ref. 1에서 하드 선택시 아래3가지를 중요하게 여겨야 한다고 한다.

  1. RV sensors
  2. disc clamps 
  3. structural rigidity of the base plate



Desktop HDD 와 NAS 의 차이가 있는 부분

ref. 1 의 테이블을 확인하면 3가지 HDD의 차이점을 확인할 수 있다.

  1. Reliability
  2. Work Load Rating*
  3. Usage
  4. Usage By Form Factor
  5. Balance Control
  6. Seagate Acu_trac
  7. Heads
    1. NAS 드라이브와 Enterprise NAS 드라이브 모두 Desktop HDD 에 비해 높은 성능의 head 를 사용한다.
    2. 높은 성능의 head 는 좁은 물리적 크기들과 높은 signal to noise ratio 를 갖는다.
    3. 하드에러의 margin을 높여서 긴작업을 해도 error 가 적게 발생하게 된다.
    4. 이 증가된 margin 은 "높은 작업 온도", "높은 진동 환경"과 "높고 지속적인 부하(work loads)"과 같은 여러 스트레스에 대한 견고함을 향상시키는데 이용된다.
    5. "높은 작업 온도", "높은 진동 환경"과 "높고 지속적인 부하(work loads)", 이 3개의 요소가 NAS 드라이브의 성능에 중요한 영향을 미친다.
    6. head 의 품질이 NAS 드라이브의 신뢰성(reliability) 를 극적으로 증가시킨다.(MTBF, worload rating, usage)
    7. 드라이브가 error recovery 에 좀 덜 의존적이면 "좀 더 긴 사용시간", "더 높은 성능"을 갖게된다.
    8. 드라이브가 트랙사이의 빈 공간을 이용해서 좀 더 효과적으로 외부의 이벤트들을 흡수할 수 있을때 한결같은 data rate 은 더 높은 레벨에서 유지되어 진다.
  8. Disks
  9. Firmware
  10. Enterprise NAS HDD 만 다른 경우
    1. Motor : 
      1. 회전축(spindle) 을 위쪽 커버에 나사를 추가적으로 넣어서 좀 더 고정해 준다.
      2. 모터는 위아래 양쪽에 있다.(기본은 아래에만 있다.) 이로인해 50%정도 radial response 가 50% 정도향상된다. 그리고 상단에 있는 모터를 같이 사용하는 것은 진동이 심한 환경에서 잠재적인 이득이 있다.
      3. 이것은 결국 아래쪽에 한개만 있는 것보다 높은 수준의 구조적견고함(structural rigidity)을 가져다 준다.
      4. 이때문에 최근에 Enterprise NAS HDD는 높은 pack 부하(high pack loads)를 견딜 수 있다.
      5. disk windage plates 도 중요: 플래터 사이의 공기간섭(air disturbance)을 감소시켜준다.
      6. 베어링 구조: bubbles form, they are expelled
        많은 기름을 가지고 있는 centrifugal seals 를 갖고 있어서 높은 온도에서 장점을 갖는다.
    2. Rotational Vibration : 진동이 더 많다.
    3. Vibration Control
      1. RV sensors 는 가속도를 측정하는 센서로, 이것이 가속(acceleration), 진동(vibration) 과 충격(shock) 에 비례하는 결과를 제공한다.
      2. HDD 의 PCBA 에 붙어있다. 드라이브가 놓여있는 공간의 외부 진동을 측정하기 한다. (팬, 소리간섭, 랙(rack)의 진동등) 그래서 이 정보를 드라이브에 제공하고, 드라이브는 이런 환경의 변화에 따라 수정하고 보완한다.
      3. 이 덕에 head 가 좀 더 정확한 지점에 오래 머무를 수 있게 되는데, 이것은 그렇지 않을때 생기는 recovery step 등을 하지 않게 해줘서 처리능력(throughput performance)이 일정하게 유지 될 수 있게 해준다. 
      4. 이건 좀 더 빠른 spindle speed 를 가지는 Enterprise NAS HDD 에서 중요한다.
      5. 이것은 desktop HDD pcb 에는 없다.
    4. Base Plate
    5. Top Cover Attached
    6. Voice Coil Magnets(아래 그림 참조)
      1. 전기-기계 발생기(actuator)는 돌아가는 disc 표면에서 write/read 요소를 움직이는 방법이다. 추가로 writer/reader 가 원하는 위치(data track)로 움직이게 해준다.
      2. coil 감는 것(coil winding) 의 디자인과 자력 강도(magnet strength)가 voice coil motor 의 가속능력을 결정한다.
      3. 즉, 강한 VCM 디자인은 더 높은 가속능력과 더 빠른 움직이는 시간을 갖게 되고 그로인해 성능이 올라간다.
      4. Enterprise NAS HDD 는 좀 더 강한 자력의 VCM 을 사용한다.
    7. Disk Clamps
    8. Humidity Sensors






Desktop HDD 를 NAS 에 사용하기 어려운 이유


  • Desktop HDD 은 끊임없이 사용되는 것(constant use) 을 전제로 만들어지지 않았다. 그래서 NAS 에 사용하면 컴퓨터에서 사용할때보다 더 빠르게 노화되고, 닳게 된다.
  • tolerance: NAS HDD 는 더 높은 tolerance 를 갖는다. 이것은 다른 여러개의 HDD 와 같은 공간에서 돌아가게 되는 NAS HDD 의 필수요소이다.
  • firmware: firmware 도 다르다. Desktop HDD 는 desktop 사용에 최적화 되어 있다. NAS HDD는 끊임없이 사용되는 것에 최적화되어 있다. NAS 드라이브 firmware 는 또한 RAID 와 rebuild 시간에 최적화 되어 있다. 그래서 NAS에서 rebuild 가 훨씬 빠르다.
  • 플래터종류 : 다른 드라이브타입(desktop, NAS, enterprise NAS, ..)에는 다른 등급의 플래터(platter) 들이 있다. NAS 드라이브, 특히 enterprise NAS drive)는 더 높은 부하량(work load rating) 을 갖게 된다. 그래서 완전 다른 타입의 플래터가 필요하다.



References


  1. Pick The Right Drive For The Job — 24/7 NAS HDDs vs. Desktop HDDs | StorageReview.com - Storage Reviews, 2015년 7월