본문 바로가기

분류 전체보기

[옛 강좌] 05. Perllang - 펄 기초 문법 3 이 게시물은 지금은 폐쇄되어 접속되지 않는 Kim Young Soo(http://hours.interpia98.net/~unisoo/)님의 웹 사이트에 2001년경 게시된 내용을 바탕으로 오늘날 웹 환경에 맞게 내용을 덧붙였습니다. Perllang - 펄 기초 문법 3 Description 정규 표현, 매칭, 대치 정규 표현(Regular expression) 정규 표현(regular expression)은 일반화된 문자열을 설명하기 위한 규칙의 집합입니다. 어떤 문자열이 정규 표현의 규칙을 따르고 있다면, 그 정규 표현은 그 문자열을 매치(match)한다고 합니다. 예를 들면, 정규표현 'b.'는 문자열 'observe, body, abc'와는 매치를 이루고, 'b, Bell, Bob' 와는 매치하지 .. 더보기
Elisabeth Andreassen - Danse mot Vår (봄을 향해 춤을 추다, '10월의 어느 멋진 날에' 원곡) Elisabeth Andreassen - Danse mot Vår 엘리사베스 안드레아센 - 봄을 향해 춤을 추다(김동규 - '10월의 어느 멋진 날에' 원곡) 작사/작곡: Rolf Løvland (롤프 뢰블란드), 노래: Elisabeth Andreassen(엘리사베스 안드레아센) Gjennom regnbuens glans (옌눔 라인부엔스 글란스) 무지개 빛을 따라 ser, jeg himmel og hav (세르 야그 힘멜 우그 하브) 하늘과 바다를 바라본다 smelte sammen i sol oppgang. (스멜테 삼멘 이 술 우프강) 어둠 속에 모두 어우러진다 Og mens tankene flyr (우그 멘스 탄케네 플리르) 그리고 마음이 날아서 Våkner sanser til liv (보크네르 .. 더보기
인텐트를 통한 액티비티간 결과값 전달하기 MainActivity에서 SubActivity로 대화상자를 띄우고 그 결과를 MainActivity가 받고자 하는 경우... 1. MainActivity에서 SubActivity를 호출하는 부분 public class MainActivity extends Activity implements View.OnClickListener { // SubActivity를 모달 다이얼로그로 띄우는 동작을 ACTIVITY_CODE_DEFAULT (0)으로 정의합니다. public static final int ACTIVITY_CODE_DEFAULT = 0; // ... 중략 ... @Override public void onClick(View v) { // MainActivity 내 어떤 버튼을 클릭하여 SubActi.. 더보기
UITableView에 CustomTableViewCell 적용하기 UITableView에 CustomTableViewCell 적용하기 - by Tapito 아래와 같이 TableViewCell이 표시되는 모양을 직접 만들어 UITableView에 띄워보도록 하겠습니다. 1. 데이터 구조체 작성하기 먼저 사용자 구조체(여기서는 TapitoBusinessCard)를 작성합니다. 인명부 컨셉으로 간단하게 이름과 직장, 현재 재직 여부만을 저장하는 구조체입니다. Xcode를 열고 프로젝트를 하나 생성한 후 아래와 같이 구조체의 헤더 파일과 구현 파일을 작성합니다. TapitoBusinessCard.h #import @interface TapitoBusinessCard : NSObject // 이름, 직장, 재직 여부를 지정하여 TapitoBusinessCard 클래스 인스턴스.. 더보기
코딩으로 Nib 첫 화면 불러오기 UI 파일을 MyView.xib, 헤더 파일을 MyViewController.h, 컨트롤러 파일을 MyViewController.m이라 할 때, AppDelegate.m에서는 아래와 같이 작성 #import "AppDelegate.h" #import "MyViewController.h" @implementation AppDelegate - (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { MyViewController * myViewController = nil; // 화면의 물리적인 크기만큼 윈도우를 생성하기 self.window = [[UIWindow al.. 더보기
[옛 강좌] 04. Perllang - 펄 기초 문법 2 \n"; print "\t\n"; $value > 5 || print "\t\tvalue < 5 #1"; # $value가 5보다 크지 않다면 뒤에 나오는 명령 실행 $value < 5 && print "\t\tvalue < 5 #2"; # $value가 5보다 작다면 뒤에 나오는 명령 실행 print "\t\n"; print "\n"; 다음은 변수 $value에 정수 0을 기억시킨 후 $value가 5보다 작으면 문구를 출력하는 소스입니다. $value가 5보다 작으므로 웹 브라우저에서는 문구를 출력할 것입니다. #!/usr/bin/perl $value = 0; print "Content-type: text/html\n\n"; print "\n"; print "\t\n"; print "\t\n"; $v.. 더보기
[옛 강좌] 03. Perllang - 펄 기초 문법 1 이 게시물은 지금은 폐쇄되어 접속되지 않는 Kim Young Soo(http://hours.interpia98.net/~unisoo/)님의 웹 사이트에 2001년경 게시된 내용을 바탕으로 오늘날 웹 환경에 맞게 내용을 재구성하였습니다. Perllang - 펄 기초 문법 1 Description 데이터 타입, 특수 변수... Perl... Perl - 1986년 Unix 프로그래머인 Larry Wall이라는 사람이 자신이 맡은 업무를 보다 쉽게 처리할려고 하는 과정에서, 자신의 일을 해결할수 있는 가장 간결하고 적합한 유틸리티를 만들게 되었구요, 그래서 그는 새로운 프로그래밍 언어를 발명하게 되었고, 그후 펄이란 이름으로 빠르게 번져나갔다고 합니다. 펄의 'p'가 대문자인지 소문자인지에 대해서 Larry .. 더보기
[옛 강좌] 02. Perlstart - 윈도용 펄 사용법 이 게시물은 지금은 폐쇄되어 접속되지 않는 Kim Young Soo(http://hours.interpia98.net/~unisoo/)님의 웹 사이트에 2001년경 게시된 내용을 바탕으로 오늘날 웹 환경에 맞게 내용을 재구성하였습니다. Perlstart - 윈도용 펄 사용법 Description 윈도우용 펄은 http://www.activestate.com/에 가시면 얻으실 수 있습니다. 윈도용 펄을 사용하는 것은 어렵지 않습니다. Perl 설치 다운 받으신 파일을 그냥 더블클릭하세요. 그러면 머라머라 하고, 설정을 물어보죠. 저는 c:/usr/local에다가 설치 하였습니다. 그래야 진짜 서버(천랸:/usr/local/bin/perl)의 경로와 맞습니다. 서버에 올릴때 경로를 바꿔줘야 하는 수고를 덜수.. 더보기
[옛 강좌] 01. Perlstart - 펄의 시작 \n"; print "\t\n"; print "\t\tPerl Test\n"; print "\t\n"; print "\n"; 브라우저를 열고 http://localhost/cgi-bin/test.pl을 접속합니다. 아래와 같이 뜨면 제대로 설정된 것입니다. 앞으로의 강좌를 계속 진행 가능합니다. 403 오류가 뜨는 것은 test.pl에 실행권한이 없기 때문입니다. 터미널에서 chmod로 test.pl에 실행 권한을 줍니다. $ sudo chmod +x /usr/lib/cgi-bin/test.pl Perl Programming 준비 이 펄은 무료입니다. http://www.perl.com/ 에 가시면 구할수 있죠. 윈도 사용자라면 이곳의 자료실이나, http://www.activestate.com/ 에 가.. 더보기
키보드 보이기/숨김에 따른 UITextView 및 UITextField의 가려짐 현상 해결법 키보드 보이기/숨김에 따른 UITextView 및 UITextField의 가려짐 현상 해결법 - by Tapito iOS 어플 제작 시 화면에 나타나는 소프트 키보드에 의해 TextView 또는 TextField의 가려짐 현상에 대한 해결방법입니다. 아래와 같은 화면이 있습니다. 가운데 표시한 부분이 UITextView입니다. 좀 더 과장된 현상을 위해 Lanscape 모드로 보겠습니다. Interface Builder에 View들만 배치하였고 ViewController에는 아직 아무 코드도 추가한 것이 없습니다. 이 화면에서 표시한 UITextView를 클릭합니다. 키보드가 나타나서 원래 편집하고자 했던 UITextView의 텍스트를 가려버립니다. 또한 코드에 아무 작업도 적지 않았으므로 일단 Focu.. 더보기
Nylon Beat - Rakastuin mä looseriin (S.E.S - Dreams come true 원곡) Nylon Beat - Rakastuin mä looseriin 나일론 비트 - 어느 패배자를 사랑하다 (S.E.S - Dreams Come True 원곡) Herkän hahmos kaukaa näin (헤르캔 하모스 카우카아 내인) 멀리서 그대의 여린 모습을 보았죠 Sua ennen tuskin koskaan huomasin (수아 엔넨 투스킨 코스카안 후오마신) 그것이 당신임을 알아차리기 전에 Vaan nyt sua (바안 늣 수아) 그러나 지금은 Pois en koskaan päästäiskään (포이스 엔 코스카안 패애스태이스캐앤) 절대로 그대를 떠나보내지 않습니다. Mä voittajaani katselin: oot mun (매 보이따야아니 캇셀린: 오옷 문) 내게 당신은 승리자죠: 그대는 .. 더보기
위젯 업데이트 주기 빠르게 하기 widget_provider.xml에서 조정할 수 있는 android:updatePeriodMillis 속성은 최소 30분이므로 이보다 작은 값 (30 * 60 * 1000)보다 작은 수 입력해도 30분마다 업데이트 메시지를 받게 된다. 이보다 짧은 주기로 업데이트를 수행하기 위한 방법 중 하나는 AlarmManager가 있다. // WidgetProvider.java public class WidgetProvider extends AppWidgetProvider { /** 5000 msec 간격으로 알람을 발생합니다. */ private static final int WIDGET_ALARM_INTERVAL = 5000; private static PendingIntent pendingIntent; pr.. 더보기
MediaRecorder 클래스 사용법 (소리 편) MediaRecorder 클래스 사용법 (소리 편) - by Tapito Java Class 작성 package com.example.mediarecordertest; import java.io.File; import java.io.IOException; import android.app.Activity; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; public class MainActi.. 더보기
바실리스크: Basilisk상에서의 인쇄 본 게시물은 지금은 접속되지 않는 다솜이네 홈페이지(http://my.dreamwiz.com/i2eye/main/main.htm)에 게시된 "Basilisk II"를 복원한 것입니다. Basilisk상에서의 인쇄 68K용 인쇄드라이버가 있는 경우에는 어느정도의 인쇄가 가능하긴 합니다. 그러나 엄청난 인내심이 요구됩니다. 그래서 대안으로 나온 것이 PDF파일로 인쇄하는 겁니다. 먼저 Print2pdf를 다운받습니다. 그리고 압축을 푸시고 HFVExplorer로 맥하드에 복사하시면 자동으로 디코딩됩니다. 그넘을 시스템에 복사하면 자동으로 확장파일로 들어갑니다. 그후 선택자에서 프린터를 이넘으로 지정하고 프린트하면 어디다 저장할지를 묻습니다. 지정해주고 저장하면 끝~! 그리고는 아범으로 옮겨서 아크로뱃리더로 .. 더보기
바실리스크: 바실리스크 이더넷 설치법 본 게시물은 지금은 접속되지 않는 다솜이네 홈페이지(http://my.dreamwiz.com/i2eye/main/main.htm)에 게시된 "Basilisk II"를 복원한 것입니다. 바실리스크 이더넷 설치법 바실리스크에서 네트워크를 하기 위해서는 일단 네트워크 드라이버를 설정해 주어야 합니다. 먼저 제어판 - 네트워크 항목을 엽니다. 그리고 추가 - 프로토콜을 클릭합니다. 디스크있음을 엽니다. 각 운영체제에 맞는 드라이버를 찾아 설치합니다. Basiliskgui를 실행하고 이더넷 탭을 엽니다. 그리고 랜카드를 설정해줍니다. 맥을 시동하여 애플메뉴-콘트롤패널-Tcp/ip를 잡아주세요... 더보기
[App] ResEdit 2.1.3 매킨토시용 실행파일에 포함된 메뉴, 이미지, 아이콘 등 리소스를 열어보고 편집할 수 있는 도구인 ResEdit 2.1.3입니다. 윈도우 운영체제에서는 PE 실행파일의 리소스를 열어 편집할 수 있는 Resource Hacker와 같은 역할을 합니다. 첨부된 sit 파일을 Stuffit Expander에 넣어 압축을 풀면 ResEdit 2.1.3 폴더가 생깁니다. 별도의 설치 과정이 없으므로 이 자체를 적당한 위치로 옮기기만 하면 됩니다. 로고 화면이 뜨는데 클릭하면 위 화면이 사라지고 아래 화면이 나타납니다. 열기 모드 대화상자입니다. (새 리소스 파일을 생성할 수도 있습니다.) 여기에서는 아무 실행파일이나 열어보겠습니다. 시스템 파일이나 자기 자신인 ResEdit 파일을 열 때는 위와 같은 경고가 뜹니다.. 더보기
[App] Simple Edit 3.3.1 텍스트 편집기인 Simple Edit 3.3.1입니다. sit 파일을 Stuffit Expander로 압축을 풀면 [SimpleEdit 3.3.1 Installer] 아이콘이 나타납니다. 이를 실행합니다. 설치 옵션과 설치 경로를 선택한 후 [Install] 버튼을 클릭합니다. 설치가 완료되었으면 [Quit] 버튼을 누릅니다. 설치 경로에 접근하여 SimpleEdit 3.3.1 실행 아이콘을 더블클릭합니다. 폰트, 굵기, 색, 밑줄 등 간단한 서식이 포함된 텍스트 문서를 작성할 수 있습니다. 더보기
[App] Stuffit Expander 5.5 sit 압축 파일을 풀 수 있는 Stuffit Expander 5.5버전입니다. 첨부한 파일을 HFV Explorer를 통해 하드디스크 이미지에 넣으면 에뮬레이터 상에 [Aladdin Expander 5.5 Installer] 실행 아이콘이 나타납니다. 이를 실행합니다. [Continue] 버튼을 누릅니다. 권장 사양과 설치 방법을 설명하고 있습니다. [Continue] 버튼을 누릅니다. 계약서입니다. [Agree] 버튼을 누릅니다. 별 볼 것 없습니다. [Install]을 누릅니다. 여기서 적당한 설치 위치를 지정한 다음 [Install]을 누릅니다. 윈도우의 '연결 프로그램'에 해당하는 내용입니다. 인터넷에서 받은 압축 파일을 열 때 지금 설치한 Stuffit Expander 5.5를 기본 프로그램으.. 더보기
[App] Internet Explorer 4.01 Full 버전입니다. 매킨토시 68k 기종용 Microsoft Internet Explorer 4.01 Full 버전입니다. 아래 파일을 다운로드하여 바실리스크에서 띄우면 설치 아이콘이 나타납니다. [IE 4.01 Full 68k Installer]를 실행합니다. 계약서 동의 화면에서 [Accept] 버튼을 누르고 설치 옵션과 설치 경로를 적당한 위치에 지정한 후 [Install] 버튼을 클릭합니다. 특이하게도 모든 어플을 종료한 후 설치하겠다고 합니다. [Continue]를 클릭합니다. Internet Explorer를 기본 브라우저로 지정하겠느냐, Outlook Express를 기본 메일 어플로 지정하겠느냐에 관한 대화상자가 뜰 수도 있습니다. 적당한 버튼을 클릭 후 설치 과정을 잠시 지켜봅니다. [Restart] 버튼을.. 더보기
[App] Netscape 3.04입니다. Class Mac에서 실행되는 웹 브라우저인 Netscape 3.04입니다. 아래 첨부된 파일을 HFV Explorer를 통해 바실리스크용 가상 하드디스크에 삽입합니다. Netscape 3.04 설치 파일을 실행합니다. Netscape Navigator 3 설치화면이 나타납니다. Continue 버튼을 눌러 설치를 시작합니다. 설치 위치를 선택하고 [Install] 버튼을 클릭합니다. 웹 페이지에서 소리를 재생하기 위해 추가 기능인 LiveAudio를 설치하겠습니다. Netscape를 설치합니다. [Continue Setup Now]를 클릭합니다. 파일 복사 화면이 지나가고 사용 계약서 동의 버튼을 누르면 Netscape를 실행할 수 있습니다. 에뮬레이터에 인터넷 설정이 안 되어 있다면 소켓을 설치하라는.. 더보기
MediaPlayer 클래스 사용법 MediaPlayer 클래스 사용법 -by Tapito 1. 레이아웃 설정 (activity_main.xml) 간단하게 재생, 중지, 일시중지의 3가지 버튼을 삽입합니다. 2. 레이아웃에 따른 Java 클래스 작성 (MainActivity.java) 3개의 버튼을 Java 클래스의 Button 형 인스턴스에 연결하고 클릭할 때 곧이어 정의 할 updateActivity 함수가 호출되도록 합니다. Java 클래스에는 재생 상태와 관련된 4가지 상수를 정의하고 있습니다. PLAYER_INIT: 앱이 실행되고 재생 관련 함수에서는 아직 아무것도 수행하지 않은 상태입니다. PLAYER_STOP: 소리 재생이 중지된 상태입니다. PLAYER_PLAY: 소리가 재생중인 상태입니다. PLAYER_PAUSE: 소리 재.. 더보기
위젯 구현하기 Android Widget 구현하기 - by Tapito Widget은 안드로이드의 홈 화면에서 보여질 수 있는 일종의 작은 어플리케이션입니다. iOS에서는 Today Extension에 해당합니다. 이를 구현하기 위해서는 3가지의 파일(Layout, WidgetProvider XML, WidgetProvicer Class)을 새로 작성하고 AndroidManifest.xml을 수정합니다. 위젯 레이아웃 XML 파일 (widget.xml) 위젯이 홈 화면에서 보여줄 View 들을 배치하는 파일입니다. Widget에서 사용할 수 있는 요소는 아래와 같이 제한되어 있습니다. Layout 요소들 FrameLayout LinearLayout RelativeLayout View 요소들 AnalogClock But.. 더보기
위젯과 액티비티간의 데이터 교환 예제 Activity 측의 코드 // MainActivity.java package com.example.widgettest; import android.app.*; import android.appwidget.*; import android.content.*; import android.os.*; import android.view.*; import android.widget.*; public class MainActivity extends Activity { private TextView textView1 = null; private EditText editText1 = null; private Button button1 = null; @Override protected void onCreate(Bundl.. 더보기
안드로이드 공장 모드에서 벗어나는 방법 안드로이드 홈 화면에서 검은 바탕에 노란 글자로 PDA, Phone, CSC, H/W, RF Cal Date, SMD, RearCAM, TSP, TSK, Band, UART, UN, Memory와 같은 항목이 뜨는 경우가 있습니다. 이와 같은 상태를 공장 상태(Factory Mode)라고 부르는데요. 서비스센터에 맡기기도 하지만 직접 고치고자 할 때는 아래와 같이 하면 됩니다. 1. 기기 루팅하기 이 문제는 /efs/FactoryApp/factorymode 파일의 내용과 관련되었습니다. /efs 경로에 접근하기 위해서는 루트 권한이 필요하기 때문에 먼저 기기를 루팅해야 합니다. 이미 루팅한 경우라면 이 단계를 건너뛰십시오. 여기에서는 Framaroot 어플리케이션을 설치하여 루팅하도록 하겠습니다. Fra.. 더보기
Today Extension 사용 예제 Today Extension 사용 예제 - by Tapito iOS 8부터 새로 도입된 Today Extension을 구현하는 예제입니다. 1. 프로젝트 및 어플리케이션 확장 생성 Xcode를 열고 새 프로젝트를 생성합니다. 여기에서는 [iOS] - [Application] - [Single View Application]을 선택하고 Next를 누르겠습니다. 앱의 이름을 지정하고 Next를 누르면 빈 화면의 iOS 어플리케이션 프로젝트가 생성됩니다. Today Extension은 본래의 앱과 따로 작동되는 또 하나의 작은 앱입니다. 이 프로젝트에서 Today Extension을 추가하기 위해 [File] - [New] - [Target...]을 클릭합니다. [iOS] - [Application Exten.. 더보기
[App] Disk Copy 6.3.3 Mac OS X에서는 가상 디스크 이미지를 마운트 하는 기능이 별도의 설치 없이 기본으로 지원되지만, 클래식 맥 OS에서는 Disk Copy 유틸을 설치하여 img 확장자의 가상 디스크 이미지를 마운트할 수 있습니다. 위 파일을 HFV Explorer로 가상 하드 디스크에 삽입합니다. Basilisk로 맥을 부팅하면 아래와 같이 Disk Copy 6.3.3.smi 아이콘이 나타납니다. 표시한 아이콘을 더블클릭하면 데스크톱에 Disk Copy 아이콘이 생성됩니다. 이를 더블클릭하면 Disk Copy라는 아이콘이 나타나는데 여느 맥 프로그램이 그렇듯 이 아이콘 자체가 하나의 실행 파일입니다. 이 상태에서 더블클릭하여 실행해봅니다. 실행파일이 위치한 디렉토리가 수정 불가능한 디스크 이미지이기 때문에 위와 같은.. 더보기
Xcode Interface Builder를 사용하여 사용자 정의 컨트롤 만들기 Interface Builder를 사용하여 사용자 정의 컨트롤 만들기 - by Tapito Visual Studio에서 C#, Basic, C++/CLI 등의 닷넷 언어로 어플리케이션을 작성할 때는 Panel에 원하는 컨트롤 들을 배치하여 사용자 정의 컨트롤 클래스를 만들 수 있습니다. Xcode에서도 이와 유사하게 각종 View 들을 배치하여 사용자 정의 View를 만들수 있습니다. 1. 프로젝트 생성 편의상 iPhone용 앱을 만드는 프로젝트를 기준으로 합니다. OS X용 프로그램 개발 프로젝트에서도 동일한 과정이 적용됩니다. 아래와 같이 Single View Application 프로젝트를 하나 생성하도록 하겠습니다. (Xcode 6.1.1 기준) 2. 사용자 정의 컨트롤을 작성할 레이아웃 파일 생.. 더보기
Java의 XML 읽기/쓰기 (DOM 버전) XML 파일로부터 읽기 /* DOMRead */ public static org.w3c.dom.Document Load(String path) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, java.io.IOException { java.io.File file = new java.io.File(path); java.io.FileInputStream fileInputStream = new java.io.FileInputStream(file); javax.xml.parsers.DocumentBuilderFactory documentBuilderFactory = javax.xml.parsers.DocumentBu.. 더보기
ATOM 1.0 XML 포맷에 대한 설명 ATOM 1.0 XML 포맷에 대한 설명 문서 엘리먼트(Document Element) 1. 'feed' Element ATOM 규격에 따르면 ATOM 문서는 2종류가 존재합니다. 하나는 ATOM 피드 문서(ATOM feed document)이고 다른 하나는 ATOM 엔트리 문서(ATOM entry document)입니다. ATOM entry document는 ATOM을 통해 올라온 게시글 하나에 대한 내용과 정보만을 전달합니다. 루트 엘리먼트는 'entry' 또는 'atom:entry'의 이름을 갖습니다. ATOM feed entry는 하나 이상의 ATOM entry를 포함, feed 자체의 메타 데이터까지 전송하는 규격입니다. 이 경우 루트 엘리먼트는 feed, 또는 atom:feed의 이름을 갖습니.. 더보기
RSS 1.0 XML 포맷에 대한 설명 RSS 1.0 Specification 'rdf:RDF' Element RSS 1.0을 준수하는 문서는 문서 요소로 'RDF' 이름의 Element를 가져야 합니다. 'RDF' Element는 'rdf' namespace에 소속되어야 하며 'rdf' 및 xmlns 네임스페이스는 위와 같은 URI로 지정되어야 합니다. 1. 'channel' Element 채널(channel)은 웹 사이트에 대응되는 개념입니다. 1.1 'title' Element (필수 요소) {channel_title} 채널의 이름입니다. 웹 사이트의 이름과 같게 지정하면 됩니다. 40자 이하가 될 것을 권장합니다. 1.2 'link' Element (필수 요소) {channel_link} 이 RSS를 공급하는 웹 사이트의 주소입니다. .. 더보기