본문 바로가기

application

[iOS/swift] 랜덤 숫자 맞추기 간단 게임 만들기 | Making to guess random number on iOS with swift 짬짬이 ios/swift application을 가지고 놀 수 있는 코딩을 해 보려고 한다. 왜냐.. 심심해서 -_-; 인터넷 + 관련 서적에서 쉽게 찾을 수 있는 예제들을 조금씩 바꾸어 작성해 보려고 한다. 중간 중간 틀리거나 오류가 있으면 알려주시면 땡큐~!X-CODE를 실행하면 위와 같은 창이 나타난다. 여기서는 새로운 프로젝트를 만들 예정이므로 'Create a new Xcode project' 를 선택하면 된다. 간단한 iOS app (앱이라고 하기 보다 테스트라고 하는게....ㅎㅎ)을 만들 예정이기에 'Single View Application' 을 선택한다. Product Name 을 넣으라는 창이 나온다. 여기에 이 프로젝트를 어떤 이름으로 할지 물어보는 것이기에 적당한 이름을 넣어주면 된.. 더보기
애플 스크립트를 이용한 이메일 보내기 with 첨부파일. Sending an Email with attachments using AppleScript tell application "Mail" set theSubject to "제목을 넣어준다." -- the subject set theContent to "본문에 들어갈 내용을 적는다" -- the content set theAddress to "수신인의 메일 주소를 적는다" -- the receiver -- set theSignatureName to "시그너쳐 이름을 넣어준다." -- the signature name set theAttachmentFile to "SH:Users:SH:Desktop:ScreenShots:1.png" -- 첨부파일의 경로를 설정한다. set msg to make new outg.. 더보기
Shut down, sleep, restart, display sleep, log out commands on OS X with bash, applescripts. Shut down without showing a confirmation dialog:osascript -e 'tell app "System Events" to shut down'Shut down after showing a confirmation dialog:osascript -e 'tell app "loginwindow" to «event aevtrsdn»'Restart without showing a confirmation dialog:osascript -e 'tell app "System Events" to restart'Restart after showing a confirmation dialog:osascript -e 'tell app "loginwindow" to «event aevtrrst.. 더보기
[Swift] 028 Functions and Closures - 2 (함수의 다중 파라미터 ) for beginners Functions다중 파라미터 함수Swift의 함수 개념은 앞서 살펴보았듯이 수학적인 개념 이상의 것입니다. 넓은 의미에서 Swift의 함수는 한 개 이상의 파라미터를 받아들이고 숫자뿐만 아니라 다른 타입도 받아들인다는 점에서 더 유연하고 강력합니다. 한 개 이상의 파라미터를 받아들이고 Doouble형 이외의 타입도 반환하는 함수를 만들어보겠습니다. 다중 파라미터 함수▼ func buildASentence(subject : String, verb : String, noun : String) -> String { return subject + " " + verb + " " + noun + "!" } buildASentence("Swift", verb: "is", noun: "cool") buildASent.. 더보기
[Swift] 027 Functions and Closures - 1 (함수 코딩하기 ) for beginners 함수와 클로저 사용하기(Writing Functions and Closures)이제까지 변수, 상수, 딕셔너리, 배열, 루프 구문, 제어 구문 등 많은 내용을 알아보았습니다. REPL 명령행 인터페이스 및 Xcode의 플레이그라운드 기능을 사용해 간단한 코드를 입력하며 Swift 언어를 조금 알아 보았습니다. 그러나, 지금까지 코드를 몇 개 입력하고 결과를 관찬ㄹ하는 실험 수준에만 머물렀는데, 이제는 코드를 조금 더 체계화할 필요성이 있습니다. 이제부터는 간결하지만, 다시 사용할 수 있는 함수를 사용해 Swift 코드를 좀 더 깔끔하게 정리하고자 합니다. 함수(The Function)학창시절 함수에 대해 공부를 해 본적이 있을겁니다. 기본적으로 함수는 산수식으로 입력을 받아 계산을 수행하고 결과를 제공하.. 더보기
[Swift] 026 Making Decisions - 4 ( while문 사용 ) for beginners While 문 사용 (While you were away...) 지금까지 if, for, switch-case문을 이용해 Swift의 강력한 제어와 반복 기능을 경험했습니다. 그러나 Swift의 추가 구조문에서는 생각을 자연스럽게 표현하는 방법도 제공합니다. 소프트웨어를 개발할 때 루프의 논리를 표현하고 싶지만 정확한 반복 횟수를 모를 때가 있습니다. 예를 들면 특정 기준을 충족시킬 때까지 무엇인가에 반복하려고 합니다. 그리고 값의 표를 계산하고 싶지만 계산된 값이 특정 숫자보다 크기 전까지는 멈추고 싶지 않습니다. while 루프는 Swift의 루프 구조문으로 사용자가 선택한 조건이 충족될 때까지 동일한 코드가 계속해서 실행되게 할 수 있습니다. while 문의 기본적인 구조는 아래와 같습니다.whil.. 더보기
[Swift] 025 Making Decisions - 3 (조건문 - switch-case) for beginners 의사 결정(Making Decisions) - Switch-Case스위치문 사용(Switching things around) 앞의 예문에서는 세 개의 if 문이 가능한 case를 처리했지만 비교할 가능성이 더 있다면 어떻게 해야 할까요? 반복되는 if문이 다소 길면 코드를 입력하는데 지루하고 읽는 것도 어려울 것입니다. switch문은 값을 검토해서 몇 가지 패턴과 비교합니다. 그런 다음, 처음 매칭되는 패턴이 있는 코드 블록을 실행시킵니다. if문을 사용할 때보다 switch문은 다수의 코딩을 처리할 때 매우 유용합니다. switch문은 여러가지 가능한 경우로 구성되어 있습니다. 각 경우는 case라는 키워드로 시작됩니다. 특정 값과 비교할 수도 있지만, Swift에서는 더욱 복잡한 패턴과 비교하는 여.. 더보기
[Swift] 024 Making Decisions - 2 (조건문 - IF / ELSE IF / ELSE) for beginners 의사 결정(Making Decisions) - IF / ELSE IF / ELSE 하나의 선택은 충분하지 않아(When one choice is not enough) 때때로 비교 연산으로 양자택일 이상의 것을 얻을 수 있습니다. 앞에서 만든 세 개의 상수 tree로 예를 들어 보겠습니다. tree의 각 타입은 제품의 타입과 연관이 있습니다. 각각의 tree 타입에 대한 상품을 반환하고자 한다면 어떻게 해야 할까요? for 루프에 래핑된 다중 if 문▲var treeArry = [tree1, tree2, tree3] for tree in treeArry { if tree == "Oak" { print("Furniture") } else if tree == "Pecan" { print("Pie") } els.. 더보기
[Swift] 023 Making Decisions - 1 (조건문) for beginners 의사 결정(Making Decisions)컴퓨터가 "생각"을 할 수 있을까요? 이것은 자주 논쟁이 일어나는 쟁점이기도 합니다. 컴퓨터는 결정을 내리는 부분에서 일을 잘합니다. 어떤 앱이든 필수적인 것 중 하나가 결정을 내리는 것이며 무엇을 하는지 어디로 가는지 아는 것이 프로그램의 흐름에서 매우 중요합니다. 프로그램 흐름은 "참이면 이곳으로 가고, 참이 아니면 저쪽으로 간다" 또는 "참이 아니면 참일 때까지 이 작업을 계속해서 수행한다."와 같은 하나의 긴 결정의 연속입니다. 우리의 삶도 이렇게 많은 결정을 해야 하는 일들로 가득 차 있으며, 때로 생각하지 않고 결정을 내리기도 합니다. 어떤 신발을 신을지, 몇 시에 출근할지, 또는 언제 길을 건너는 것이 좋을지 등 우리가 매일 마주치는 결정의 순간들입니.. 더보기
[Swift] 022 Launching Xcode (Xcode 실행하기) for beginners Xcode 실행하기 지금까지는 Swift의 REPL을 사용해 코드를 입력하고 결과를 보았습니다. REPL은 즉각 피드백을 제공하면서 짧은 소스 코드에서는 작동이 매우 잘 되었습니다. 그러나 앞으로는 더 긴 코드를 사용하게 될 것입니다. 긴 코드를 저장 및 로드하고 편집을 쉽게 하기 위해서는 Xcode를 사용해야 합니다. Xcode는 애플이 제공하는 iOS, OS X, Apple TV OS 용 Swift 앱을 개발 할 때 사용하는 개발 환경입니다. spotlight를 이용하여 실행하기▲ Xcode 경로 찾아서 실행하기▲ Xcode 시작 창▲ 플레이그라운드 저장 중▲ 새롭게 생성된 플레이 그라운드 창▲ Xcode 의 새롭고 재미있는 기능은 플레이그라운드(playground)입니다. Swift는 프로그래머들이.. 더보기
[Swift] 020 Iterating Collections (컬렉션 반복) for beginners 기본적인 컬렉션 타입인 배열과 딕셔너리를 모두 살펴보았습니다. 이젠 배열과 딕셔너리를 반복하는 방법에 대해 알아보고자 합니다. 컬렉션을 반복하는 것은 배열이나 딕셔너리 내의 값을 각각 검사하고 검사 후 잠정적으로 작업을 수행하는 것입니다. 반복은 우리가 일상생활에서 항상 하는 일을 말합니다. 업무를 완료하기 위해 문서로 작성된 단계별 리스트대로 작업할 때 이 리스트의 내용을 반복하는 것입니다. 데이터를 가지고 반복할 때도 다르지 않습니다. 반복은 매우 기본적인 코딩 작업으로 예제를 가지고 다뤄보도록 하겠습니다. Swift에서는 컬렉션에 대한 반복을 쉽게 만들 수 있게 다양한 구문을 제공합니다.배열 반복(ARRAY ITERATION)C 언어를 사용해 본 분들이라면 for 반복문 개념이 매우 친숙할 것입니다.. 더보기
[Swift] 019 Declare Array and Dictionary (배열, 사전 선언하기) for beginners 지금까지 만든 배열과 딕셔너리는 선언할 때 초기화 되었습니다. 그러나 Swift 언어로 프로그램을 개발할 떼에는 때로 초기화 없이 배열이나 딕셔너리를 생성하는 것도 필요합니다. 선언 당시 애플리케이션 내에서 값이 알려지지 않았거나 빈 배열 또는 빈 딕셔너리를 라이브러리나 프레임 워크 내의 메서드로 채울 필요가 있습니다. 빈 배열(The Empty Array)빈 배열을 선언하는데 두 개의 명명법이 사용됩니다. 위 방식은 배열을 "손으로" 직접 입력해서 선언한 형태이고 Array 키워드와 괄호로 묶은 배열의 타입이 사용됩니다. 그리고 Swift는 사용할 수 있는 "약식" 형태의 두 번째 방법도 제시함니다. 위 예제는 Int 값을 가지고 있는 빈 가변 배열을 선언합니다. 가변 배열이기 때문에 배열을 변.. 더보기
[Swift] 018 Dictionary (사전) for beginners 딕셔너리(The Dictionary) 사전을 생각하면 유명한 사전 편집자인 대니얼 웹스터(Daniel Webster)가 떠오를 것입니다. 도서관 서가에 꽂혀 있는 사전에는 뜻을 자세하게 설명한 단어들이 잘 정리되어 있습니다. 또한, 사전에서 단어의 정의를 찾을 때는 알파벳 순서대로 찾습니다. Swift 언어의 딕셔너리(Dictionary)도 우리가 알고 있는 사전처럼 사용합니다. 딕셔너리는 같은 타입을 가진 여러개의 값을 저장하는 하나의 컨테이너라고 볼 수 있습니다. 각각의 값은 유일한 키(key)와 값(value)에 물려 있으며, 이 키와 값은 딕셔너리 안에서 해당 값을 찾기 위한 식별자의 역할을 합니다. 배열의 값들과 달리 딕셔너리 안에 저장된 값은 어떤 순서가 정해져 있지 않습니다. 그래서, 실제로.. 더보기
[Swift] 017 ARRAYS (배열) for beginners Birds of a feather (유유상종)배열이 다른 타입의 값을 가질 수 있을까? 위 예제를 보니 Swift는 확실히 배열이 다른 타입의 값을 가지는 것을 허용하지 않습니다.따라서 배열의 값은 동일한 타입이어야 합니다.▲그렇다면 배열 선언 자체에서 값 타입에 대해 구체적으로 명시하고 싶으면 어떻게 할까요?배열이 특정 타입의 값을 가지도록 선언하려면 콜론을 추가하고 그 다음에 [] 괄호로 묶은 타입의 이름을 넣습니다.▲Extending the array (배열확장)앞에서 다룬 가변 변수인 refillableCandyJar 배열을 다시 한번 살펴보겠습니다. 여기에 새로운 배열을 추가해 보겠습니다.이번에는 결과창을 보여주지 않아 어떤 변화가 발생했는지 알 수가 없네요.▲예상했던 대로 Candy Canes.. 더보기
[Swift] 015 Optional (옵셔널) for beginners 앞서 동일한 타입의 새로운 변수에 할당할 수 있도록 문자열 변수 s의 내용을 Int형으로 변환하는데 Int() 메서드를 사용한 것을 기억할 것입니다. Swift가 반환한 타입 지정자 다음에 나오는 물음표에 대해서 앞서 잠깐 살펴보았습니다. 이 물음표는 myConvertedInt 가 Int 그 이상이라는 의미를 내포하고 있습니다. 여기에서 물음표는 옵셔널(optional) Int를 의미합니다. 그럼 정확하게 옵셔널 기능은 무엇일까요? 옵셔널은 변수나 상수가 아무것도 없거나 또는 nil 일 수 있다고 Swift에 알려주는 타입 수식어입니다. 값 nil은 오랫동안 다른 프로그래밍 언어에서도 사용되었습니다. Objective-C에서도 nil로 쓰고 있으며 C 언어와 C++ 언어에서는 NULL로 사용되고 있습니다.. 더보기
[PYTHON 3] Tutorials 34. Make words counters - 3 ( words frequency counter 만들기) 이번 시간에는 이전 시간에서 만든 Word Counter를 활용해서 Frequency Counter(빈도수 카운터) 만들어 보도록 하겠습니다. 어떤 문서를 작성할시에 특정 단어가 얼마나 자주 사용되었는지 확인하거나, 어떤 사이트에서 가장 빈도수가 높게 올라오는 어휘가 어떤 것인지 한눈에 확인할 수도 있으며, 혹은 특정(장소, 시간, 위치, 카테고리 등등)한 매개체에서 동일 단어의 사용 빈도를 추적할 때도 활용할 수 있는 Frequency Counter 코딩을 시작해 보겠습니다. 이전 시간까지 작성한 코드입니다.▼ 확인을 위해 삽입한 print(word)를 comment 처리 하였습니다. 이전 시간에 완성한 특수문자가 제거된 온전한 단어들을 전달받는 딕셔너리 제작 함수를 호출하게 하였습니다.▼ 상기 그림에.. 더보기
[PYTHON 3] Tutorials 33. Make words counters - 2 ( words counter 만들기) 이전까지는 웹페이지에서 특정 부분을 크롤링하여 단어들을 추출하였습니다. 그러나 여기에는 특수문자 등 원하지 않는 부분도 포함되어 있었습니다. 이번 시간에는 앞에서 얻은 자료에서 원치않는 부분을 제거하는 코딩을 하도록 하겠습니다. 앞 장에서 다룬 코드는 아래와 같습니다.▼ 상기 코드에서 우선 확인을 위해 삽입한 print(each_word)를 삭제하도록 하겠습니다.▼ 또 다른 함수를 정의할 건데 start(url) 함수 내에서 호출 하도록 할 예정입니다. 그래서 아래 코드에서 처럼 clean_up_list(word_list) 문구를 삽입하였습니다.▼ clean_up_list(word_list) 함수를 정의하겠습니다.▼ start(url) 함수와 마찬가지로 원하지 않는 데이터를 뺸 자료를 담을 그릇(리스트).. 더보기
[MAC TIP] 오토메이터를 이용한 파일, 폴더 이름 일시에 변경하기 - Rename files, folders using automator on OS X at once. 맥에서 한번에 많은 파일 혹은 폴더의 이름을 변경해야 하는 경우가 있을 때 어떻게 하시나요? 그냥 하나씩 변경? 지루하고, 번거롭고, 시간도 많이 소요가 될 수 있습니다. 물론 파일의 개수가 한 두개 정도일 경우에는 그냥 마우스 클릭을 한번하거나 키보드로 엔터키를 쳐서 이름을 변경할 수 있습니다. 그러나 오늘 하루에 찍은 사진이 100장 혹은 1000장이라고 한다면 사정이 달라집니다. 이럴 때 유용하게 쓸수 있는 방법이 있습니다. 바로 맥에 내장되어 있는 오토메이터(automator)를 활용하면 한번에 해결 가능합니다. 게다가 서비스(Service)로 저장을 해두면 언제든지 사용가능하기에 생산성 향상에 큰 도움이 됩니다. 1. automator 실행하기spotlight를 이용하여 'automator'를 .. 더보기
[Swift] 003_Interacting with Swift (Swift와 소통하기) for beginners 우선 양방향 인터프리터인 REPL을 통해 Swift 를 시작해 보려고 한다. REPL은 Read-Eval-Print-Loop의 Acronym(앞글자만 딴것)이며 이름 자체가 REPL이 무슨 일을 하는지 알려주고 있다. REPL은 명령을 읽고, 평가하고, 결과를 출력하고 또한 처음으로 돌아가 같은 작업을 반복한다. 실제로 이런 양방향성이 Swift가 가진 훌륭한 기능 중 하나이며 C 언어나 Objective-C와 같은 컴파일러형 언어가 가지고 있지 않은 기능이다. 이미 REPL을 제공하는 루비(Ruby)나 파이썬(Python)과 같은 스크립트 언어를 사용해본 유저라면 새로운 것이 없을테지만 컴파일러형 언어 쪽에서는 새로운 기능이다. REPL의 가장 큰 장점은 C, C++, Objective-C 언어에서 해.. 더보기
[Swift] 001_Introduction(간략한 swift 소개) for beginners Swift는 애플이 출시한 새로운 프로그래밍 언어로 iOS와 Mac OS용 앱을 개발하기 위한 언어이며 모바일뿐만 아니라 데스크탑 컴퓨터를 통틀어 최고의 컴퓨터 언어가 될 것으로 생각한다. Swift 는 배우기 어려운 프로그래밍 언어인 Objective-C와 비교하면 배우기 쉽고 사용하기 편한 언어라는 장점이 있다. 애플은 오랫동안 자사 플랫폼의 프로그래밍 언어로 Objective-C를 주로 사용해 왔지만 Swift를 선보이고 나서 Swift가 주력 프로그래밍 언어가 되어 가고 있는 중이다. 이처럼 배우기 쉬울 뿐만 아니라 매우 강력한 도구인 Swift를 조금씩 올려보려고 한다. 여느 프로그래밍 언어와 마찬가지로 Swift도 샘플로 소개되는 예제를 직접 작성해 보는것이 무엇보다 실력향상에 있어서 중요하다.. 더보기
[Applescript] How to open a new tab in chrome, safari using applescript Applescript 를 사용하여 특정 사이트를 새 탭에서 여는 기본 스크립트이다. on run {input, parameters} tell application "Google Chrome" set myTab to make new tab at end of tabs of window 1 set URL of myTab to "http://creativeworks.tistory.com/" end tell end run 더보기
[Mac App] FTP/SFTP를 품은 ForkLift 사용하기 맥에서 다소 아쉬운 부분이 있다면 파인더 일것이다. 물론 다양한 기능을 잘 활용한다면 더할 나위 없이 훌륭한 기본 프로그램이지만, 이런 기능만 있으면 참~ 좋겠는데... 라는 생각이 들 때가 있다는 말이다. 이런점을 보완해 주는 애플리케이션 중이 하나가 BinaryNights에서 나온 ForkLift 이다. 파인더의 대체 프로그램으로 많이 알려진 Pathfinder, Total commander, Transmit 등과 견주어도 뒤쳐지지 않는 앱이라고 생각한다. 사용자 인터페이스나 디자인, 기능성 모두 만족감을 줄 수 있는 프로그램이라 본다. ForkLift 는 파인더와 유사한 인터페이스를 가지고 있어서, 처음 이 프로그램을 접하는 사람들도 쉽게 사용할 수 있을 것이다. 파인더와 마찬가지로 즐겨찾기 폴더,.. 더보기
애플 뮤직 for 안드로이드 스크린샷. Leaked screenshots preview Apple Music for Android Apple's Music service is slated to make its way to Android devices real soon if the company stays true to its word. If you want to see what it will look like right now, though, German website Mobile Geeks has posted what it says are screenshots of the upcoming app. As you can see from the images, it comes with Beats 1 Radio, a recommendations pa.. 더보기
애플 리서치킷, 6개월만에 10만 명이 사용하는 의학 앱으로 성장 애플은 6개월 전 아이폰을 의학 연구용 기기로도 활용할 수 있게 하는 리서치킷(ResearchKit)를 발표했다. 의학 커뮤니티가 사람들로부터 더 많은 정보를 얻도록 리서치킷이 도와준다고 알려지면서 몇몇 연구기관들이 직접 개발한 앱을 통해 데이터를 수집했다. 그리고 리서치킷이 순항 중이라는 지표가 발표됐다. 10만 명이 넘는 사람들이 리서치킷 앱을 사용하고 있으며, 실험 연구원들은 이전에는 생각지도 못했던 규모인 수백, 수천 명의 데이터를 기반으로 연구를 진행하고 있는 것이다. 애플의 수석부사장 제프 윌리엄스는 “지난 6개월 전 출시된, 천식과 당뇨병, 파킨슨 병까지 모두 연구할 수 있는 리서치킷 앱이 전세계 과학자들에게 통찰력을 제공하고 있다. 약 10만 명의 넘는 참가자들이 과학과 의학 연구 진보를 .. 더보기