VMFusion에서 Windows 8.1 업데이트 이후 공유 폴더 문제 해결 방법

tl;dr

VMWare Tools를 다시 설치하면 된다.

VMWare Tools 재설치하기

문제

맥에서 VMFusion를 사용해 Windows 개발 환경을 쓰고 있었는데 8.1로 업데이트 한 이후 공유 폴더 드라이브에 연결하지 못하는 문제가 나타났다.

VMFusion에서는 맥과 윈도우 환경을 가상 드라이브를 통해 연결하는데 이 설정에서 윈도우 기본 폴더들을 맥 환경의 디렉토리로 연결해둘 수 있다. Desktop도 그런 방식으로 공유되어 있는 상태였는데 읽을 수는 있으나 저장이 안되는 이상한 상황이라 이것 저것 둘러보다가 가상 드라이브가 없어진 상태라는 것을 알게 되었다. Sharing에 문제가 있다고 로그아웃 하라는 얘기는 계속 나오지만 로그아웃 해도 해결되지 않았다.

VMWare Tools를 재설치하니 정상적으로 드라이브를 인식해 다시 사용할 수 있었다.

해결 과정

  1. 일단 VM을 종료한다.
  2. 메뉴에서 Virtual Machine > Sharing > Sharing Settings...에 들어가 공유를 끈다.
  3. VM을 실행하고 로그인해서 바탕화면까지 진입한다.
  4. 메뉴에서 Virtual Machine > Update VMWare Tools 또는 Virtual Machine > Reinstall VMWare Tools을 선택한다. VMWare Tools를 내려받는 과정 후 가상 이미지가 자동으로 추가되어 설치가 진행된다. 자동으로 진행되지 않으면 내 컴퓨터 > D: 에 있는 설치 프로그램을 실행해준다.
  5. 설치가 완료되면 재시동 하라고 하는데 재시동 한다.
  6. 다시 메뉴에서 Virtual Machine > Sharing > Sharing Settings...에 들어가 공유를 켠다.
  7. 재시동 된 VM에서 로그인한다. VM Sharing 설정이 변경되어 다시 로그인하라는 메시지가 뜨면 다시 로그인한다.

자바스크립트 스터디 – Chapter 4 정리

다른 프로그래밍 언어와 같은 부분이 많아 큰 어려움은 없었지만 타입 변환 등 자바스크립트만의 특성으로 잘 읽어봐야 할 부분이 많았다. 특히 typeofinstanceof 부분은 JavaScript를 더 이해하는데 도움이 되었다.


Chapter 4 표현식과 연산자 Expressions and Operators

표현식 : 값을 구하기 위한 표현 방법
연산자 : 표현식의 구성요소 (값을 반환하거나 연산함)

4.1 Primary Expressions

상수, 문자열 값, 키워드, 변수 레퍼런스 (eg. true, false, undefined)

4.2 객체, 배열 생성자 Object and Array Initializers

  • 객체 : {}
  • 배열 : []

4.3 함수 정의 표현식

var square = function(x) { return x * x; };

4.4 프로퍼티 접근 표현식

expression.identifier  // 식별자가 이렇게 써도 문법에 위배되지 않을 때 사용 가능
expression[expression] // 배열일 때 특히

4.5 구동 표현식 Invocation Expressions

square(10)
Math.min(x, y, z)
foos.sort()
  • 아규먼트의 연산을 먼저 한 후 함수가 실행됨 (in common sense)
  • 실행 가능 객체가 아니라면 TypeError
  • return
  • 함수(OO에선 메서드)가 실행될 때 this

4.6 객체 생성 표현식

var o = new Object()
var d = new Date()
  • 초기화 할 때 생성되는 this

4.7 연산자 미리보기

  • p.62 표 참조. 다른 프로그래밍 언어랑 크게 다른게 없음.
  • typeof, instanceof
  • 문자열 합칠 때와 숫자 계산할 때 둘 다 + 사용
  • 형변환이 자유롭게 발생하므로 유의 "3" * "5" // => 15

4.8 산술 표현식 Arithmetic Expressions

  • *, /, %, +, -
  • NaN
    • 연산자 : 값을 합칠 때 해당 값이 객체이면 3.8.3에서 본 것처럼 toString() 또는 valueOf()로 형변환 시도
  • 비트연산자 : &, |, ^, ~, <<, >>, >>>

4.9 관계 표현식 Relational Expressions

  • ===== : 타입 변환 허용

    var point = { x : 10, y: 20 };
    “x” in point // => true
    “s” in point // => false

    var data = [3, 2, 1];
    “0″ in data // => true
    // 배열은 값이 들어 있는지 확인하는 것이 아니라 해당 index에 값이 있는지 확인해줌

  • instanceof : 어떤 클래스인지 확인할 때. 상속되는 모든 클래스에 대해 true

4.10 논리 표현식

  • &&, ||, !

