Mac Catalina 업그레이드 후 루트 디렉토리를 사용할 수 없다. Read-Only 상태의 파티션으로 나누어져 있어 기존 루트 디렉토리의 사용자 디렉토리는 "/Users/Shared/Relocated Items/" 디렉토리로 모두 옮겨진다. 이는 디스크의 논리 파티션이 운영체제를 위한 ReadOnly 전용 공간과 사용자 데이터의 파티션으로 나뉘어지기 때문이다.

만약 SVN 을 루트 디렉토리로 사용한 경우 문제가 발생하는데, 적당한 디렉토리로 옮긴 후에 다음의 SVN 명령을 통해 URL 주소를 수정해 주어야 한다.

아래와 같이 현재 SVN 저장소의 정보를 보자

cd <svn directory>
svn info

그렇다면 아래와 유사한 결과가 출력된다.

Path: .
Working Copy Root Path: /Users/powerumc/...생략...
URL: file:///Users/powerumc/...생략...
Relative URL: ^/
Repository Root: file:///Users/powerumc/...생략...
Repository UUID: fe1381c0-03a0-ad4a-96c3-71fb4ed8e9fb
Revision: 18046
Node Kind: directory
Schedule: normal
Last Changed Author: SYSTEM
Last Changed Rev: 18046
Last Changed Date: 2018-11-21 15:43:56 +0900 (수, 21 11 2018)

위의 결과에서 URL 정보를 참고하여 변경된 URL 정보를 변경해 주면 된다.

svn relocate file:///Users/powerumc/repo/svn
Posted by 땡초 POWERUMC
TAG Catalina, Mac, svn

댓글을 달아 주세요


오늘 팀 동료를 통해 bash 취약점이 있다는 내용을 들었고, cnet.com 링크를 통해 확인할 수 있다.

bash 보안 취약성 패치하기

제가 배치한 버전은 bash 4.3.25 (이 버전의 패치 코드 25개) 이며, 이 버그는 원격 코드 실행 버그로 매우 위협적인 버그이다.

맥에서는 당시(2014–09–26) MacPort, Homebrew 에서 패치 버전을 제공하지 않는 관계로, 직접 소스 코드를 컴파일 하는 방법으로 해결하였다.

최신 bash 버전으로 패치하고 컴파일 하는 스크립트 코드를 필자의 github 에 커밋하였다.
- https://github.com/powerumc/Patch-Bash-Vulnerability

맥/리눅스 에서 아래의 명령을 실행하면 바로 패치 하도록 했다.

curl https://raw.githubusercontent.com/powerumc/Patch-Bash-Vulnerability/master/patch-bash-4.3.25.sh | sh

참고 (버그 내용)

bash 원격 코드 실행 취약성

쉘에서 아래의 명령을 실행하여 echo 메시지가 확인되면 원격 실행 코드 버그가 있는 버전입니다.

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

코드 실행 결과 (원격 코드 실행 가능한 취약성)

vulnerable
echo this is a test

패치 후 원격 코드 실행 불가능

패치가 완료되면 원격가 실행되지 않는다.

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

코드 실행 결과

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for \`x'
this is a test


Posted by 땡초 POWERUMC

댓글을 달아 주세요

  1. 이반린 2014.09.29 10:59 Address Modify/Delete Reply

    안녕하세요. 서버관리자 입니다. 제가 관리하는 서버가 BASH 취약점이 있는데요.
    외부적으로 포트를 열수가 없어서 수동으로 bash 쉘을 패치해야 하는데
    어떻게 해야 하는지 알려주시면 감사하겠습니다.
    부탁드립니다.

  2. 123124124 2014.09.29 14:59 Address Modify/Delete Reply

    RedHat, CentOS 일 경우
    rpm -Uvh bash............. 하시면 되요

  3. 최혁선 2014.09.29 15:42 Address Modify/Delete Reply

    안녕하세요. 영문페이지로가서 그대로 설치하였더니.....
    $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 명령어를 입력하면 결과에
    sh: error importing function definition for `BASH_FUNC_module()'
    위에 오류가 납니다.. 모듈이 Import되어 있지 않다고 나오는것 같은데. 혹시 이런 증상 해결 방법이 있을까요? 쉘스크립트가 정상적으로 실행이 되는지 테스트 해봐야겠네요..

개요

  • 윈도우  <-> 맥 <-> 리눅스 등 멀티 컴퓨터에서 마우스와 키보드를 공유할 수 있는 소프트웨어로 편하게 개발하기
  • Pair Programming 시에 키보드의 마우스를 주거니 받거니 할 필요 없이 각각 키보드와 마우스를 이용하여 개발하기

 

설치하기

1. 공식 홈페이지

http://synergy-project.org/

 

2. 다운로드 링크

중요 : 현재 다운로드가 공식 홈페이시를 통해 불가능해 졌습니다. 따라서 아래의 링크를 통해 다운로드를 하시기 바랍니다. (저희 팀의 브리츠님께서 알려주신 정보입니다)

Synergy Nightly Buildhttps://synergy-project.org/nightly/

 

Synergy 가 판매 및 기부 방식으로 변경되면서, 아래의 링크에서 다운로드 받을 수 없습니다.

 

Stable version (1.5.1 - Aug 21, 2014) | Beta version (1.6.0 - Aug 26, 2014)

ChangeLog

 윈도우

1.5.1: 64-bit32-bit

  • 위 버젼이 유료로 바뀐 듯 합니다. 아래는 1.5.0 윈도우 버젼 입니다.

http://www.techspot.com/downloads/downloadnow/4978/?evp=8b86258a901d3a0aa2536050c205a7e6&file=2

 Mac OS X

1.5.1: 10.910.810.710.610.5

  Debian & Ubuntu Linux

1.5.1: 64-bit32-bit

  Red Hat & Fedora Linux

1.5.1: 64-bit32-bit

 소스 코드

1.5.1: tar.gz (guide)

다른 다운로드

 

 

구성하기

 

1. 서버 컴퓨터 구성 (OSX 기준)

1.1 시너지를 실행하고, 'Configure Server...' 버튼을 클릭하여, 서버 구성을 시작한다.


 

1.2. 가상 모니터 설정


 

1.3. 필요한 경우 암호화 통신을 구성한다.


 

1.4. 하단의 'Start' 버튼을 클릭하여 서버 구동 시작

(스크린샷 없음)

 

 

2. 클라이언트 구성 (리눅스 기준) ( 캡쳐는 OSX 에서 함)

2.1. 시너지를 실행하고 중간의 'Client (use another computer's keyboard and mouse)' 컨트롤을 체크하고, '1. 서버 컴퓨터 구성' 의 Server IP 를 입력한다.


 

2.2. 시너지의 구성(Preferences) 또는 설정(Settings) 메뉴를 선택하여 클라이언트 설정을 마무리 한다.


 

연결 확인

아래의 이미지와 같이 가상 모니터(POWERUMC) 는 내 컴퓨터의 왼쪽에 위치해 있으므로, 마우스를 화면 왼쪽으로 이동해 본다.

화면 왼쪽을 넘어서면 시너지의 클라이언트로 연결된 컴퓨터에서 마우스와 키보드가 입력된다.

(단, OSX 경우 Secure Input 모드로 진입하게 될 경우 시너지가 올바르게 동작하지 않음)


 



'O/S' 카테고리의 다른 글

[Synergy] 여러 컴퓨터에서 키보드, 마우스 공유  (0) 2014.09.17
Posted by 땡초 POWERUMC

댓글을 달아 주세요

OSX 매버릭스(maverics)에서 마운틴 라이언(mountain lion)으로 다운그레이드 해야 할 필요가 생겼다. 매버릭스 환경에서 OSX 1.8 SDK 버전으로 맥 앱을 개발하면 OSX 1.9(매버릭스)에서 잘 실행되지만, OSX 1.8(마운틴 라이언)에서 맥 앱이 crash가 발생하는 경우가 있다.

crashing이 발생하는 경우의 대부분이 OSX SDK의 일부 obsulete 함수가 있는데, 이 함수를 사용하는 경우다. 이런 crashing 상태를 확인하기 위해 OSX 마운틴 라이언이 설치된 운영체제가 필요하다.

1. OSX 마운틴 라이언 다운로드

OSX 마운틴 라이언은 맥 앱스토어에서 유료로 판매된다. 이것을 다운로드 받고 응용 프로그램 폴더를 확인하면 찾을 수 있다.



2. 응용 프로그램 폴더에 다운로드 된 OSX 앱 확인

3. hdiutil 명령어로 dmg를 iso로 변환

다음의 경로로 이동한다.

$ cd /Applications/Install OS X Mountain Lion.app/Contents/SharedSupport

파일 목록을 확인하면 InstallESD.dmg 파일을 확인한다.


$ ls -al
 total 8690344
 drwxr-xr-x 4 root wheel 136 12 23 23:37 .
 drwxr-xr-x 11 root wheel 374 12 23 23:37 ..
 -rw-r--r-- 1 root wheel 4448808132 12 23 23:37 InstallESD.dmg
 -rw-r--r-- 1 root wheel 646916 9 30 15:44 OSInstall.mpkg

hdiutil 명령어로 dmg to iso 파일로 변환한다.[1] 변환된 .cdr 확장자는 .iso로 변경하면 된다.

$ hdiutil convert ./InstallESD.dmg -format UDTO -o ~/Downloads/InstallESD.iso
Driver Descriptor Map(DDM : 0) 읽는 중...
(Apple_Free : 1) 읽는 중...
Apple(Apple_partition_map : 2) 읽는 중...
disk image(Apple_HFS : 3) 읽는 중...
........................................................................................
경과 시간:  1m 40.307s
속도: 46.2M바이트/초
저장: 0.0%
created: /Users/powerumc/Downloads/InstallESD.iso.cdr

설치 디스크로 굽기

USB 설치로 구워도 되고, 필자의 경우는 Parallels에 가상 환경에 OSX 마운틴 라이언을 설치했다.

굽는 방법은 다음의 링크를 참고한다.
How to "burn" an ISO to USB flash drive? - http://forums.macrumors.com/showthread.php?t=598291


Posted by 땡초 POWERUMC

댓글을 달아 주세요

윈도우 8, 무서운 드라이버와 궁합

최악의 궁합, 윈도우 8

윈도우를 여지껏 사용하면서 드라이버와 충돌이 나면 이런 참사가 발생하는지 처음 알았다. 아니, 이렇게 발생할 수도 있는 것 자체가 신기하다.

SONY VPCZ115 시리즈를 사용하는데 SONY 노트북은 전통적으로(?) 그래픽 드라이버를 새로운 운영체제에 맞게 업데이트 안해준다. 그렇다고 공식 NVIDIA 사이트에서 받아서 설치하면 좋겠지만, 설치가 안된다. 드라이버 sys 엎어쳐도 보고 별짓을 다 해봤지만…

어느 날, 이 광경을 보자마자 순간 멍~~~

[이미지] 윈도우 잠금 상태가 한 쪽 모니터에서 풀린 사진

위 이미지의 증거 샷은

  • 점심 시간이라 CTRL+ALT+DEL 키를 눌러서 윈도우를 잠궜다.
  • 윈도우 8이 설치된 노트북으로 외부 모니터를 연결하고 쓰고 있는 중이다.
  • 외부 모니터에는 원격 서버 연결해서 서비스 중인 서버를 관리 중이었다.
  • 점심 먹고 오니, 저런 꼴이 되었다.
  • 외부 모니터는 마우스 커서도 움직인다.!

그 이후, 몇 일에 한 번 꼴로 계속 발생해서, 노트북 집 구석에 모셔다 놓았다.

윈도우 8 문제인가? 드라이버 문제인가?

