윈도우즈(Windows)에서 간단한 스위프트(Swift) 코드를 실행해 보고자 합니다.


우선 마이크로소프트에서 제공하는 Windows Subsystem for Linux (WSL) 기술을 이용해서 Linux용 스위프트를 실행하는 방법이 있습니다. ('윈도우즈10에서 스위프트를' 참고) WSL을 써보면 VirtualBox나 VMWare 같은 가상머신에서 Linux를 돌리는 것과 매우 비슷한 느낌을 받지만 결코 가상머신이 아닙니다.


윈도우즈에서 스위프트를 경험할 수 있는 쉬운 방법으로는 IBM이 제공하는 '웹 기반 스위프트 샌드박스'가 있습니다. 이것 역시 Linux용 스위프트를 실행하는 방식이지만 웹 브라우저를 사용하여 서버쪽의 컴파일러를 사용하기 때문에 별다른 설치과정 없이 쉽게 스위프트 언어를 사용해 볼 수 있는 장점이 있습니다.


하지만 앞에 설명한 어떤 방법도 내 스위프트 소스를 윈도우즈에서 실행되는 바이너리로 컴파일 해주지 못합니다. WSL에서 컴파일된 실행파일은 Linux용 바이너리 포맷이라서 리눅스 환경 또는 WSL Bash 쉘에서만 실행 할 수 있고 IBM의 스위프트 샌드박스는 콘솔 출력 결과만 제공할 뿐 바이너리 파일을 제공하지 않습니다.


지금부터 살펴볼 스위프트 컴파일러는 앞의 것들과 달리 윈도우즈용 바이너리를 생성하는 컴파일러입니다.



스위프트 컴파일러를 설치하기 위해 'Swift for Windows' 웹사이트에 들어가 봅니다.


[Swift for Windows 홈페이지 화면]


DOWNLOAD 버튼을 클릭하면 설치프로그램을 내려받을 수 있습니다. Windows 10 64bit 환경에 설치하고 나면 바탕화면에 스위프트 로고 모양을 한 아이콘이 생깁니다.



더블 클릭하니 이렇게 생긴 화면이 뜹니다.


[스위프트 컴파일/실행 환경]


이제 간단한 스위프트 소스들을 실행해 봅니다.


Select File 버튼을 클릭하여 C:\Swift\Samples\Hello 디렉토리에 있는 Hello.swift 파일을 선택한 후 Compile 버튼을 누르니 잠시 후 Logs 영역에 아래와 같이 출력되었습니다.


"C:\Swift\usr\bin\swiftc.exe" -swift-version 3 "C:\Swift\Samples\Hello\Hello.swift" -o "C:\Swift\Samples\Hello\Hello.exe"


Successfully compiled


RUN 버튼을 누르면 아래와 같이 실행 결과가 보입니다.


[Hello.swift 실행 화면]



Hello.swift 는 1줄 짜리 프로그램입니다.


print("Hello")


아래는 컴파일러가 생성한 Hello.exe의 속성 화면입니다.




현재 윈도우즈용 스위프트는 런타임 라이브러리가 많이 부족합니다. 맥 만큼 풍부하지는 않더라도 리눅스용 스위프트에도 있는 Foundation 모듈 정도는 얼른 포팅되면 좋겠습니다.


아쉽게나마 스위프트 언어를 공부하기 위한 예제들은 실행해 볼 수 있어 어느 정도의 쓸모는 있으리라 생각됩니다.


이상 간단한 Swift for Windows 살펴보기 였습니다. 다음에는 쉬운 코드들을 컴파일해보며 포스팅하겠습니다.



WRITTEN BY
tinysun

받은 트랙백이 없고 , 댓글이 없습니다.
secret
아두이노에 붙여보려고 캐릭터 LCD (CMBC016002E00)를 구입한지 한참 되었습니다.

1년을 훌쩍 넘겼고 얼마에 샀는지도 기억이 안나는.. 그 때는 데이타시트를 봐도 무슨 말인지 모르겠고 (지금도 마찬가지지만) 연결해야할 핀도 많고 이 물건의 호환성도 의심되고 해서 흥미를 잃고 버려두었지요.