4.11 배정 표현식 Assignment Expressions

  • =, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, |=, ^=

4.12 평가 표현식 Evaluation Expressions

  • eval(): 하나의 아규먼트를 js 코드처럼 처리해줌.
  • ES5에서 global eval
  • IE 전용 execScript()

4.13 그 외 표현식

  • 3항 연산자(?:) : var age = birthyear > 2000 ? "yong" : "old";
  • typeof : p.82 표 참조
    • “undefined”, “object”, “boolean”, “number”, “string”, “function”, “object”, “<구현한 객체>”
    • null"object" 반환
    • 호출 가능한 객체 callable object 가 정확하게 함수function는 아님. 하지만 typeof에서는 호출 가능한 객체에 대해 “function”을 반환
  • delete
    • ES5 strict에선 못지울 것 지우면 SyntaxError
    • garbage collection이 있으므로 일일이 지워줄 필요는 없음
  • void : 프로토콜에서 사용하는데 (주. 쓰지말자.)
  • , : a=1, b=2, c=3;

tmux 입문자 시리즈 요약

tmux를 어디선가 보고 엄청 멋지다 싶어서 검색했더니 @nanhapark님이 재미있게 정리한 글이 있어서 편하게 볼 수 있었다.1 읽은 글들은 다음 목록에서 확인할 수 있고, 읽으며 요약해 정리했다.

tmux 설치하기

맥에서는 brew로 설치 가능

$ brew install tmux

tmux 구성

  • session : tmux 실행 단위. 여러개의 window로 구성.
  • window : 터미널 화면. 세션 내에서 탭처럼 사용할 수 있음.
  • pane : 하나의 window 내에서 화면 분할.
  • status bar : 화면 아래 표시되는 상태 막대.

명령어 정리

tmux는 prefix 키인 ctrl+b를 누른 후 다음 명령 키를 눌러야 동작할 수 있다. 다음 내용에서 ctrl + b, 어쩌고 내용이 있다면 tmux 내에서 쓸 수 있는 단축키다.

ctrl + b, <key>

일부 직접 명령어를 입력해야 할 때는 명령어 모드로 진입해야 한다. 명령어 모드의 key는 :다.

ctrl + b, :

세션 관련

# 새 세션 생성
$ tmux new -s <session-name>

# 세션 이름 수정
ctrl + b, $

# 세션 종료
$ (tmux에서) exit

# 세션 중단하기 (detached)
ctrl + b, d

# 세션 목록 보기 (list-session)
$ tmux ls

# 세션 다시 시작
$ tmux attach -t <session-number or session-name>

윈도우 관련

# 새 윈도우 생성
ctrl + b, c

# 세션 생성시 윈도우랑 같이 생성
$ tmux new -s <session-name> -n <window-name>

# 윈도우 이름 수정
ctrl + b, ,

# 윈도우 종료
ctrl + b, &
ctrl + d

# 윈도우 이동
ctrl + b, 0-9 : window number
            n : next window
            p : prev window
            l : last window
            w : window selector
            f : find by name

틀 pane 관련

# 틀 나누기
ctrl + b, % : 횡 분할
          " : 종 분할

# 틀 이동
ctrl + b, q 그리고 화면에 나오는 숫자키
ctrl + b, o : 순서대로 이동
ctrl + b, arrow : 방향키로 숑숑

# 틀 삭제
ctrl + b, x
ctrl + d

# 틀 사이즈 조절
(ctrl + b, :)
resize-pane -L 10
            -R 10
            -D 10
            -U 10

# 틀 레이아웃 변경
ctrl + b, spacebar

단축키 관련

# 단축키 목록
ctrl + b, ?

# 키 연결 및 해제 bind and unbind
(ctrl + b, :)
bind-key [-cnr] [-t key-table] key command [arguments]
unbind-key [-acn] [t key-table] key

# 옵션 설정 `set` and `setw`
set -g <option-name> <option-value>  : set-option
setw -g <option-name> <option-value> : set-window-option

copy mode 2

copy mode에서는 콘솔을 스크롤 하거나 내용을 복사하는 등의 기능을 할 수 있다.

# copy mode 진입
ctrl + b, [

# 빠져나오기
(copy mode에서) q or ESC

# 이동
arrow : 커서 이동
pageUp, pageDown : 페이지 이동 (iTerm에서는 fn + up, down, terminal에서는 alt + up, down)

설정 저장하기 tmux.conf

~/.tmux.conf 파일을 생성해 설정을 저장해두면 시작할 때 자동으로 설정을 불러온다. 컬러 설정, 마우스 설정


이것저것 해보다 알게 된건데 iTerm에서 tmux로 만든 세션을 다른 terminal에서 접속하면 동시에 동작한다.

뭐야 무서워...


  1. 특히 키보드 모드 건담 만화 대박이다. 정리 해주셔서 감사합니다! 
  2. 내 터미널 설정이 이상해서 그런지 설명대로 동작하질 않는다.