사실, 그래픽 드라이버 문제인지 확실히 증명할 수는 없다. 증명해야 할 이유도 없거니와…

내 SONY 노트북 모델이 공식적으로 윈도우 8 드라이버를 공급해 주지 않기 때문에, 하위 호환성에 의지해서 모든 드라이버를 설치했다. 노트북 사용자는 어느 정도 어쩔 수 없지 않던가.

예전에 쓰던 노트북에 윈도우 XP 드라이버를 악평으로 악명 높은 윈도우 비스타(Windows Vista) 에 설치해서 잘 쓰던 때와 비교하면 윈도우 8은 너무나 관대하다.

드라이버가 안맞아서, 되지 말아야 할 것을, 얼마나 관대한지 잠금 상태에서도 모니터를 활짝 보여주니 말이다.

사용자 입장에서 SONY 노트북에선 드라이버 공식 업데이트가 없고, 윈도우 8에서는 하위 드라이버 호환성을 버리면, 뭐 노트북 갖다 버리라고? (이럴 때 윈도우 8 안쓰면 되겠지만 개발 환경 맞춰야 하는 경우가 대부분이라)

맥킨토시(Macintosh)의 OSX 운영체제와 리눅스 X-Windows 를 쓰면서 이런 적은 없었다. 물론 수 십년을 윈도우를 쓰면서 이런 적은 처음이다.

그나마 다행인 것이 일할 때 빼면(젠장 비주얼 스튜디오) 윈도우를 구동할 일도 없지만, 켤 때마다 윈도우를 써야 하는 내 상황에 그저 쓴 웃음만 나온다.

용도를 알 수 없는 매트로 시작 화면

또 하나, 방금 내가 뭘 설치하긴 했는데, 뭘 설치했지? 하고 매트로 시작 화면에 가서 찾아보려 해도 찾을 수 없다. (설치한 프로그램 이름이랑 개발사를 대충 보고 설치해서 기억이 안났다)

깨알 같은 아이콘과 텍스트로 어찌 찾는단 말인가. 찾다 찾다 못 찾아 다시 웹 사이트 방문해서 다시 다운로드 받고, 다시 설치하는 것이 훨씬 빨랐다.

또, 자주 쓰지 않는, 아주 가끔 돌리는 디스크 청소 프로그램이나 Disk Inventory X 같은 디스크를 스캔하여 비주얼로 보여주는 유틸리티는 반드시 이름을 외워야 한다. 못 외우면 깨알 같은 아이콘과 텍스트로 뒤져야 한다.

이런 경험을 여러 번 하게 되니 정신적인 안정을 위해 Star8 이라는 시작 메뉴 소프트웨어를 $4.99 주고 샀다.

다가오는 윈도우 8.1도 시작 메뉴로 장난질을 한다던데… 시작 메뉴의 부활이라고 하는데, 시작 메뉴 클릭하면 매트로 시작 화면으로 가는 바로 가기 버튼이란다. (ZDNET 및 IT 미디어 매체에 의하면…)

물론 매트로에서 재미를 즐기는 분들도 있겠지만, 그저 필자에게는 데스크탑으로 가기 위해 봐야하는 스팸 화면 정도? 윈도우 키를 잘못 누르기라도 하면 스팸 화면으로…

'O/S > Windows 8' 카테고리의 다른 글

윈도우 8, 무서운 드라이버와 궁합  (0) 2013.06.05
윈도우 8, 반토막짜리 WinRT와 WinRT SDK  (1) 2012.10.30
Posted by 땡초 POWERUMC

댓글을 달아 주세요

Centos Server 리눅스 운영체제에서 likewise-open 패키지 설치 문제

당연히 Ubuntu에서 사용하던 Likewise-open 을 설치하여 제 집에서 운영하는 Active Directory에 Join하려고 했다. 원래 Ubuntu Server를 사용하다가 Redhat 계열의 Centos로 변경해보고자 Centos Server를 선택했다. 


필자의 아래의 블로그 링크를 통해 Ubuntu에서 Likewise-open을 통해 Active Directory에 Join 하는 글을 소개한 바 있다.

 

Centos에서는 RPM기반의 설치 패키지 도구인 yum을 사용하는데, yum을 통해서는 likewise-open 도구를 설치할 수 없는 문제가 발생하였다.

yum install likewise-open
MPOWERUMC:~ powerumc$ ssh POWERUMC\\umc@192.168.0.30
Password:
Last login: Fri Apr  5 01:35:17 2013 from 192.168.0.23
-sh-4.1$ sudo yum install likewise-open
Password:
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirror.yongbok.net
 * extras: mirror.yongbok.net
 * updates: mirror.yongbok.net
base                                                               | 3.7 kB     00:00
extras                                                             | 3.5 kB     00:00
updates                                                            | 3.5 kB     00:00
updates/primary_db                                                 | 1.4 MB     00:00
Setting up Install Process
No package likewise-open available.
Error: Nothing to do
-sh-4.1$

 

위와 같이 likewise-open 패키지는 사용할 수 없는 패키지라는 메시지가 출력이 된다. 이 문제로 구글링을 통해 해결 방법을 찾아보았는데, 대부분 과거 문서이고 likewise-open 다운로드 링크도 404 not found 로 생각보다 빨리 해결하지 못하게 되었다.

 

pbis-open 패키지로 설치해야...

현재 likewise-open 은 PowerBroker 서비스를 통해 다운로드 받을 수 있다. 패키지의 이름은 likewise-open에서 phis-open로 변경되었다.


다음과 같이 wget 명령을 통해 pbis-open 패키지를 다운로드 받는다.

wget 명령으로 패키지를 다운로드 받는다.
[powerumc@POWERUMC-CENTOS ~]$ wget http://download.beyondtrust.com/PBISO/7.1.0/1203/pbis-open-7.1.0.1203.linux.x86_64.rpm.sh
--2013-04-01 23:41:19--  http://download.beyondtrust.com/PBISO/7.1.0/1203/pbis-open-7.1.0.1203.linux.x86_64.rpm.sh
Resolving download.beyondtrust.com... 192.30.180.65
Connecting to download.beyondtrust.com|192.30.180.65|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17789736 (17M) [application/x-sh]
Saving to: `pbis-open-7.1.0.1203.linux.x86_64.rpm.sh'
 
 
100%[================================================>] 17,789,736  1.24M/s   in 16s
 
 
2013-04-01 23:41:36 (1.03 MB/s) - `pbis-open-7.1.0.1203.linux.x86_64.rpm.sh' saved [17789736/17789736]

 

 

다운로드 받은 패키지를 ls 명령을 통해 확인할 수 있다. (필자는 alias l="ls -al" 로 사용한다)
[powerumc@POWERUMC-CENTOS ~]$ l
합계 17400
drwx------. 2 powerumc powerumc     4096 2013-04-01 23:42 .
drwxr-xr-x. 4 root     root         4096 2013-04-01 23:08 ..
-rw-r--r--. 1 powerumc powerumc       18 2013-02-22 06:09 .bash_logout
-rw-r--r--. 1 powerumc powerumc      200 2013-04-01 23:42 .bash_profile
-rw-r--r--. 1 powerumc powerumc      124 2013-02-22 06:09 .bashrc
-rw-------. 1 powerumc powerumc      803 2013-04-01 23:42 .viminfo
-rwxrwxr-x. 1 powerumc powerumc 17789736 2013-03-09 05:53 pbis-open-7.1.0.1203.linux.x86_64.rpm.sh
[powerumc@POWERUMC-CENTOS ~]$ sudo ./pbis-open-7.1.0.1203.linux.x86_64.rpm.sh
Creating directory pbis-open-7.1.0.1203.linux.x86_64.rpm
Verifying archive integrity... All good.
Uncompressing pbis-open-7.1.0.1203.linux.x86_64.rpm............
Would you like to install package for legacy links? (i.e.  /opt/likewise/bin/lw-find-user-by-name -> /opt/pbis/bin/find-user-by-name) (yes/no) yes
Would you like to install now? (yes/no) y
Installing packages and old packages will be removed
준비 중...                   ########################################### [100%]
   1:pbis-open-upgrade      ########################################### [100%]
준비 중...                   ########################################### [100%]
   1:pbis-open              ########################################### [100%]
Setting up SELinux Policy Module
 
 
 
 
Importing registry...
 
 
 
 
준비 중...                   ########################################### [100%]
   1:pbis-open-gui          ########################################### [100%]
준비 중...                   ########################################### [100%]
   1:pbis-open-legacy       ########################################### [100%]
Installing Packages was successful
 
 
New libraries and configurations have been installed for PAM and NSS.
Please reboot so that all processes pick up the new versions.
 
 
As root, run domainjoin-gui or domainjoin-cli to join a domain so you can log on
with Active Directory credentials. Example:
domainjoin-cli join MYDOMAIN.COM MyJoinAccount

 

 



 

다음과 같이 opis-open 서비스를 시작하면 된다.
[powerumc@POWERUMC-CENTOS init.d]$ sudo ./lwsmd start
 
 
자동으로 시작되어 있음

Posted by 땡초 POWERUMC

댓글을 달아 주세요

불편한 매킨토시(Macintosh), 맥북에어를 사용하면서 좌충우돌

애플의 맥킨토시(Macintosh) 제품을 이용하면서 많은 사람들이 기존의 익숙함과 다른 인터페이스 환경 때문에 불편하다는 이야기를 한다. 필자도 카페베네 커피숍을 자주 가는데 대부분 그곳에 iMac 제품이 있는데, 한번씩 써보면 도대체 왜 이런 기계를 쓸까라는 생각을 할 만큼 불편했었다. 네이버 중고나라에서 맥북을 파는 사람들을 보면 이따금 '저랑 안맞는 것 같아서 팔아요' 라는 분들도 계실 정도다.


무엇이 맥킨토시 제품을 사용하는데 불편하게 만들까?

간단하게 필자의 생각을 요약해 보았다. 온전히 필자의 주관적인 기준이다. 불편한 점이 좀 유치하긴 하지만 처음 접해보는 맥킨토시 제품인지라 감각적인 디자인에 만족하면서도 막상 사소한 것에 불편함을 느꼈다.


  • 트랙패드
    필자의 맥북에어에 붙어있는 트랙패드가 상당히 불편했다. 마우스 좌/우 버튼 조작이 어색해서 브라우저에서 스크롤을 하는 것이 여건 귀찮은게 아니었다.
  • 화면 인터페이스
    왜 윈도우 창의 버튼이 좌측이 몰려있나. 우측으로 옮길 수 없을까? 윈도우에 익숙해진 탓에 창 버튼이 좌측에 몰린 것이 거슬린다.

  • 뭘 해야 할지 모르는 산만함
    OSX(오에스 텐)의 상단에 상태바에 메뉴가 있다. 그리고 하단에 커다란 아이콘이 있다. 보이지 않는 설치된 응용 프로그램들을 어디서 찾아야 하지?

맥킨토시(Macintosh) 초보 탈출

이 외에도 사소한 것들이 더 많았던 것 같았다. 그래서 약 이틀 정도 사용법에 익숙해지기 위해 검색하고 찾아보면서 '완전한 초보자를 위한 몇 가지 가이드'를 제시하고자 한다.


지금까지 약 2주정도 맥북에어를 사용해 보니, 오히려 원도우가 더 답답하게 느껴질 정도로 맥킨토시의 운영체제는 직관성있고 매우 편리하다. 맥킨토시의 매력은 아마 각자가 찾아야 하지 않을까 생각한다. 적어도 맥이 더이상 불편하다는 생각은 말끔히 사라질 것이다.



OSX 환경 설정