근래 아두이노 홈페이지에서 LCD튜토리얼과 수아파파님의 CLCD 1/3 Hello LCD, 그리고 펩시맨님의 arduino에서 LCD 구동하기 2 를 보고나니 여러가지 우려가 사라지고 다시 시도해보고픈 마음이 생겼습니다.

드디어 애물단지처럼 굴러다니던 캐릭터 LCD를 아두이노에 붙여보았습니다.



데이타핀은 4핀만 연결해도 되었고 캐릭터 LCD의 호환성에는 전혀 문제가 없었습니다. 최신 버전의 sketch를 설치 했더니 캐릭터 LCD 라이브러리가 내장되어서 별도로 라이브러리를 설치하는 일도 없었습니다. 아두이노 LCD튜토리얼에 있는 샘플 소스들이 아무 변경없이도 잘 실행되었습니다.

앞서 해보신 분의 자료 덕분에 캐릭터 LCD를 쉽게 붙일 수 있었습니다.

여기에 펩시맨님이 하셨던 이더넷모듈을 덧붙이고 싶은데 가능할런지 모르겠습니다.



WRITTEN BY
tinysun

받은 트랙백이 없고 , 댓글  2개가 달렸습니다.
  1. 안녕하세요. 펩시맨입니다.

    작은태양님께서 제 블로그를 언급해 주시다니 영광입니다. ^^
    제가 처음 아두이노를 시작할때 작은태양님에 "Arduino 시작하기" 포스팅을 무지 여러번 읽었고 도움도 많이 받았습니다.

    저도 하고 싶은건 많은데 손을 못데고 있네요.
    이더넷 모듈도 어렵지 않으니 꼭 성공 하시기 바랍니다.
  2. 이것은 위대한 게시물이며 많은 좋아합니다 사람이 공유에 대한 감사가있을 것
secret

구글은 기념일 마다 로고를 재치있게 바꿔서 보여줍니다.

그동안 기념일 로고를 많이 보아왔지만 오늘 만큼 황당하게 바뀐 모습은 처음입니다.


한글날

WRITTEN BY
tinysun

받은 트랙백이 없고 , 댓글이 없습니다.
secret

WebKit Inside

며칠 전 삼성전자는 JET 모바일폰을 발표했는데 Dolfin 브라우저를 사용한다고 소개되었습니다.  한 번에 5개 윈도까지 오픈할 수 있다고 합니다.  다른 현란한 기능도 많이 있고 멋진 휴대폰 같습니다.

Jet Image

Samsung Mobile Phone Jet


Samsung Mobile Phone Jet
( 삼성전자 Jet 소개 웹사이트에서 발췌함 )


지난 2월 PDA 와 스마트폰으로 유명한 Palm 에서는 Palm webOS 라는 리눅스 기반의 스마트폰 플랫폼을 발표했습니다.  이름에서 알 수 있듯이 웹 기술을 접목한 OS 인데 가볍고 빠르다는 평가를 받으며 업계에서 주목 받고 있습니다.  내장된 브라우저는  RTSP, H.263, H.264 비디오 포맷을 지원한다고 합니다.

File:Palm webOS Launcher.png

Parm 의 webOS


Google 은 작년에 Windows 용 웹브라우저인 크롬을 발표하였습니다.  크롬은 간결한 UI와 빠른 속도로 사용자들의 호응을 얻었습니다.  http://marketshare.hitslink.com/report.aspx?qprid=0  를 보면 현재 크롬은 MS의 인터넷익스플로러, Mozilla의 파이어폭스, Apple의 사파리 다음으로 4번째로 많이 사용되는 브라우저가 되었습니다.  최근에는 리눅스용 크로미엄이 쓸만해져서 저는 리눅스에서도 즐겨 사용하고 있습니다.


Google Chrome Screenshot    Google Chrome Icon

구글의 크롬 브라우저와 로고


Google 은 2007년말에 안드로이드 라는 모바일 플랫폼을 발표하면서 브라우징 기능을 기본 제공하고 있습니다.


안드로이드 에뮬레이터 화면