OSX 운영체제의 환경을 설정하는 것만으로 효과를 톡톡히 볼 수 있다. 마치 윈도우를 처음 설치하면 자기 입맛에 맞게 바탕화면이나 키보드 눌림 스피드나 마우스 포인터 속도를 자신에게 맞추는 작업이라고 생각하면 된다.

여기에 나열되는 설정은 좌측 상단의 '사과 아이콘->시스템 환경 설정'으로 들어가면 된다.
 


  1. 하단 Dock 아이콘 숨기기
    Dock 을 자동으로 숨기도록 하여 일반 윈도우를 더 크게 사용할 수 있다.

  2. 키보드 반응 속도 향상
    키보드 반응 속도는 아래의 슬라이드 바를 빠르게/짧게 상태인 우측으로 옮겨주면 된다.
    그리고 F1~F12키보드를 Fn(펑션키)와 함께 눌러서 특수 기능을 사용하도록 하는 것이 좋다. 이를 설정하려면 아래의 '모든 F1, F2 등의 키를 표준 기능 키로 사용' 항목을 체크한다.

  3. 트랙패드 제스처 활성화
    만약 휠 마우스를 사용한다면 아래의 '스크롤 및 확대/축소' 탭에서 '스크롤 방향: 자연스럽게' 항목은 체크 해제한다. 이를 해제하지 않으면 아래로 스크롤 하기 위해 비행 시뮬레이션 게임을 하듯 마우스 휠을 위로 올려야 한다.

필수 소프트웨어

  1. KeyRemap4MacBook
    맥킨토시에서 제공하지 않는 키보드 제어 기능을 사용할 수 있다. 한영 전환 키라든가, 키보드 기능을 바꾼다거나 할 경우 이 앱을 설치하면 된다.
     

    KeyRemap4MacBook 다운로드
    http://pqrs.org/macosx/keyremap4macbook/


  2. 우측 Command 키로 한영 전환
    아래에 보이는 항목을 찾아 체크해 준다.


  3. 키보드 누를 때 반복/속도 향상
    아래의 항목의 수치를 적당하게 조정하면 키보드 반응 속도를 더욱 높일 수 있다.



OSX 자주 사용하는 핫키

몇 가지의 자주 사용하는 핫키만 알면 맥킨토시를 사용하는 것이 한결 자연스러워진다. 

핫키를 사용하기 위해 아이콘이 어떻게 생겼는지 반드시 기억하기 바란다.
 





  1. Mission Control(미션 컨트롤)
    화면의 윈도우와 열려있는 스페이스를 한 화면에서 볼 수 있는 편리한 기능이지요.
    Control + ⇧

  2. 스페이스 이동
    Control + 오른쪽 방향키 or 왼쪽 방향키
     
  3. SpotLight (스포트라이트)
    Control + Space

    OSX에서 사용중인 리소스(응용 프로그램, 이메일, 문자 등)을 모두 검색해 준다.

트랙패드

트랙패드는 시스템 환경설정의 트랙패드 항목에서 매우 자세하게 볼 수 있다. 간단하게 자주 사용하는 제스처만 몇 개 꼭 알고 있으면 된다.

  • 두 손가락을 살짝 댓다가 때기 = 마우스 우클릭
  • 두 손가락 + 위 또는 아래 = 화면을 스크롤
  • 두 손가락 + 좌 또는 우 = 브라우저의 이전 페이지/앞 페이지 이동
  • 세 손가락으로 움직이기 = 아이콘이나 창을 이동
  • 네 손가락 + 좌 또는 우 = 스페이스 영역을 이동한다
  • 네 손가락 + 위 = Mission Control(미션 컨트롤) 실행



Posted by 땡초 POWERUMC

댓글을 달아 주세요

  1. 양수영 2013.03.04 09:22 Address Modify/Delete Reply

    이미지들이 안보이는데요..?
    저만 그런가요? ㅎㅎㅎ

    • powerumc 2013.03.04 10:46 Address Modify/Delete

      지금 모바일로 보고 있는데
      이미지 잘 보이네여.

      이거 저만 보이는건가요? ㅡㅡㅎ

  2. 정환나라 2013.03.07 10:03 Address Modify/Delete Reply

    저는 pc에서 크롬으로 보고 있는데 만 아래 이미지 빼고는다 안나오는데요

  3. jamie 2013.03.15 14:20 Address Modify/Delete Reply

    크롬브라우저에서는 안보이나봅니다. 저도 크롬유저인데...ㅠㅜ

최신 우분투(Ubuntu) 12.10 64비트 버전을 제 노트북에 설치하였다. 노트북의 해상도는 1600*900로 세로 길어가 짧은 전형적인 와이드형 LCD 모니터이다. 이전 우분투 12.04 LTS에서는 없었던 문제였는데, 이번에는 설치 중 설치 창이 화면을 넘어서서 창이 잘리는 현상이 발생하였다.

   

화면 잘림 현상은 파티션 나누는 단계에서 고급 설정을 선택했을 때 발생한다.

아래의 이미지는 창이 길어져서 항목을 선택하거나 '계속' 버튼을 누를 수 없게 된다. 설치 중 창의 크기를 줄일 수 없기 때문에 이 문제로 조금 난감했다.

이런 현상이 발생하는 경우 창의 타이틀 부분(위쪽)을 ''Alt+마우스 좌 클릭+마우스 이동 ' 하면 두 번째 이미지 처럼 잘린 창 밑 부분을 스크롤 할 수 있다.

[이미지1] 창이 잘린 이미지

   

[이미지2] 창이 잘려 창을 ' Alt+마우스 좌 클릭+마우스 이동 ' 한 이미지

Posted by 땡초 POWERUMC

댓글을 달아 주세요

윈도우 8, 요즘 인기가 많다. 일반 사용자들의 후기도 많이 보이고, 더불어 개발자들에게도 기존의 개발 경험을 살려 그래도 개발이 가능해서 인기가 많다. 더불어 C++/CX와 HTML5로 개발이 가능하다.

   

WinRT와 WinMD

그 중에서 C#/XAML을 이용하여 앱을 개발할 경우 Windows 8 Runtime(WinRT)의 라이브러리를 이용하여 개발하게 되는데, 마이크로소프트에서는 이 WinRT를 관리 언어가(Managed 플랫폼 환경) 아닌 C++로 만들어진 네이티브(Native)로 컴파일 되어 있다. 확장된 COM 기반이기 때문에 C#과 HTML5에서 모두 이 라이브러리 APIs 집합을 사용할 수 있다. 이것은 매우 큰 장점이 분명하다.

그런데 말이다. 이 WinRT 자체가 매우 성급하게 만들어진 라이브러리라는 것이 여럿 보인다. 그 중 네이티브로 컴파일된 환경에서 C#과 유사하게 런타임상의 객체나 타입 정보를 알아내기 위해 RTTI(RunTime Type Identification)을 C++/CX 컴파일 시에 자동으로 구현이 된다. 그리고 RTTI를 위해 사용되는 WinRT의 API 정보의 일부는 .WinMD 파일로 저장이 된다. 이를 윈도우 런타임 라이브러리(Windows Runtime Library)라고 하며, 이 라이브러리는 윈도우 8 앱을 개발하는 환경 모두에서 사용할 수 있다.

   

   

   

   

윈도우8 WinRT, XAML의 미완성을 의미하는 IXamlMetadataProvider와 IXamlType 인터페이스

여기에서 문제가 발생한다. 모든 객체들은 C++/CX과 C#에서 XAML(eXtensible Application Markup Language)에서 다룰 수 있다. 그리고 Windows.UI.Xaml 네임스페이스에 XAML과 관련된 APIs 집합이 있다. 그런데 WinRT는 XAML을 핸들링 할 수 있는 라이브러리를 완벽하게 구현해 놓지 못했다.

그래서 WinRT의 IXamlMetadataProviderIXamlType 인터페이스가 생겼다. 이 인터페이스가 WinRT가 XAML을 (꽁수로) 핸들링하기 위해 만들어진 인터페이스로 보인다.

코드에서 새로운 객체를 생성해서 사용하고 싶으면 var obj = new LoginView(); 와 같이 새로운 객체를 생성하는 new 키워드를 사용하면 된다.

객체지향을 완벽하게 표현하는 XAML에서도 마찬가지다. XAML에서 다음처럼 LoginView 객체를 생성할 수 있다.

   

   

여기에서 IXamlMetadataProvider가 미완성 XAML임을 증명해 준다. 윈도우8 모던 앱(Modern App)에서 XAML에서 객체가 생성되는 경우 컴파일 시에 자동으로 생성되는 XamlMetadataProvider.g.cs 파일에서 객체를 생성해 준다. (g는 Generated를 의미한다). 자동으로 생성되는 이 코드는 다음과 같은 코드가 포함이 되어있다.   

   

XAML에서 LoginView 객체 생성을 요청할 경우 IXamlMetadataProvider를 구현한 코드를 통해 객체를 대신 생성한다. 다시 말해, 하드 코딩이 되어있다.   

이는 매우 유감이다. 이는 즉, 런타임상에 동적으로 생성되는 객체나 앱 컴파일 시에 해당 클래스가 포함이 되어 있지 않다면, XAML은 객체를 생성하지 못하게 된다. 동적인 무언가에 의해 생성되는 객체는 XAML에서 명시적으로 객체를 생성할 수 있는 방법이 없어진 것이다. (단, 명시적인 호출)

   

   

사용자가 구현하는 IXamlMetadataProvider

일단 WinRT가 이렇게 구현되어 있으니, 어쩔 수 없다. 동적으로 생성되는 객체에 대해서 XAML에서 명시적으로 객체를 생성하기 위해서는 Custom IXamlMetadataProvider를 구현해 주어야 한다.   

아래는 필자가 개발 중인 Umc.Core.WinRT.dll 에 포함된 Custom IXamlMetadataProvider이다. 윈도우8 모던 앱을 컴파일할 때 MSBuild는 참조되는 어셈블리의 메타데이터를 검색하여 IXamlMetadataProvider 인터페이스를 구현한 객체를 XamlMetadataProvider.g.cs 코드에 자동으로 추가를 해준다. 그리고 컴파일이 된다.

   

   

   

IXamlMetadataProvider가 필요한 경우의 예시

아마 일반적으로 윈도우8 앱을 개발할 때 이 인터페이스를 구현할 필요는 없다. 하지만, 앱을 캡슐화하려고 하고, IoC(Inversion of Control) Container 등을 활용하고자 하고, 동적인 객체가 필요한 경우라면 이 인터페이스를 구현해야 할 필요가 있을 것이다.   


C#이 지원하는 System.Dynamic.ExpandoObject 객체를 생성한다면 이 객체는 XAML에서 명시적으로 호출을 할 수 없다.   

또, System.Dynamic.DynamicObject 를 구현하는 객체도 마찬가지이다. 아래는 Umc.Core.WinRT에 포함된 코드의 일부이다.

   

위와 같은 코드를 이용하여 동적인 객체를 생성하였다면, 명시적으로 구현한 클래스가 없으므로 당연히 XAML에서도 이 객체를 생성할 수 없다.   

이와 같은 경우에 IXamlMetadataProvider를 구현하면 된다.

   


그 밖에 필요한 것들

아마 WinRT는 윈도우폰7 의 API 보다 더 작다. 작은 만큼 없는 것이 많고, 포기해야 하는 것이 많다. 아래에 나열되는 구현체는 http://umcore.codeplex.com 의 필자가 만든 코드를 WinRT용으로 마이그레이션한 것들이다. 조만간 Umc.Core.WinRT도 공개할 것을 약속한다.   

1. WinRT 설계 자체가 IoC Container를 활용하기 매우 너그럽지 못한 구조이다. 그래서 기본적인 WinRT 구조를 많이 벗어난 구조를 직접 구현해야 했다.      


2. MarkupExtension등을 지원하지 않아 Markup 확장이 불가능하여 다른 형태의 XAML답지 못한 요소나 속성들을 따로 만들어야 한다. MarkupExtension등으로 IoC Container 등과 통합을 쉽게 할 수 있으나, 어쩔 수 없이 필자는 Attached Property로 아래와 같이 구현해야 했다.

또는 아래와 같이 LambdaExpression을 이용하여 동적 Compile() 하여 사용하는 형태로 다음과 같이 사용이 가능토록 할 것이다. 이 경우, 위의 방법보다 더 나은 성능을 보여줄 것이다.

 

3. Frame.Navigation은 객체의 Type으로 뷰를 이동한다. 하지만, 하나의 타입에 두 개의 뷰를 만들 수 있는 APIs 를 제공해 주지 않는다 따라서 INavigationService와 NavigationServiceFrame을 직접 구현하여 다음과 같이 하나의 Type 으로 생성되는 뷰는 여러 개의 뷰 객체를 생성할 수 있도록 했다.

다음과 같이 인터페이스를 정의하였고, 기존의 Windows.UI.Xaml.Controls.Frame은 Umc.Core.ModernApp.NavigationServiceFrame으로 대체하도록 하였고, UniquqKey로 구분하여 하나의 Type에 여러 뷰를 생성하여 네비게이션 할 수 있도록 했다.

   

4. IoC Container와 통합된 EventAggregator

뷰에 이벤트를 전달하거나 전역 이벤트를 전달하기 위해서 좀 쉬운 구조로 가기 위해 IoC Container에 EventAggregator를 함께 넣어보았다. Message 방식을 통해 뷰의 이벤트나 전역 이벤트를 구독할 수 있다.

   

그리고 구독을 뷰에서 제어할 수 있도록 하였다.

   

5. IoC Container와 통합된 인젝션. 객체의 인젝션(Injection-주입)은 다음과 같이 이루어진다.

   

6. IoC Container의 Configuration File 구성

이건 이전에 http://umccore.codeplex.com 에 구현해 놓은 것을 WinRT 용으로 마이그레이션 하였다. patterns & practices - Unity의 경우 Configuration을 지원하지 않지만, UmC Core의 IoC는 이를 한번 더 Wrapping 하였기 때문에 구성 파일로 만드는 것이 가능하다.

   

7. IoC Container에서 지원하는 AOP

이는 WinRT 구조상 이를 구현하기가 그리 쉽지는 않다. WinRT에서는 직접 MSIL(MS Intermediate Language)을 이용하여 런타임에 Instructions을 생성할 수 없다. 다만, APIs 가 모자란 만큼 모자란 대로 구현을 할 수 밖에 없다.

예를 들면, C#의 dynamic 을 이용하여 다음과 같이 구현 가능하겠다.

   

   

다음 버전의 윈도우8 앱 SDK 구조는 또 얼마나 바뀔까 걱정!

실버라이트의 일부와 윈도우 폰7에서도 그러하듯 이번 WinRT도 초기 버전이라는 생각이 든다. 생각해보라. 실버라이트 1,2까지 얼마나 개발자의 Needs를 만족해주지 못하였는지. 앞으로 등장할 윈도우 폰8 개발 SDK도 하위 호환성을 일부 포기한다고 알고 있다.   

현재까지 윈도우8 앱 개발 SDK 환경을 본다면, 기존에 가능하던 것들이 WinRT 환경에서 매우 많은 제약이 따른다는 것이 불편하다. 현재 WinRT와 윈도우8 앱 개발 플랫폼의 구조를 본다면, 차기 개발 SDK에서는 WinRT를 얼마나 개선할 수 있을지 알 수는 없다. 아마 WinRT/SDK를 만드신 분들도 참 많이 고민을 했을 것이다.   

다만 WinRT/SDK를 사용하는 개발자에게 그 동안 밟아왔던 원망스러웠던 수순을 밟지 않기를 바랄 뿐이다. 

어쨌든, 윈도우8 WinRT/SDK의 불합리하거나 불편했던 부분을 필자가 구현한 이전에 공개했던 http://umccore.codeplex.com 에 추가로 공개할 예정이다.

'O/S > Windows 8' 카테고리의 다른 글

윈도우 8, 무서운 드라이버와 궁합  (0) 2013.06.05
윈도우 8, 반토막짜리 WinRT와 WinRT SDK  (1) 2012.10.30
Posted by 땡초 POWERUMC

댓글을 달아 주세요

  1. 김종남 2016.05.15 21:03 Address Modify/Delete Reply

    글 잘 보았습니다.

Windows 8 스타일 개발이 한창 유행이다. 물론 모바일 생태계 전반전인 유행은 아니더라도 Microsoft 기술을 하는 사람들에게는 관심 대상이다. Windows 8 운영체제가 탑재되는 테블릿도 출시가 되고, New iPad 보다 하드웨어 스팩이 좋은 테블릿 출시도 준비중인 곳이 많다고 들었다. 새로운 마켓이 열리는 만큼 테블릿 사용자에게는 새로운 재미를 선사해줄 것은 분명한 사실일 것이다.

Windows 8 스타일 ! 개발을 위해 가지 알아야 구조적인 개념이나 유의사항 정도만 언급하기 위해 글을 나간다. C++/CX, C#,VB XAML(eXtensible Application Markup Language) 이용하여 WPF 데스크탑 응용 프로그램처럼 프로그래밍을 있다. 그리고 HTML/JavaScript 조합으로 개발 환경과 유사하게 개발을 있다. 아마 대부분의 Windows 8 스타일 개발자라면 알고 있는 내용일 것이다. 그리나 포스팅에서는 C++/CX C# 개발 언어를 기준으로 아티클 내용을 채울 것이다.

 

Windows 8 스타일 런타임 관점의 구조

[이미지 링크]

   

WinRT(Windows Runtime) 플랫폼의 구조적 아키텍처 이미지이다. 기존 Windows Desktop 응용 프로그램 환경과 다른점은 WinRT APIs 중간에 끼어있다. WinRT Windows 8 스타일 앱의 핵심이며, Windows 시작하는 Namespace 모두 WinRT 이다.

C#,VB 개발 환경은 그나마 편리한 Library Subset 제공한다. .NET Framework 최소화 버전이라고 보면 된다. 이를 .NET for Windows Store apps 이라고 부르며, 위의 이미지에는 내용이 빠져있다.

C++/CX 잘라 .NET for Windows Stores apps 제공되지 않는다. .NET 개발자라면 System(mscorlib.dll) 으로 시작하는 Namespace 얼마만큼 편한지 알텐데, Library Subset 제공되지 않으니 다른 방법을 사용해야 한다. 쉬운 예로 HttpClient 같은 클래스도 C++/CX MsXml COM 컴포넌트를 이용하는 편이 낫다. 그렇다고 모든 C++ 라이브러리를 사용할 있는 것도 아니다. 이 부분에서 특히 라이브러리의 제한이 있으므로 C:\Program Files (x86)\Windows Kits\8.0\Include\shared 폴더에서 사용가능한 Header 파일을 확인해보도록 하자.

만약 Header 파일의 pragma 선언이 Dektop Family 라면 Windows 8 스타일 앱에서는 사용할 없는 라이브러리이며, 상당한 Header들이 Desktop Family 속하여, 당장 .NET for Windows Stores apps 만큼 쓸만한 클래스들이 없다는 것이 조금 슬프다. 다만, 좋은 소식이라면 C++ boost Library 등이 C++/CX 용으로 컨버전을 시도하는 분들이 많으므로, 조금만 기다려보면 쓸만한 라이브러리들이 대거 출연할 것으로 보인다.

   

더불어 C#, C++ 개발자들도 알고 있어야 하는 중에 하나가 WinRT COM 컴포넌트 기반의 라이브러리라는 것쯤은 들어보았을 것이다. 그래서 Windows 8 스타일 개발자들은 COM 대한 개념과 나아가 이를 구현할 있다면 좋다. 특히 C#, VB 에서 WinRT 컴포넌트를 만드는 것은 가지 지켜야할 제약이 있으므로 다음의 링크를 참고하는 것이 좋다.

C# Visual Basic으로 Windows Runtime 구성 요소 만들기 http://msdn.microsoft.com/ko-kr/library/windows/apps/br230301.aspx

   

대신 C++/CX WinRT 컴포넌트를 만드는 것이 오히려 간단하다. 앞서 말했다시피 WinRT COM 컴포넌트 기반이지만, 기존 C++ 에서 COM 컴포넌트를 만드는 만큼 어렵지가 않다. C++ COM 구현의 첫번째는 IUnknown 인터페이스를 구현하는 것이지만, WinRT 에서는 Iunknown을 상속하는 IInspectable 인터페이스가 더 중요하다. IInspectable 인터페이스는 C++/CX 개발된 응용 프로그램이 런타임 해당 클래스의 정보를 제공하기 위한 인터페이스이다. 물론 기존 C++ 에서도 런타임상 클래스 정보가 필요하여 이를 직접 구현하는 방법도 있다. 하지만 C++/CX IInspectable 인터페이스는 C++/CX 컴파일 과정에서 자동으로 구현을 해준다. 이는 IUnknown 인터페이스까지 자동으로 구현해준다고 보면 된다. 그렇기 때문에 Iunknown 인터페이스의 AddRef, Release 메서드에 대한 객체 수명주기를 WeakReference 클래스를 통해 위임할 있다. WeakReference 통해 금방 해제될 있는 컴포넌트를 가비지 컬렉터 대상이 되도록 지정한다. 그러므로 사용 빈도가 매우 많고, 매번 자원 해제에 대한 비용이 반복되는 것은 WeakReference 효과적으로 객체 수명 주기를 다룰 있게 한다. 이러한 C++/CX 특별히 제공되는 라이브러리는 Microsoft.WRL Namespace 포함되어 있다.

아직 이러한 개념적인 부분이 어렵게 느껴진다면 월간 마이크로소프트 5월호 특집 기사로 기고한 필자의 다음의 글부터 참고 바란다.

[월간 마이크로소프트 5월호 특집기사] C++ 매트로 개발을 위한 C++/CX 언어 http://blog.powerumc.kr/378

   

   

Windows 8 스타일 응용 프로그램 관점

짧게 말해 Windows 8 스타일 개발은 쉽다. Visual Studio 2012에서 훌륭하게 대부분이 구현된 템플릿을 제공하기 때문에, 메서드 중간 중간 원하는 기능을 추가하고, 클래스나 XAML 만들면 된다. 다만, 이는 만든다는 것이 쉽다는 것이지 응용 프로그램 구조적인 측면에서는 전혀 쉽지 않다.

먼저 알아야 것이, Windows 8 스타일 페이지를 상태 관리 것인지, 것인지부터 결정해야 한다. 상태 관리를 유지할 필요가 없다는 것은 개발(ASP.NET/ASP/PHP/JSP) 같은 서버 사이드 개발 환경과 유사하다. 특히 IIS에서부터 ASP.NET까지 연결되는 Application Pipeline 매번의 Request마다 Pooling Thread 활성화되어 서버 랜더링을 통해 사용자에게 HTML Response 전달이 된다.

   

1. 상태 관리를 개별적으로 유지하고 싶다면

다음의 가지 메서드를 재정의하면 된다. ASP.NET Custom Control 구현해 보았다면 VIEWSTATE 상태 유지를 위해 이런 유사한 코드를 구현해야 하는 것을 것이다.

   