브라우저 점유율 3위인 Apple 의 사파리 브라우저와 4위인 Google 의 크롬은 동일한 layout 엔진을 사용하고 있습니다.  Apple 은 사파리 브라우저를 Mac OS X 뿐 아니라 Windows 용으로도 출시하더니 아이폰과 아이팟터치 에도 기본 제공하고 있습니다.

    

애플의 사파리 브라우저와 로고


이렇듯 데스크 탑과 모바일 기기에 돌아가는 브라우저를 여러 거대 업체에서 만들었습니다.  독립 브라우저로 발표하기도 하고 플랫폼에 끼워 조용히 내놓기도 합니다.  
그런데 방금 소개한 브라우저들은 공통점이 있습니다.  layout 엔진, 렌더링 엔진 또는 웹 콘텐츠 엔진으로 불리며 오픈소스프로젝트로 개발되고 있는  WebKit 입니다. ( http://www.webkit.org  )

WebKit 은 브라우저 기능 개발자들에게 인기가 많습니다.   Adobe 의 RIA 런타임환경인 AIR 에서도 WebKit 엔진을 사용합니다.  리눅스에서 많이 쓰이는 GNOME  브라우저인 Epiphany는 Gecko 엔진에서 WebKit 엔진으로 교체할 것이라고 합니다.  KDE 의 Konqueror 브라우저의 최근 버전은 KHTML 엔진을 기본 제공하면서도 WebKit 엔진을 옵션 형식으로 추가 지원하고 있습니다.  

이제는 WebKit 엔진 사용이 더 이상 뉴스거리가 되지 않는 모양입니다.  삼성의 JET 모바일 폰은 WebKit 3.2 엔진을 적용했는데 여러 다른 현란한 기능들에 비해 웹 컨텐츠 엔진이 특별히 주목받지는 않고 있습니다.  저는 오늘 WebKit 을 조금 자세히 알아보려 합니다.


Compatibility

브라우저 수가 많아졌는데도 웹 페이지의 호환성 문제는 그렇게 커지지 않았습니다.  오히려 10년전의 IE 대 넷스케이프의 투톱 시대보다도 layout 호환성 문제는 좋아 진 듯 합니다.

첫째, IE 를 제외한 대부분의 브라우저 들은 오래전 부터 표준을 준수하는 것을 특징으로 내세우고 있었습니다.  이런 추세에 de facto 표준인 IE 도 최신 버전 부터는 웹 표준 규격을 상당히 준수 하고 있습니다.  웹 표준 측정도구인 ACID 테스트 점수는 브라우저 엔진 개발시 성능지표로 이용되고 있는 듯 합니다.  브라우저 엔진들의 acid 점수 경쟁을 볼 수 있습니다. ( http://en.wikipedia.org/wiki/Acid3 )

그리고, 브라우저는 많아도 호환성을 좌우하는 주목할 만한 layout 엔진은 4개 정도 입니다.   IE엔진(Trident), 파이어폭스엔진(Gecko), 사파리엔진(WebKit), 오페라엔진(Presto) 입니다.  웹 표준 준수율로 보면 IE엔진을 제외한 나머지 엔진들의 호환성 차이는 거의 없는 편입니다.

이제는 레이아웃 호환성 문제 보다는 어떤 엔진 또는 기능을 채용해서 성능을 얼마나 개선 했는지를 내세우는 것이 추세 같습니다.  물론 우리나라에서는 Active X 호환성 문제가 큰 이슈겠지요.

호환성을 뜻하는 그림은 아니지만...


WebKit Origins

- KHTML

애플은 리눅스 KDE 의 KHTML 브라우저 엔진을 사파리 개발을 위해 Mac 에 포팅했습니다.  따라서 WebKit 은 KHTML 엔진의 분신(fork)이라고 할 수 있습니다.

KHTML 은 KDE 프로젝트로 개발된 HTML layout 엔진으로 역시 오픈소스 입니다.  앞에 잠시 언급했던 Konqueror 브라우저의 엔진이기도 합니다.  khtmlw 또는 KDE HTML Widget 이라고 불리는 엔진에 리팩토링과 유니코드 지원등을 하면서 1998년 11월에 나왔는데 처음 버전은 W3C DOM 이나 scripting 등도 지원되지 않았습니다.

한편, 1998년 3월 넷스케이프는 브라우저의 소스를 오픈 하였습니다.  1999년 KHTML 프로젝트는 선택의 기로에 섰습니다.  이대로 개발을 계속할 지 아니면 오픈소스인 모질라 코드를 사용할 지 결정하고 최우선 순위로 scripting 지원을 추가해야 했습니다.  

David Garrick in Hamlet, I, 4
햄릿

- To Be or Not To Be

당시의 모질라 코드는 한 때 TOP 이었던 넷스케이프의 소스였습니다.  그리고 새로운 오픈 소스 브라우저를 처음 부터 만드는 것은 결코 만만한 프로젝트가 아닙니다. 

그 당시에 저는 모질라 코드에 거는 기대가 컸었습니다.  따라서 제가 KHTML 의 향방을 결정해야 했다면 기존의 코드를 버리고 모질라 코드를 활용하고 모질라 진영과 힘을 보태서 함께 더 좋은 것을 만들어 공유하자고 했을 겁니다.  만약에 그렇게 되었다면 지금의 WebKit 은 전혀 다른 모습이 되어있겠죠.

이 때 라스 크롤( Lars Knoll ) 이라는 개발자의 공헌에 의해 프로젝트의 향방이 결정됩니다.  라스 크롤은 내부적으로 표준 W3C DOM 을 사용하도록 변경하느라 완전히 다시 작성된 KHTML 라이브러리를 1999년 8월에 공개하였습니다.  곧이어 10월에 해리포텐( Harri Porten )의 KJS 통합으로 scripting 도 지원하게 되었습니다.

이로써 WebKit 이 될 새로운 KHTML 이 나타났습니다.

출처: 종의 기원 (wikipeida)



WebKit Borns

애플의 매킨토시에서는 넷스케이프나 MS 익스플로러가 기본으로 제공되었습니다.  매킨토시 운영체제를 만들어 제공하면서도 브라우저는 만들지 안았던 것이죠. Mac OS X 를 만들고서도 웹 브라우저는 IE 5.0 맥 버전을 번들로 넣었습니다.  2003년 1월 드디어 사파리라는 웹브라우저를 KHTML 를 기반으로 만들었다고 발표합니다.

애플은 WebKit 의 소스를 오픈했습니다.  WebCore 와 JavaScriptCore 로 분류되는데 이것은 KHTML 과 KJS 를 Mac OS 에 맞게 개발한 후 맥 스타일의 이름을 붙인 것입니다.  애플에서 1년간 개발하여 개선된 KHTML 소스는 여러 이유로 KHTML 오리지널에 merge 되지 못하고 WebKit 으로 불리는 별도의 소스 버전을 가지게 됩니다.

그러니까 WebKit 은 KHTML 의 클론으로 시작했습니다.


WebKit Grows

노키아는 WebKit 을 사용하여 S60 휴대폰을 위한 웹브라우저를 만들었습니다.  iPhone OS 에 채택되어 iPhone, iPod Touch 의 브라우저에 사용되고 Windows 용 사파리에도 사용됩니다.  구글에 의해 안드로이드 플랫폼에서도 사용되며 삼성의 휴대폰에도 들어갔습니다.

Mac 에 포팅되었던 WebKit 은 이제 다양한 플랫폼에서 응용되고 있습니다.  그러면서도 JavaScriptCore 는 더 성능 좋은 것으로 대체되고 있습니다.  애플의 SquirrelFish 와 구글의 V8 이 그렇습니다.  웹 표준 호환성, 성능, 멀티플랫폼 이 대표적 특징이 되어가고 있습니다.  KDE 의 KHTML 로는 이루지 못한 것입니다.

     사진출처: mighty mouse (wikipedia)


WebKit Returns Home

WebKit 의 모태는 KHTML 과 같이 리눅스의 KDE 의 Konqueror 브라우저 입니다.  WebKit 은 이제 GTK+ 에 포팅되어 리눅스에서 돌릴 수 있으며  chromium 리눅스 버전을 통해서도 WebKit 을 돌려 볼 수 있습니다.  WebKit 은 모태인 KDE 의 Konqueror 에서도 돌아갑니다.  다른 브라우저에 들어가면 스포트라이트를 받는 WebKit 이지만 Konqueror 브라우저에서는 조상이자 사촌격인 현재의 KHTML 을 밀어내지 못하고 옵션기능으로 옆에 존재할 뿐입니다.

    

KDE 의 Konqueror 브라우저와 로고



The Motion Picture

스타트렉의 첫 번째 영화판인 THE MOTION PICTURE 가 생각납니다.  업그레이드 되어 지구의 능력을 뛰어 넘는, 지구를 위협하는 미지의 물체인 VGER 와 KDE 의 WebKit 을 비교하곤 합니다.  스포일러가 될까봐 이만 생략합니다.


The Motion Picture
( 영화에서 모션픽쳐는 미지의 움직이는 물체를 뜻합니다. )


WebKit 은 10년전 한 사람의 코딩 기여로 시작하여 커뮤니티와 기업(애플)의 공헌을거쳐 태어났습니다.  여러 플랫폼에 포팅되어가면서 발전하여 현재는 다양한 운용체제와 디바이스에서 동작되고 있으며 IE 를 위협하는 브라우저군의 한 축을 이루고 있습니다.  다시금 리눅스에서 돌아가도록 포팅되는 WebKit 을 보면 태어나서 성장하고 이리 저리 돌아다니는 생명체 같다는 느낌을 줍니다.


감사합니다.


( 게제된 사진의 출처는  http://en.wikipedia.org/  입니다. )


WRITTEN BY
tinysun

받은 트랙백이 없고 , 댓글이 없습니다.
secret
이번에 변환한 위키백과 사전에는 기억해야할 의미가 있습니다.

그것은 드디어 10만 항목을 넘긴 점 입니다.  10만 항목을 넘겼다는 것은 표시되는 숫자가 5자리에서 6자리로 바뀌는 것외에 또 다른 중요한 의미가 있습니다.

영문 위키백과 ( http://en.wikipedia.org )와 한국어 위키백과 ( http://ko.wikipedia.org ) 뿐 아니라 다른 언어로 된 위키백과도 모두 초기화면이 있습니다.  그리고 그 초기화면에는 각 국의 위키백과를 항목수에 따라 분류하고 있습니다.  분류는 보통 25만이상, 10만 이상 등으로 나누는데 드디어 한국어 위키백과가 10만 이상 그룹에 들어간 것입니다.



그 동안 5만그룹 또는 4만그룹에 들어 있었는데 그 그룹의 다른 국가명을 살펴보면 우리나라가 그와 같은 등급이라는 것이 믿기지 않고 억울할 정도였습니다.

우리나라는 위키백과 말고도 궁금증을 해소할 수 있는 포탈의 백과사전이나 커뮤니티, 지X인 같은 대안 매체들이 있어서 다른 나라에 비해 상대적으로 위키백과의 발전이 더디지 않았나 생각해 봅니다.  따라서 위키백과 항목수가 국가 정보화 능력을 반영한다거나 인터넷 문화 성숙도와 관계가 있다고 생각하지 않습니다.  하지만 기왕이면 다른 나라의 위키백과에 크게 뒤쳐지지 않았으면 합니다.  굳이 랭킹으로 따진다면 현재 26위 정도 입니다.

이런 의미있는 버전을 빌드하면서 지난 달에 비해 좀 더 특별하게 개선하거나 보완하지 못한 점이 아쉽습니다.  그리고 한국어 위키백과가 어서 빨리 25만 그룹에도 들어가게 되길 바랍니다.



WRITTEN BY
tinysun

받은 트랙백이 없고 , 댓글  18개가 달렸습니다.
  1. 영어를 검색하면 안나오는데 그걸 해결할 수 있는 방법은 없을까요? ㅜㅜ
  2. 덕분에 잘 사용하고 있습니다. 항상 감사하는 마음을 가지고 있습니다. 수고하십쇼.
  3. ...../ Mdict 프로그램상의 문제 아닐까요...ㅋㅋㅋ

    쥔장님 님때문에 제가 살아요 이거 너무 좋고 편해요 항상

    감사하며 살아가고 있습니다 감사합니다
  4. 작은태양님 덕분에 위키백과 잘 사용하고 있습니다.

    8월판을 사용해보았는데요. 윗 댓글에서도 지적된 영어 검색 부분 등재된 단어가 안 나오는 현상은 해결이 된 것으로 보입니다. 그동안 약간 불편했는데, 수정해주셔서 감사합니다.

    그리고 이건 욕심일지도 모르지만 참고해주시면 감사하겠습니다.

    검색 중에 사진이 있는 부분은 사진이 나오지 않는데,

    가능하시다면 사진이 작은 사이즈라도 나오게 된다면 눈이

    더 즐거울 것 같습니다. 컴맹인 제가 생각해봐도 용량문제

    라던가 프로그래밍상의 어려움 등이 있을 것 같습니다만

    작은태양님의 능력이 워낙 발군이시라 감히 말씀드려봅니다.
  5. 님이 올려주신거 잘 쓰고 있습니다.
    위키백과 데이터가 수정할게 있더라구요..
    제가 가지고 있는 데이터를 제가 수정해서 쓰고 싶은데
    파일을 열어서 수정해야 합니다.
    그런데 무슨 프로그램으로 열 수 있나요?
    드림위버는 열리지않고 울트라에디터는 글이 외계어로 깨져나옵니다. 프로그램 좀 알려주세요.. 수정후 저장만 하면 되는 프로그램없나요? 아니면 비슷한거라두요.. 새롭게 만들 프로그램말고 기존에거 불려드려와 수정하는 프로그램입니다.
    • 방문해 주셔서 감사합니다. 웹브라우저로 http://ko.wikipedia.org/wiki/(수정하고자하는표제어) 를 방문하신다음 상단의 '편집' 탭을 클릭하면 누구든지 위키백과 데이터를 수정하실 수 있습니다. 다만, 수정된 내용이 객관적이지 못하거나 백과사전에 어울리지 않는 경우 다른 편집자들에 의해 원상복구가 될 수 있으므로 주의해야 하겠습니다. 수정된 내용은 다음 빌드에 반영될 것입니다.
  6. 위키디피아 다운 받고 싶은데 어디서 받을 수 없을까요??
    • 저의 블로그를 방문해 주셔서 감사합니다. MDict용으로 변환한 위키백과는 Todaysppc.com의 자료실에서 다운 받으실 수 있습니다. 데이터 소스파일은 download.wikipedia.org에서 받으실 수 있습니다. 도움이 되셨기를 바랍니다.
  7. 정말 감사합니다^^
  8. 혹시 torrent를 통해 공유하실 계획은 없으신지요?
    todaysppc에서 여러 file을 나눠 받는게 좀 귀찮아서요... ^^
    • 제가 올리면 야옹님께서 torrent로 공유해 주시는 것은 어떨런지요? 둘 다 하기엔 부담되고 torrent로만 하면 기존에 받아 쓰시던 분들이 불편하실 것 같아서요.
  9. 위키백과 원본파일을 txt로 변환한다음 mdx파일로 만드려는데
    자꾸 에러가 뜨면서 변환이 안돼네여 그래서 지금 포기상태인데
    혹시 방법좀 알려주시면 감사하겠습니다.
  10. 투데이스피피시에 파일 잘 받아쓰고 있습니다.
    그런데 10월분 파일 10개중 마지막을 안올리셨더군요.
    부탁 드립니다.
  11. 와...여기가 집이셨군요.
    제작자도 모르고 늘 받아만 썼었는데,
    앞으로도 잘 쓰겠습니다.
    아..토런트 공유해주시는 야옹님께도 감사....
  12. 위키백과 더이상 안올려주시나요? 2011 7월꺼 받고싶네요 ㅎㅎ
  13. 7월달판 좀 올려주시길.. ㅠㅠㅜㅜㅜ
  14. 7월달판 좀 올려주시길.. ㅠㅠㅜㅜㅜ
  15. 7월달판 좀 올려주시길.. ㅠㅠㅜㅜㅜ
secret