Frame.Navigate 메서드는 Page Type 인자로 받고, 매번 새로운 인스턴스를 생성한다. (구현을 다르게 한다면 인스턴스를 이용하도록 수도 있다.) 페이지의 상태 유지야 위의 메서드를 재정의하는 정도로 끝낼 있지만, 페이지에 포함된 UserControl 있다면 상황은 달라진다. 독자마다 구현하는 방법은 다르겠지만, 효과적으로 상태를 관리하기 위해 UserControl 조금 귀찮아지는 존재이다. 인스턴스의 재사용을 위해 자주 사용하는 UserControl 대한 상태 관리를 고민해야 하다니… (현재 아티클은 내용이 대해 오픈 소스 제공으로 효과적인 방법을 제안하도록 필자는 약속 하겠다.)

   

2. 상태 관리를 자동으로 캐싱하고 싶다면

상태 관리를 자동으로 캐싱하는 방법도 매우 쉽다. Page.NavigationCacheMode 프로퍼티를 Enabled 해주면 된다. 물론 XAML 코드에 속성을 추가해도 된다. 하지만 아쉽게도 Frame.Navigate 메서드를 통해 자동으로 상태 관리를 하도록 Page 새로운 인스턴스가 생성이 된다. 상태 관리 캐싱에 대한 조건은 GoBack(), GoFoward() 같은 Frame 이동에 대해서만 유효하다. 조금 이해할 없는 부분은 Page 포함된 UserControl 상태 관리 캐싱 대상에서 제외된다. (물론, 가능하도록 있지만 개념적으로 깊게 이해하고 구현해야 한다.)

   

3. 남발되는 async/await 의한 동기화 문제

Windows 8 스타일 앱을 사용하다가 자주 멈짓 멈짓 한다면 분명 사용자는 짜증날 것이다. 때문에 async / await 키워드를 더욱 자주 사용하는 편이다. 그렇기 때문에 UI 상태에 대한 비동기와 컴포넌트나 인스턴스 메서드 호출에 대한 비동기, 모두 정확하게 Threading 대한 지식이 필요하고, 자유 자재로 Threading 다룰 있다면 더욱 좋다. Windows 8 스타일 앱에서 가장 많이 발생하는 Threading 문제는 Thread 실행 인스턴스 해제에 대한 동기화와 Thread Cancel 대한 동기화다.

문제를 피하기 위해서는 클래스나 라이브러리를 만들때 부터 async / await 대한 고려가 필요하다. 쉽게 이야기하자면 자주 쓰지 않는 편이 좋고, 써야 곳에 써야 한다.

   

이를 판단하려면 Thread 동기화에 대해 적어도 가지는 반드시 익히는 것이 좋다. MSDN 아래의 글들을 번정도 필독하기 바란다.

관리되는 스레딩 기본 사항 http://msdn.microsoft.com/ko-kr/library/hyz69czz
스레딩(C# Visual Basic) http://msdn.microsoft.com/ko-kr/library/ms173178(v=vs.110)

   

      

Windows 8 스타일 배포와 라이브러리 배포 문제

부분은 매우 민감한 부분이고 조심스럽다. 실제 Windows App Store에서 테스트할 없을 뿐더러 개발 환경에서 발생하는 문제이므로, 실제 Windows App Store 통해 발생할 수도 있을 가능성이 있을 같다. COM 기반 라이브러리나 DLL 구성 요소 등은 공유 메모리에 로드가 된다는 것을 것이다. 특히 부분은 COM 컴포넌트에서 민감하게 다루는 IUnknown 인터페이스의 의미와 일맥 상통한다. , COM 객체의 참조 카운트(Reference Cout) 0 되지 않으면, 자원은 해제되지 않는다. 여기에서 COM 가장 고질적인 문제가 발생한다. 바로 DLL 지옥이다. Windows 8 스타일 앱의 메모리 위치는 메모리 영역이 아닌 공유되는 메모리 영역에 위치하고 있고, DLL Verserning 자유롭지 못하다. .NET 처럼 GAC(Global Assembly Cache)에서 DLL 버전별로 관리되지 않는다.

따라서, WinRT 런타임 라이브러리를 개발하여 배포된 Windows 8 앱이 활성화 상태일 새로운 앱에서 버전업 WinRT 런타임 라이브러리 배포시에 다른 프로세스가 점유하고 있다는 오류가 발생한다. 이는 앱이 초절전 유휴 상태에 진입되어도 마찬가지이다.

이찌되었든 개발 환경에서는 충분히 발생된 문제이니, 차후 Windows App Store에서도 발생할지는 지켜보아야 것이다.

   

Windows 8 Windows Runtime 재배포 정책 업데이트

런타임 라이브러리인 만큼 라이브러리 코드가 완벽하지는 않을 것이다. .NET Framework 1.0부터 4.5까지 버전업이 되어왔는데 과연 Windows 8 Windows Runtime 어떻게 버전업이 될까? 사용자의 동의 없이 업데이트나 패치는 불가능하다.

   

Windows 8 Features Pack 1,2,3… 시리즈로 업데이트가 될까?
Windows 8 Service Pack 1,2,3… 시리즈로 업데이트가 될까?

   

만약 이렇게 되면, Windows 8 스타일 간에 호환성 문제가 발생할 것이 분명하다. Apple iPhone 모바일 폰의 운영체제 업데이트가 실시간으로, 온라인으로 이루어진다. Windows 8 iPhone 업데이트와 차원이 달라진다. WinRT 지원하는 ARM 버전과 기존의 Windows 8 Desktop 지원하는 x86 버전 가지의 에디션이 있다.

혹시 부분에 대해서 알고 있는 정보가 있으면 공유 부탁 드립니다.

Posted by 땡초 POWERUMC

댓글을 달아 주세요

윈도우 8, 뜨거운 감자 [1/2]-무엇이 사용자를 화나게 하는가?
윈도우 8, 뜨거운 감자 [2/2]-혁신은 언제나 리스크를 안고 간다


 필자는 마이크로소프트의 윈도우 8 전략을 조금은 이해한다고 생각한다. 물론 다른 사람들이 볼 때 자신의 의견과 다르거나 필자가 어느 한 쪽으로 편향이 되어 보일 수 있겠다. 하지만, 필자는 진정으로 마이크로소프트의 소프트웨어들을 사랑한다. 필자는 리눅스를 초보이기 때문에 리눅스에 대한 어떠한 피드백을 줄 것도 없거니와 큰 불만도 없다. 리눅스 커널을 뿌리깊게 공부해 본적도 없고 리눅스 전용 소프트웨어를 개발해 본적도 없다. 윈도우 8이라는 뜨거운 감자에 대해 이런 글을 쓰는 것은 그 만큼 윈도우 운영체제를 아낀다는 반증이라고 생각해 주기 바란다.

윈도우 8은 새로운 혁신이다. 일단 현재의 불편함은 윈도우 8 RTM 출시 후 냉정한 사용자의 평가에 맡길 수 밖에 없으므로 이야기를 전환해 보자. 윈도우 8은 우리에게 무슨 메시지를 전하고 싶어하는가?

   

윈도우 8 운영체제가 곧 클라우드이며, 운영체제의 상식의 한계점을 넘었다.

운영체제(OS-Operating System)는 알다시피 '하드웨어와 사용자를 연결'하는 가장 추상화된 레벨이다. 그리고 지금까지의 윈도우 운영체제는 운영체제의 본연의 역할에 충실했다. 하지만, 이제는 윈도우 8 운영체제는 SaaS(Software as a Services)와 통합이 되었다. 운영체제가 SaaS와 통합하기 위해 운영체제는 인터넷이라는 거대한 네트워크와 베플(Best Friend)이 되어야 한다. 최종 사용자에게 소프트웨어를 위한 어떤 서비스를 제공하기 위해 인터넷이라는 매개체를 이용해야 한다. 이로써 운영체제는 운영체제의 기본 역할을 넘어 고객의 요구와 눈높이에 맞추는 소프트웨어 서비스를 제공하는 서비스 프로바이더(Services Provider)가 되었다.

 

   

아마 윈도우 8 운영체제 덕분에 언젠가는 운영체제(OS)의 의미가 더 큰 의미로 사전에 추가될 것이다. '운영체제란? 하드웨어와 소프트웨어, 인터넷을 아울러 최종 사용자에게 가치 창조형 서비스를 제공하는 소프트웨어' 라고 말이다.

   

윈도우 8, 하이브리드 N 스크린

하이브리드 N 스크린. 필자가 이렇게 이름을 지어보았다. N 스크린의 의미는 '폐쇄적인 1~2~3 스크린을 확장하여 N개의 디바이스, N개의 스크린, 그리고 개방형 서비스' 라고 정의할 수 있다. N 스크린을 실현하기 위해 플랫폼의 구축이 반드시 필요하였다. 왜냐하면 N 스크린의 개방형 서비스를 실현하기 위해서는 클라우드라는 규모있는 대규모 플랫폼으로 PaaS(Platform as a Services), IaaS(Infra as a Service), SaaS(Software as a Services)가 제공하는 서비스가 N 스크린의 서비스 품질을 결정한다고 해도 과언이 아니다. 

예를 들어, 일부 2세대 휴대폰이나 최신 스마트폰에서 제공하는 DMB로 TV를 시청하는 서비스를 상상해보자. DMB 전파를 위해 별도 채널을 확보해야 하고, 기존의 기지국에서 DMB 전파를 송신할 수 있는 장치 등이 필요할 수 있다. 혹여 위성 DMB 서비스를 이용하려면 서비스 제공자는 위성이 필요하다는 것이다. DMB 시청에 필요한 모든 서비스를 하나의 플랫폼으로 구축되어 있다고 이해해도 될 것 같다.

 

   

다시 이야기의 원점으로 돌아가서, 필자가 지적한 윈도우 8 의 불편한 것 중의 하나가 '시작' 버튼이 없어진 것이다. 이것을 상징적인 의미로 바꾸어 표현하면 윈도우 8은 더 이상 데스크탑 전용 운영체제가 아니며, 데스크탑이 메인이 아니라는 것이다. 그렇다고 윈도우 8이 테블릿이나 모바일을 메인으로 하는 운영체제도 아니다. 필자가 이름지어 본 '하이브리드 N 스크린'을 기억하는가. 상상해 보자. 윈도우 8 운영체제는 N 명의 사람들이 어깨동무를 하고 동그랗게 모여있는 모습을 하늘에서 내려다본 그 모습이 윈도우 8의 모습이다. 

윈도우 8을 현재의 모습보다 미래지향적으로 바라본다면 매우 파괴력 있는 운영체제임은 틀림이 없다. 대신, 그 리스크(Risks)도 안고 가야 하는 것도 윈도우 8의 운명이다. 미래를 향한 파괴력인지, 스스로 자멸하는 파괴력인지 마이크로소프트의 몫이라고 할 수 있겠다. 그렇기 때문에 마이크로소프트의 윈도우 8은 전세계의 윈도우 사용자와 함께 어깨동무를 하고 나아가야 할 소셜틱한 운영체제임이 틀림이 없다.

   

   

윈도우 8, 그리고 …

필자가 윈도우 8에 대해 볼멘 소리를 하다 말고 윈도우 8의 미래지향적인 메시지를 얘기하는 것도 매우 재미있다고 느껴진다. 필자는 윈도우 8의 양날의 검이라고 생각한다. 마이크로소프트가 수 많은 사용자의 피드백을 무시하고 내놓은 윈도우 8 운영체제에 대해 냉혹한 평가를 받아야 한다.

그리고 윈도우 8이라는 뜨거운 감자는 쉽게 식지 않을 것 같다. 이제는 마이크로소프트의 몫이다. 맛있게 속이 알차게 익은 감자가 될지, 다 타버리고 재만 남는 감자가 될지는 아직 아무도 섣불리 판단하기 이르다. 다만, 우리 사용자 입장에서는 윈도우 8 이 발전하고 좋아져야 하는 것은 당연한 것이다. 사용자가 싫어하는 것을 하지 않거나 보완하는 것이 진정으로 위하는 것이라는 모 기업의 TV 기업 이미지 광고의 의미도 곱씹어 보아야 할 것이다.

Posted by 땡초 POWERUMC

댓글을 달아 주세요

  1. 개발자 2012.08.20 14:18 Address Modify/Delete Reply

    잘 봤습니다. MS 를 사랑하는 개발자로서 공감이 가네요. 빌 돌아와줘요~~~

  2. 지나가는이 2012.08.21 22:09 Address Modify/Delete Reply

    마우스 오른쪽 클릭하면 시작버튼 누를때 나오는 것과 비슷한 것이 뜹니다.
    이전보다 기본적으로 필요한 것들이 들어가 있고 더 좋은데요..
    사용해 보면 windows8 굉장히 유용합니다.
    과거에는 안티였지만 windows8로 그나마 변하느낙 부다 좋은징조로 받아들이는데.
    mvc분들은 과거에는 이해할수 없이 찬양하더니 windows8 나오니 비판적이신듯..ㅋㅋ

    • NikooRn 2012.11.27 10:51 Address Modify/Delete

      문제는 오른쪽 클릭을 해도 윈도우7에서 하던 많은 것들이 안되는게 문제죠.. 특히 시작화면의 앱에서는 오른쪽 클릭을 해도 앱에서 다양하게 이루어지던 기능들이 많이 빠져있고 계정도 일반계정이라 힘드네요...

  3. çatı 2012.08.31 02:46 Address Modify/Delete Reply

    아주 좋아요. 감사

윈도우 8, 뜨거운 감자 [1/2]-무엇이 사용자를 화나게 하는가?
윈도우 8, 뜨거운 감자 [2/2]-혁신은 언제나 리스크를 안고 간다


윈도우 8, 마이크로소프트의 가장 최신 버전의 운영체제이다. 2009년 10월 23일, 윈도우 비스타의 부진을 딛고 윈도우 7을 출시하였고, 이는 현재까지도 마이크로소프트의 성공한 운영체제로 평가 받고 있다. 특히 윈도우 7은 윈도우 비스타에 비해 월등히 빠른 성능과 글래스 스타일(Glass Style) 효과인 반투명한 윈도우 창이 윈도우 운영체제에 매우 조화롭게 녹아 들었다. 필자 또한 윈도우 XP 이후 가장 오랫동안 사용한 운영체제가 바로 윈도우 7이기도 하다.

 

   

(본 아티클에서는 어휘의 자연스러움을 위해 용어는 영문 또는 한글을 혼합하여 사용하였음을 양해 바란다. 그리고 '메트로 스타일' 용어에 대해 마이크로소프트의 공식적인 지침이 없으므로 '메트로 스타일'과 '윈도우 8 스타일' 등의 용어를 혼용하여 사용한다.)

   

윈도우 8을 논하기 전, 윈도우 비스타와 윈도우 7부터...

윈도우 비스타와 윈도우 7, 무엇 때문에 운영체제의 성패를 좌우하였는가? 사용자에게 보여지는 글래스 스타일의 UI 효과도 똑같았고, 사용자 계정 컨트롤(UAC, User Account Control)의 강력한 사용자 측면의 보안 강화와 같은 기능들은 대부분이 유사하였다. 특히 외관상 전문가가 아니면 구분하지 못할 정도로 두 운영체제 모두 아름다운 사용자 인터페이스를 가졌다.

 

   

그렇다면 무엇이 윈도우 비스타를 추락시켰나? 큰 맥락만 짚고 넘어가보자. (단, 개발 입장에서는 더 큰 어려움이 많았지만, 이 아티클에서는 주요한 사용자 측면만 요약한다)

  • 첫 번째로 운영체제의 하위 호환성이다. 게임 유저들이 게임을 하기 위해, 그리고 윈도우 응용 프로그램 또한 기업용 응용 프로그램들이 윈도우 XP 사용을 유지하였거나 윈도우 XP로 다운그레이드를 하였다. 그 이유는 하위 호환성이 완벽하게 보장이 되지 않았으며 보안 프로그램(특히 기업용)이나 시스템 레벨에서 동작하는 소프트웨어(드라이버 등)의 마이크로소프트 파트너에서도 이에 발 빠르게 대응하지 않은 문제도 있었다.
  • 두 번째, 운영체제 성능이다. 사용자가 운영체제를 사용하기 위해 다양한 동작을 하게 되는데, 그 중에서 응용 프로그램을 실행하고, 인터넷을 즐기기 위해 브라우저를 실행하고, 사용자가 체감적으로 느끼는 반응 속도가 윈도우 XP에 비해 성능이 현저하게 떨어졌다. (응용 프로그램 버전, 브라우저 버전에 대한 성능 문제는 이 아티클에서는 논외로 한다)
  • 세 번째, 사용자를 괴롭히는 사용자 계정 컨트롤(UAC). 윈도우 XP에서는 대부분 사용자 계정을 최고 관리자 계정(Administrators) 범주에 포함이 되었으나, 윈도우 7에서는 사용자 계정은 관리자 계정이 아닌 일반 계정이다. 그래서 응용 프로그램 등이 사용자 시스템의 리소스에 접근하기 위해 사용자에게 허가를 받아 임시로 계정 권한을 관리자로 승격시키는 것이 주요 컨셉트이다. 이로써 악성코드나 바이러스는 자기은폐나 자기복제를 하기 위해 사용자 시스템의 리소스에 접근할 수 있는 권한이 근본적으로 차단이 되었다. 하지만, 이런 권한 승격을 위해 사용자에게 묻는 횟수가 너무하다 싶을 정도로 많았기 때문에 사용자에게 분노를 느끼게 할 정도였다.

   

그렇다면, 왜 윈도우 7이 성공했는지에 대한 대답은 간단하다. 위의 세 가지의 문제들이 모두 깔끔하게 해결되었기 때문에, 더 이상 사용자는 윈도우 XP에 머물 이유가 없었다. 윈도우 7의 보안 향상이라는 점 때문에 기업에서도 적극적으로 관심을 보이며, 국내 굴지의 대기업에서 전사적으로, 일부는 점진적으로 직원들이 사용하는 컴퓨터의 운영체제를 윈도우 XP에서 윈도우 7으로 업그레이드를 하였다. (즉, 윈도우 비스타는 건너 뛰었다) 필자가 다니던 전 회사인 N모 게임사도 2011년 3000여명의 전사적 차원에서 윈도우 7으로 교체하였고, 운영체제의 표준으로 자리잡았다.

   

   

윈도우 8, 윈도우 비스타를 방불케 하는 뜨거운 감자!

이 아티클을 쓰는 시점, 윈도우 8은 이미 제조사에게 제공되는 RTM 버전이 공급이 되었다. 윈도우 8이 공식적으로 출시가 되면 많은 제조사에서 생산되는 데스크탑 컴퓨터, 노트북, 울트라북, 테블릿 기기에 윈도우 8이 기본 탑재가 되어 출시될 것이다.

   



무엇이 윈도우 8을 뜨거운 감자로 만들었는가?

(단, 이 아티클에서는 윈도우 8을 데스크탑 운영체제 관점에서 바라볼 것이며, 테블렛은 특별히 언급하지 않는 한 논외로 한다.)

   

  • 시작 버튼
    윈도우 8에는 '시작' 버튼이 사라졌다. 별것도 아닌 '시작' 버튼이 무엇이 문제가 되는지 잠시 되짚어보자. 마이크로소프트는 윈도우 운영체제가 부팅되면 '바탕화면'이 사용자에게 가장 먼저 보이는 UI이다. 최초 이 텅 빈 UI에 사용자는 윈도우라는 운영체제를 배우지도 않아도 사용할 수 있는 방법이 필요했고, 그 획기적인 방법이 '시작' 버튼이다. 10년이 훨씬 넘는 긴 세월 동안 윈도우는 '시작' 버튼으로 사용자가 사용하기 쉬운 운영체제가 되었다.
    10년도 더 이전에는 '시작' 버튼이라는 용어 자체가 획기적이었다. 당시의 대부분의 소프트웨어는 각 기능의 접근을 위해 '메뉴'라는 것을 구현하였다. 기술적으로 이 메뉴 구현을 '풀다운 메뉴(Pull-Down Menu)' 라는 기법을 사용하였고 이 기법은 2진-트리와 비슷한 자료구조의 형태이다. '풀다운 메뉴' 단어에서 알 수 있듯이 최상위 메뉴가 하위 서브 셋 메뉴를 갖는 획기적인 방법이었다. 모든 소프트웨어들은 GUI(Graphics User Interface)의 유무에 상관없이 함께 필수적으로 구현하는 것이 '풀다운 메뉴'였다. 윈도우에서 '시작' 버튼은 단순히 메뉴라는 기능적인 관점을 넘어 사용자의 경험(UX)에 즉각적으로 향상된 사용자 경험을 제공해 주었다. '시작' 버튼의 기능은 단순히 메뉴가 펼쳐지는 UI에서 점차적으로 많은 개선이 이루어졌고, 현재의 윈도우 7의 모습으로 발전한 획기적인 바로 그것이 '시작' 버튼이다.



    윈도우 8의 '시작' 버튼이 사라지는 것에 대해 많은 찬반 토론이 있지만, '시작' 버튼의 그 기원 자체를 인정하고 시작해야 한다. 그깟 '시작' 버튼이 윈도우를 대표하고 윈도우라는 운영체제를 연상케 하는 핵심적인 요소임이 분명하다는 것을 인정해야 한다. 그렇지 않으면 '시작' 버튼의 유무에 대한 논의 자체가 불필요하다. 최근 '시작' 기능 자체가 매우 많은 기능을 담당하고 사용 방법도 복잡해짐에 따라 '시작' 버튼에 대한 혁신이 필요하다는 관점에서 '시작' 버튼이 없어지는 것을 환영하는 사람도 있다. 반면, 필자와 같이 '시작' 버튼이 반드시 필요하다는 사람들은 '시작' 버튼이 사라지는 것을 상당히 우려하고 있고, 가장 큰 불만 중 하나이다. '시작' 버튼이야말로 윈도우의 기능과 소프트웨어 자원의 집합체를 바로 '시작' 버튼에 모든 것을 담아낸 최고의 사용자 경험이었다.
    초기 버전의 윈도우 8 CTP(Consumer Preview와 상응 또는 그 전후) 버전에는 레지스트리를 통해 '시작' 버튼을 활성/비활성 할 수 있는 방법이라도 제공이 되었지만, 윈도우 8 RTM 버전에는 이 방법마저도 제공해주지 않는다.

    즉, '시작' 버튼이 사라진 것을 받아들여야 한다. 이로써 사용자 관점에서 기존 통합된 UX가 분산되어 버렸다. 과연 '시작' 버튼을 제거한 것이 향상된 사용자 경험인지에 대해서는 추후에 냉철한 평가가 필요할 것이다.
    • 시작 버튼의 모든 프로그램 항목들은 메트로 시작화면으로...
    • 시작 버튼의 제어판과 컴퓨터 관리는 바탕화면에서 제스처를 통해 슬라이드 메뉴를 활성화시키는 것으로...
    • 시작 버튼의 시스템 종료도 제스처를 통한 슬라이드 메뉴를 활성화시키는 것으로 ...
    • 시작 버튼의 윈도우 내의 자원의 검색은 매트로 시작 화면의 검색 기능으로...
    • 키보드의 Windows 키는 '시작' 버튼의 시작 메뉴 활성화 기능에서 매트로 시작화면<->데스크탑 바탕화면 전환으로…

    결국 '시작' 버튼을 제거하여 '시작' 버튼이 제공하는 기능을 분산시켜 버렸기 때문에, 클릭 1~2번으로 해결할 수 있는 것들을 클릭+제스처를 이용하여 좀 더 어려운 동선을 그려야 한다. 그리고 사용자들이 '시작'만 보고도 윈도우를 쉽게 사용할 수 있었지만, 윈도우 8 사용자는 무엇을 보고 '시작'해야 할까?

       


   

메트로 스타일 (윈도우8 스타일 사용자 인터페이스 및 사용자 경험)

마이크로소프트가 정식으로 '메트로(Metro)'라는 단어를 사용한 것이 윈도우 폰 7에서 시작되었다. 필자는 이 메트로 스타일의 UI를 보았을 때 감탄을 하였다. 전혀 마이크로소프트의 발상이라고 할 수 없을 정도로 퀄리티가 높은 사용자 인터페이스였다. 마이크로소프트가 출시하는 대부분의 소프트웨어들은 전형적인 마이크로소프트 스타일의 '콘솔(Console)' 형태의 사용자 인터페이스이다. 수십년 동안 '콘솔' 화면에 익숙해진 것인지 메트로 스타일의 사용자 인터페이스는 그야말로 획기적일 보일 수 밖에 없었다.
윈도우 폰 7이 다른 국가에 비해 국내 출시가 매우 늦어진 탓인지 메트로 UI에 대해 이런저런 불만의 목소리는 거의 없었다. 하지만, 윈도우 폰 7은 국내 출시되고 얼마 되지 않아 상당한 불만들이 쏟아져 나오기 시작했다. 폴더 기능의 부재는 윈도우 폰 7의 불만 중에 하나이다. 그 흔한 모바일 운영체제에서 지원하는 폴더 기능을 제공하지 않는다. 수 많은 앱들 중에 비슷한 앱을 묶어 폴더에 담기도 하고, 자주 사용하는 기능을 폴더링하여 접근성이 좋은 첫 페이지에 놓기도 한다. 하지만, 당연하다고 생각하는 폴더 기능조차 윈도우 폰 7에서는 제공되지 않는다.

   

폴더 기능의 부재 때문에, 윈도우 폰 7에서는 앱이 많아질수록 앱 관리가 힘들어졌다. 앱을 찾기 위해 무한 스크롤을 해야 하고, 어느 앱이 어느 앱인지 분간하기도 쉽지 않다. 아이콘으로 앱을 구분할 수 없고, 수 많은 네모 칸의 이 색깔 ,아니면 저 색깔의 앱들을 무슨 수로 빠르게 찾을 수 있었겠는가. (필자는 검색 기능을 말하는 것이 아닌, 육안으로 인식하는 것에 대한 것임을 유의하기 바란다)

 

   

이미 윈도우 폰 7의 메트로 스타일의 폴더 기능의 부재로 겪게 되는 불편함은 여전히 윈도우 8에서 개선되지 않았다. 정말 필자가 느끼는 것 중의 가장 불편한 것이라면 첫 째도 폴더 기능이고, 둘 째도 폴더 기능이다. 윈도우 8의 메트로 바탕 화면에서 단색의 네모 칸의 앱 아이콘은 도저히 앱들을 분간할 수 없을 지경이다. 그나마 검색 모드로 전환해야 같은 분류의 앱들이 어느 카테고리인지 표시는 해주지만 사실 눈에 잘 띄지도 않는다. 그리고 원하는 곳으로 이동할 수도 없기 때문에 사실상 더 불편해 졌다고 느껴진다.

   

데스크탑 응용 프로그램을 찾으려면 메트로 바탕화면으로 가야 한다.

필자의 입장에서 가장 이해가 되지 않는 부분이다. 왜 데스크탑 응용 프로그램을 실행하기 위해 메트로 바탕화면으로 이동해야 하는가. 윈도우 8에서는 데스크탑 응용 프로그램을 찾기 위해서 메트로 바탕화면으로 이동해야 한다. 그리고 데스크탑 응용 프로그램 아이콘을 클릭하면 다시 데스크탑 바탕화면으로 이동하고 응용 프로그램이 실행된다. 예를 들자면, 필자가 게임을 실행하기 위해서 '메트로 바탕화면 이동 -> 게임 응용 프로그램을 스크롤하며 찾기 -> 게임 응용 프로그램 클릭 -> 데스크탑 바탕화면으로 강제 전환됨 -> 게임 실행됨'. 몇 달 동안 윈도우 8을 사용해왔지만 여전히 비효율적인 방법이라고 느끼며 불편하다.

   

 

데스크탑 응용 프로그램은 데스크탑에서 찾고... 메트로 앱은 메트로 바탕화면에서 찾아야 한다. 하지만 윈도우 8은 모든 응용 프로그램과 앱들을 메트로 바탕화면에 몰아 넣었다. 필자는 노트북 또는 데스크탑을 사용할 때 메트로 앱을 사용할 일이 없고, 메트로 바탕화면으로 가야 할 일도 없다. (물론 사용자마다 틀리겠지만...). 필자는 메트로 앱 중 뉴스 앱보다 데스크탑에서 브라우저로 뉴스를 보는 것이 빠르고 편하다. 더불어 체감적으로 브라우저 랜더링에 비해 메트로 앱의 랜더링은 너무 느리다. 필자가 사용하는 데스크탑 경험은 바로 이것이다. 즉, 데스크탑 경험에서는 메트로 시작 화면이 필요 없다. 물론, 재미있는 메트로 게임 앱이 나온다면 기분 전환 삼에 사용할 의향도 있다. 하지만 필자의 데스크탑 경험에서는 메트로 시작 화면과 앱들은 어떠한 사용자 경험의 향상도 없고, 데스크탑과 메트로 바탕화면을 왔다 갔다 하는 것이 오히려 불편하다.
물론, 데스크탑 응용 프로그램을 데스크탑 바탕화면에 바로가기 아이콘을 생성하거나 테스크바(Task Bar)의 핀(Pin)으로 고정할 수 있는 편리한 방법도 제공해 준다. 하지만 이것은 필자가 언급하는 근본적인 해결책이 아니므로 논외로 하겠다.

Posted by 땡초 POWERUMC

댓글을 달아 주세요

  1. 아크몬드 2012.08.10 09:07 Address Modify/Delete Reply

    우와.. 재밌는데요..ㅋㅋ

    저도 그동안 생각하고 있었던 점을 정리해서 올려보렵니다.
    간만에 열혈 윈도우 포스팅 본 것 같아 아련하네요. 이런 글 본지가 언젠지...

    잘 보고 갑니다.

  2. TY LEE 2012.09.08 03:45 Address Modify/Delete Reply

    필자는 개발자 출신인가.. 엠에스가 전략을 바꾼건 시대의 트랜드를 읽어냈다는 것이고 그건 잘한것이라 본다. 트랜드란게 곧 대중의 요구다. 몇몇 엔지니어 비유맞추기보다는 대중을 선택한것이지. 전문지식이 없어 메트로니 콘솔이니.. 정확한 의미는 모르겠다만 필자의 글의 문맥상 대략은 그 뜻이 그려지는데, MS가 이런 인터페이스를 시도한건 논리적인 UI에서 직관적인 UI로 넘어가려는것이다. 미래에 모든 디바이스들의 유저인터페이스는 이런 환경으로 바뀔것이다. 스마트폰을 사용하는데 사용설명서를 읽고 쓰는 사람이 있던가 (어르신들은 좀 논외로하자-필자식 꼬리자르기) 그 스마트폰에 시작버튼이 있던가. 직관적으로 찾아가는 것이다. 그것이 훨씬 재미와 감동을 준다. 오히려 그런 손동작과 눈동자의 움직임으로 좌뇌보다 우뇌를 사용하게 된다. 폴더타령하고 체계적인 분류를 원하는 분들은 좀 이해가 안갈수도 있다. 우리의 직관을 믿으시라. 아직 더 많이 바뀌어야하지만, 시작버튼이 없어진것은 기계가 좀더 인간과 가까워지고 생명력을 얻었다는 신호탄이다. 이방법으로 해당 앱이나 기타목표물을 찾아가는 그 과정에서 불편함을 느낀다면 그것은 디자인이 잘못된것이지, 근본적인 이 접근방법이 잘못된것이 아니다. 그런부분은 애플이 한수위인듯하다.

  3. 현천이 2012.10.05 23:02 Address Modify/Delete Reply

    와 진짜 잘 짚었음. 설치한지 5분만에 시작을 대체할 방법을 찾기 시작하고, 10분만에 바탕화면에 가는 방법을 찾아야 함. 정말 망작 필이 솔솔 남.

    윈도우 7의 성공요소와 비스타의 실패 요인도 정확하게 짚었음.
    개인적으로, 이번 8과 비스타의 최대 망작요소는 항상 마소의 고질적인 문제 - 개발한 프로그램을 사용하도록 강요된 환경 - 에서 출발함. 메트로 기능은 잘 쓰면 매우 좋지만, 사용하라고 강요하는 환경에서는 너무나 부담스러움.

  4. 하두호 2012.11.07 15:07 Address Modify/Delete Reply

    와 진짜 제가 하고 싶은 말들만 쏙쏙 적어 두셨네요 윈8 나쁘진 않은데 본문같은 단점들은 정말 이해하기 힘든 부분입니다

Disk2Vhd 는 물리적인 저장소를 Hyper V 의 가상 하드 디스크로 만들어주는 도구입니다. 헌데, 이 도구를 이용하여 실제 부팅 가능한 가상 하드 디스크로 만들기 위해서 한 가지 주의해야 할 점이 있습니다.    

파티션이 여러 개인 하드 디스크의 문제

만약 물리 디스크가 여러 개의 드라이브로 파티션이 나누어져 있을 경우 아래와 같이 파티션 0 인 C 드라이브만 가상 하드 디스크로 만들 경우 문제가 발생합니다.

   

아마도 파티션 정보가 모두 포함되지 않아 아래와 같은 현상이 발생하는 것 같습니다.

   

파티션이 여러 개인 경우 모두 가상 하드 디스크로 변환

이런 문제가 발생할 경우, 실제 C 드라이브의 부팅 가능한 OS 가 있음에도 부팅이 되지 않습니다. 아래와 같이 모든 파티션을 선택한 후 Disk2Vhd 를 이용하여 가상 하드 디스크로 만들면, 부팅 가능한 가상 하드 디스크로 만들 수 있습니다.

   

Posted by 땡초 POWERUMC

댓글을 달아 주세요

외국의 ZDNET 기사에 Internet Explorer 8 의 성능 향상 방법을 소개 하고 있습니다. 많은 분들이 Microsoft 의 Internet Explorer 의 성능 문제로 불만도 많은 분들이 계실텐데요, 아마도 이 방법을 통해 성능이 웹 서핑 성능이 향상 되길^^    

특히 이미 이 기사에서 언급한 내용이지만, Internet Explorer 의 성능 저하의 주요 원인은 각종 Add-on 과 특히 Adobe Flash Player 가 주요 원인이라고 합니다. 실제로 가장 많이 사용되고 있는 브라우저인 만큼 피드백도 많겠죠. 좋은 피드백이든 나쁜 피드백이든…    

Internet Explorer 8 의 성능을 향상하는 단계는 아래와 같이 수행하라고 합니다.    

Step 1. 현재 설치된 Adobe Flash Player 를 제거하라.

프로그램 추가/제거로 제거하지 말고 아래의 링크를 통해 제거하라고 합니다.
How to uninstall the Adobe Flash Player plug-in and ActiveX control.

웹 사이트 방문이 귀찮으신 분은 이 링크(uninstall_flash_player.exe) 를 클릭해서 설치하세요.

   

Step 2. Internet Explorer 기본 설정으로 변경해라.

도구->인터넷 옵션에서 원래대로 버튼을 클릭합니다.

최소한 이 버튼 클릭만으로 상당한 효과가 있을 듯 하군요. 각종 더미 add-on 까지 모두 싸그리 사용하지 않는 상태로 만들어 버릴테니까요.

   

Step 3. Flash Player 를 다시 설치하라.

Adobe Flash Player 를 설치하는 링크 페이지 입니다.
웹 사이트를 방문하기 귀찮으신 분은 이 링크(Install_flash_player.exe) 를 클릭하여 실행하세요. 설치 중에 오류가 발생한다면, 열려있는 Internet Explorer 를 종료하고 "다시 시도"를 클릭하세요. 

아무래도 구형 Flash Player 보다 최신의 것이 보안 취약이나 성능이 개선이 되었을 듯 합니다.

   

Step 4. Internet Explorer Add-on 을 다시 활성화해라.

주로 사용하거나 필요한 Add-on 만 찾아서 활성화 하시면 됩니다.

 


   

원문 기사의 댓글을 보면 Flash Player 와 Adobe 는 이미 상당한 안티 팬을 거느리고 있네요.^^;

그리고 필자가 위의 과정을 수행한 후 테스트해 본 결과, Internet Explorer 성능이 상당히 빨라진 것 같습니다. 크롬 아이콘 버튼을 클릭하고 메인 홈 페이지(네이버) 가 HTML 랜더링이 완전히 끝나는 시간과, Internet Explorer 에서도 이와 같이 아이콘 클릭하는 시간부터 체크를 했는데... 거의 흡사하네요 ^_^; (제가 좀 관대한가...)
(뭐 크롬은 HTML 텍스트부터 뿌려주고 이미지는 비동기식으로 랜더링하는 방식이라 체감상 차이는 있을 수 있습니다)

Posted by 땡초 POWERUMC

댓글을 달아 주세요

  1. 재우니 2010.01.29 09:25 Address Modify/Delete Reply

    좋은 내용 보고 갑니다. ^^

    • 땡초 POWERUMC 2010.01.29 12:55 신고 Address Modify/Delete

      재운님 안녕하세요 ^^;
      요즘 커뮤니티 활동이 부재하다보니
      카페를 자주 못 찾아뵈었네요 ^_^;;
      앞으로 자주 방문해서 뵙겠습니다.

  2. 박중석 2010.01.29 11:06 Address Modify/Delete Reply

    Add-in이 많이 설치된 일반사용자들에게 알려지면 좋을 것 같네요~

    • 땡초 POWERUMC 2010.01.29 12:56 신고 Address Modify/Delete

      예,, 맞아요..
      이런저런 툴바도 엄청나게 무겁게 돌아가더군요.
      (알툴바, 구글툴바 등...)

      Lazy 한 방식으로 가볍게 만들면 좋았을걸..
      괜히 IE 만 욕먹는것 같아서 맘이 아프네요.

  3. 하나둘넷 2010.02.01 15:52 Address Modify/Delete Reply

    IE8 성능 향상 완료 !!

  4. ddd 2010.02.08 22:04 Address Modify/Delete Reply

    도움많이 됬어요 고맙습니다!

  5. 김동영 2010.02.14 10:59 Address Modify/Delete Reply

    안녕하세요^^
    좋은글 잘보고 갑니다
    블로그에 가져 가겠습니다
    출처는 밝히겠습니다

미치고 환장할 노릇이었네요. 그리 오래되지 않았지만, 서버 환경을 재구성 하면서 알 수 없는 오류로 고생을 했던 기억이 있어서 이렇게 써봅니다.
 
우선 오류는, 윈도우 통합 인증을 통해 로그인한 계정에 권한이 없다는 것입니다. 분명 Admin 그룹인데 말이죠 ^^; 이벤트 로그에도 특별히 단서를 찾을 만한 것이 없었습니다.
 
[그림1] 윈도우 통합 인증 화면
 
서버 환경은 다음과 같이
 
l Windows Server 2003 SP1
l Active Directory
l IIS 6.0
l Windows Sharepoint Services 3.0 with SP1
l Team Foundatino Server 2008
l Microsoft SQL Server 2005 with SP1
 
이정도로 구성해 놨습니다.
백발백중 윈도우 통합 인증이 안된다고 하면, “계정 등록을 안했겠지!” 라고 생각하지만, 분명히 계정을 등록이 되어 있었답니다.
 
그러던 중에 찾은 KB 문서!!
 

통합 인증을 사용하며 IIS 5.1 또는 IIS 6에 호스트된 웹 사이트를 탐색할 때 오류 401.1이 나타난다

 
뭐 내용은 대충 이러했습니다.
 
컴퓨터에 대한 반사 공격을 방지 하기 위해 루프백 확인 보안 기능이 포함되어 있다, 즉 호스트 헤더가 로컬 컴퓨터 이름과 일치 하지 않으면 인증이 실패한다.”
 
해결책이야 위의 링크를 보시면 되겠지만, 레지스트리 하나 고쳐주고 리붓 해주면 된답니다. 하지만 분명, 의도된 동작이라고 설명하였음에도 제대로된 로그하나 남기지 않는 다는 것이 맘이 안드네요. 위와 같이 인증 실패가 된다면 루프백 기능이 포함되어있어서 그러는 것이니 그렇게 알고 있으라고 설명이 되어 있는데, 이 문서를 보기 전까지 어떻게 알라는 거지?? GG !!

Posted by 땡초 POWERUMC

댓글을 달아 주세요

오픈소스 프로젝트로 유명한 CodePlex 에 재미난 애플케이션이 올라왔네요. VB.NET 으로 제작 되었구요.물론 소스코드도 다운로드 받아보실 수 있습니다.
 
Vista/XP Virtual Desktop Manager

다운로드 페이지
 

설치를 하면 아래와 같이 화면 우측 하단에 자그마한 툴바가 생깁니다.
 
 
숫자에 클릭하시면 다른 바탕화면으로 옮길 수 있지요.
 
바탕화면을 옮길 때마다 페이드인/아웃 애니메이션도 됩니다.
 
 
 
단축키도 상당히 편리하게 나뉘어져 있습니다.
 
Windows Key + W 단축키
 
Windows Key + Z 단축키
 
* Windows Key + Z - Show the fullscreen "switcher"
* Windows Key + W - Pop up the window menu for the active window
* Windows Key + Numpad 1...9 - Switch to the corresponding desktop, if it exists
* Windows Key + Arrow Keys - Move to the corresponding desktop
* Windows Key + Control + Numpad 1...9 - Send the foreground window to the corresponding desktop
 
일단 이틀 정도 사용해 본 소감은 우선 호환성이 좋습니다.
Windows 2003 / Vista / 2008 에서 무리 없이 동작하더군요. 하지만 역시 Vista 와 2008 에서의 Aero 상태에서 사용 하시는게 체감 속도는 더 빠릅니다.
 
하지만, 한가지 버그도 찾게 되었습니다. Windows 2003 에서 사용 중 어떤 경우에 화면의 잔재가 사라지지 않는다는 것이구요. 이 버그 상태가 나타나면 PC 가 점점 더뎌지게 되더군요.
 
치명적인 버그를 경험하긴 했지만, 제가 써본 Virutal Desktop 중에 가장 맘에 듭니다. 그래서 일단은 계속 더 써볼 생각이랍니다.

'O/S > Utility' 카테고리의 다른 글

최고의 가상 데스크탑 - Vista/XP Virtual Desktop Manager  (0) 2008.04.28
Posted by 땡초 POWERUMC

댓글을 달아 주세요

이번 주말에는 많은 기대를 하게 했던 Windows Server 2008 을 설치해 보았습니다. 설치 과정은 Windows Vista 만큼이나 간결하더군요. Vista 를 한번정도라도 설치를 해 보셨다면, 설치가 마칠 때 까지 어떠한 난관에 부딪힐 일은 없습니다. ^^ 하지만, 기존의 Windows Server 2003과 XP 사용자들에게 몇가지 혼란스러운 부분에 있더군요.
 
 
서버 관리자를 통한 체계적인 서버 관리
 
1.      IIS / 응용프로그램 서버 설치
이전 버전은 프로그램 추가/제거에서 설치할 수 있었지만, Windows Server 2008 에서는 서버 관리자를 통해 설치할 수 있습니다. 역할이라는 부르는 이 영역은 IIS/응용프로그램 서버/AD(Active Directory)/DNS 등의 서버 역할을 구성 할 수 있습니다.

아래와 같이 서버 관리자의 역할 -> 역할 추가 -> 역할 추가 마법사를 통해 서버의 역할을 추가할 수 있습니다
.





2.      Internet Explorer 보안 강화 구성 제거
저 같은 경우는 프로젝트에서 XP 보다 서버군 OS 를 설치하기 때문에, 기본으로 설정된 IE 보안 강화 구성을 해지해야 합니다. 이놈 제거하려고 1시간을 삽질했습니다 ㅠ.ㅠ



3.      방화벽 구성
Windows Server 2008 은 “안바운드” 와 “아웃바운드” 로 나뉘어 집니다. 말 그대로, 받는것과 보내는것에 대해 방화벽을 구성할 수 있습니다.



4.      비스타 테마 사용하기
서비스의 Themes 가 활성화 되면, 비로소 Windows Vista 와 같은 테마를 사용할 수 있습니다. 더불어, Aero 기능도 제공이 되기 때문에 Vista 의 화려하고 부드러운 애니메이션이 부럽지 않답니다.



5.      Microsoft Office 2007 제품 설치
자세한 이유는 잘 모르겠지만, Office 2007 을 설치하려고 하면, 데이터실행 방지(DEP) 때문에 설치를 할 수 있게 됩니다. Office 를 설치하기 위해서 아래의 그림과 같이 Office 설치파일을 등록해 주세요.



Vista 용 드라이버와 응용 프로그램의 호환
 
설치하면서 왠만한 드라이버는 비스타용 가져다 쓰면 되더군요. 그중, OS 버전을 체크하는 드라이브가 있어서 강제적으로 설치가 불가능한 것도 있지만, 우회적으로 잘 알아서 깔면 되긴 됩니다. 아직까지 몇몇 필요한 소프트웨어를 설치하면서 아무런 문제없이 잘 사용하고 있답니다.
 
l 네이트온 – Vista 용
l Visual Studio 2005 / 2008
l Microsoft SQL Server 2005 With SP2
l 알집, 알FTP, 알툴, 알약 등
l 오피스 2007 – DEP 해지 후 설치가능
l DAEMON Tools Lite 4.12.2
l SnagIt, Open Capture …
l 등등
 
다른 분들은 설치하고 굉장히 가볍다고 하는데, 사실 각종 툴과 MS-SQL 서버 제품군 등을 설치하면 체감속도는 타 OS 에 그리 빠르지만도 않습니다. 오히려 Windows Server 2003 보다 빠르다고 하면 좀 이상한것 같구요 ㅋ;
어쨌든 전 Windows Server 2008 을 당분간 꾸준히 써보려고 합니다. 아직 서버 관리자쪽만 훓어 보았지만, 너무 체계적으로 관리가 가능하게끔 되어있는 인터페이스와 Windows Vista 와 비슷한 환경이 마음에 듭니다.
 
시작하는 한주도 파이팅입니다~~
Posted by 땡초 POWERUMC

댓글을 달아 주세요