전체 글 403

[ios] iPhone is busy. Preparing debugger support for 에러 문구

swift 문법을 처음으로 공부하고 나의 첫 앱을 시뮬레이터에서만 보다가 내 iphone 에서 보려고 설정중에,아래와 같은 문구가 한참을 나오고 사라지지 않았다. 해결방법 Xcode > Window Devices and Simulators를 선택 Devices 창에 아래와 같은 화면이 노출된다. 여전히 iPhone is busy... 라는 문구를 볼 수 있다. 왼쪽 하단의 아래 + 버튼을 눌러주고 현재 연결되어있는 iPhone 을 선택 후 Next 버튼을 클릭! Done 버튼을 누르고, 여전히 문구가 사라지지 않는다면 USB 연결되어있다면 다시 재연결해보자!

Mobile/ios & swift 2018.07.01

[Akka] Akka Document - Actor Architecture (3) - Failure handling

이 글은 원문 : https://doc.akka.io/docs/akka/current/guide/tutorial_1.html 글을 읽고 간략하게 정리한 내용입니다. (생략된 내용도 있습니다.) Akka Version 2.5.12 Failure handling 부모와 자식은 라이프 사이클 전반에 걸쳐 연결된다. actor가 실패 할 때마다 (예외를 던지거나 처리되지 않은 예외가 receive에서 끊어지면) 일시적으로 일시 중단된다. 앞서 언급했듯이, 실패 정보는 부모에게 전달되며, 부모는 자식 actor에 의해 발생한 예외를 처리하는 방법을 결정합니다. 이런 식으로 부모는 자식을 감독하는 역할을 한다. 기본 수퍼바이저 전략은 자식을 중지했다가 다시 시작하는 것이다. 기본 전략을 변경하지 않으면 모든 실패로..

[Akka] Akka Document - Actor Architecture (2) - actor lifecycle

이 글은 원문 : https://doc.akka.io/docs/akka/current/guide/tutorial_1.html 글을 읽고 간략하게 정리한 내용입니다. (생략된 내용도 있습니다.) Akka Version 2.5.12 The actor lifecycle actor가 만들어지면 존재하게되고 나중에 사용자 요청에 따라 멈추게 된다. actor가 멈추면 모든 자식도 재귀적으로 멈춘다. 이 동작은 리소스 정리를 크게 단순화하고 열린 소켓 및 파일로 인해 발생하는 리소스 유출을 방지하는 데 도움이 된다. 사실 저수준 멀티 스레드 코드를 처리 할 때 일반적으로 간과되는 어려움은 다양한 동시 자원의 라이프 사이클 관리하는 것이다. actor를 정지 시키려면, actor 내에서 getContext().sto..

[Akka] Akka Document - Actor Architecture (1)

이 글은 원문 : https://doc.akka.io/docs/akka/current/guide/tutorial_1.html 글을 읽고 간략하게 정리한 내용입니다. (생략된 내용도 있습니다.) Akka Version 2.5.12 Part 1: Actor Architecture Akka를 사용하면 actor system 을 위한 인프라를 만들고 기본 동작을 제어하는 데 필요한 저수준 코드를 작성하지 않아도 된다. 이를 이해하기 위해 코드에서 생성한 actor와 Akka가 생성하고 관리하는 actor 사이의 관계, actor 라이프 사이클 및 오류 처리를 살펴본다. The Akka actor hierarchy Akka의 actor는 항상 부모에게 속한다. 일반적으로 context.actorOf ()를 호출하..

[Swift 4] 타입 캐스팅 (Type Casting)

이 포스팅은 The Swift Programming Language (Swift 4.1) 의 Type Casting 문서를 보고 이해하며 제 것으로 만들면서 정리해 놓은 문서입니다. 원문 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html#//apple_ref/doc/uid/TP40014097-CH22-ID338 타입 캐스팅(Type Casting) 타입 캐스팅은 인스턴스의 타입을 체크하거나 해당 인스턴스를 고유한 클래스 계층 구조의 다른 수퍼 클래스나 서브 클래스로 처리하는 방법이다. Swift에서의 타입 캐스팅은 is와 as 연산자로 구현된다..

Mobile/ios & swift 2018.04.08

[Swift 4] Optional Chaining(4) - 옵셔널 체이닝을 이용하여 서브스크립트 접근하기

이 포스팅은 The Swift Programming Language (Swift 4.1) 의 Optional Chaining 문서를 보고 이해하며 제 것으로 만들면서 정리해 놓은 문서입니다. 원문 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html#//apple_ref/doc/uid/TP40014097-CH21-ID245 옵셔널 체이닝을 이용하여 서브스크립트 접근하기(Accessing Subscripts Through Optional Chaining) 옵셔널 값의 서브스크립트로부터 값을 가져오거나 설정하기 위해, 옵셔널 체이닝을 사용 할..

Mobile/ios & swift 2018.03.20

[Swift 4] Optional Chaining(3) - 옵셔널 체이닝을 이용하여 메소드 호출하기

이 포스팅은 The Swift Programming Language (Swift 4.1) 의 Optional Chaining 문서를 보고 이해하며 제 것으로 만들면서 정리해 놓은 문서입니다. 원문 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html#//apple_ref/doc/uid/TP40014097-CH21-ID245 옵셔널 체이닝을 이용하여 메소드 호출하기(Calling Methods Through Optional Chaining) 옵셔널 체이닝으로 옵셔널 값에서 메소드 호출하고, 메소드 호출이 성공하는지 확인 할 수 있다. 리턴 ..

Mobile/ios & swift 2018.03.20

[Swift 4] Optional Chaining(2) - 옵셔널 체이닝을 이용하여 프로퍼티 접근하기

이 포스팅은 The Swift Programming Language (Swift 4.1) 의 Optional Chaining 문서를 보고 이해하며 제 것으로 만들면서 정리해 놓은 문서입니다. 원문 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html#//apple_ref/doc/uid/TP40014097-CH21-ID245 옵셔널 체이닝을 위한 모델 클래스 정의하기 옵셔널 체이닝을 사용하여, 한 단계 이상의 레벨에 해당하는 프로퍼티, 메소드, 서브스크립트 호출하여 사용 할 수 있다. 상호 관련된 타입의 복잡한 모델내에서 서브프로퍼티로 내려..

Mobile/ios & swift 2018.03.19

[Swift 4] Optional Chaining(1) - 강제 언래핑 대안으로서의 옵셔널 체이닝

이 포스팅은 The Swift Programming Language (Swift 4.1) 의 Optional Chaining 문서를 보고 이해하며 제 것으로 만들면서 정리해 놓은 문서입니다. 원문 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html#//apple_ref/doc/uid/TP40014097-CH21-ID245 Optional Chaining옵셔널 체이닝(Optional chaining)현재 옵셔널이 nil이 될 수 있는 프로퍼티, 메소드, 서브스크립트를 조회하고 호출하는 과정 옵셔널에 값이 있으면, 프로퍼티, 메소드, 스크립..

Mobile/ios & swift 2018.03.19

[Swift 4] Swift 둘러보기

오랫만에 새로운 언어를 배워볼 겸, Swift를 시작해보았습니다.시작해보면서 Swift 4로 변경된 부분의 글은 많지만, Swift 4로 언어를 시작하는 사람을 위한 문서는 없는 것 같아 정리해 보았습니다. Swift를 알지 못하는 사람이 배우면서 번역한 글이라 영어를 떠나서 내용을 이해못하고 쓴 부분이 있다면 피드백이 있었으면 좋겠네요~ 해당 글은 여기에서 참고 하세요.https://flyburi.gitbooks.io/swift4/content/chapter1.html

Mobile/ios & swift 2017.12.04

[Scala] Mac에서 Scala 설치

Mac에서 Scala 설치 설치 환경os : mac / jdk : 1.8 / 설치할 scala : 2.11.8 0. JDK 설치 확인 및 미설치시 먼저 설치할 것. 1. Scala 공식 홈페이지로 접속http://www.scala-lang.org/ 2. Download 버튼 클릭 후 현재 안정화 된 버전의 Scala 버전 다운로드 3. 다운받은 zip 파일을 적당한 곳(예: /usr/local)에 압축을 푼다. 4. SCALA_HOME Path 설정(예: ~/.profiles)아래와 같이 압축해제한 scala 폴더의 위치 HOME으로 설정후 bin 폴더를 PATH에 추가한다.export SCALA_HOME=/usr/local/scala-2.11.8 export PATH=$PATH:$SCALA_HOME/b..

[Play] Play설치(activator)

글 작성 기준 버전 : Play 2.5.x 참고 : https://www.playframework.com/documentation/2.5.x/Installing Prerequisites Play 2.5.x 버전은 java 1.8 을 필요로 한다. Play 설치 activator 다운로드 https://playframework.com/download에서 Offline Distribution 클릭하여 다운로드 받는다. /usr/local이나 쓰기권한있는 원하는 위치에 압축을 풀어준다. Path에 activator 추가. 자신의 profile 파일에 path를 추가한다. MacOS/Linux는 보통 $HOME/.profile 에 추가한다. (/etc/paths에 추가하기도 하고 자신이 쓰는 path 지정하면 ..

[책] 훌륭한 프로그래머 되는 법 - 경로 탐색하기

최근 환경이 바뀌어 새로운 환경, 시스템에 적응할 일이 있어 코드를 분석할때 느낀점을 '훌륭한 프로그래머 되는 법'(Becoming a Better Programmer) 책을 읽으며 공감한 부분이 있어서 정리해 봅니다. '훌륭한 프로그래머 되는 법'(Becoming a Better Programmer) 6장 경로탐색하기 에서 발췌한 내용입니다.. 경로 탐색하기. - 새로운 프로젝트에 투입되었을때 코드를 둘러볼 계획을 어떻게 세워야 했을까? 프로젝트에 투입된 최초 시점에서, 성과를 낼 수 있는 상태에 빠르게 도달하기 위해 어떻게 해야했을까? 이미 존재하는 거대한 코드베이스에 적응을 위해선 다음과 같은 작업을 재빠르게 해내야 한다. 그래야 작업한 첫 번째 변경 사항이 다른 이들에게 당황스럽게 보이거나, 이미..

[SpringSecurity] Authentication(인증) 관련 클래스와 처리

Spring Security에서의 Authentication(인증)과 관련된 클래스와 내부 처리에 대해 알아보겠습니다. Spring Security에 대해 큰 흐름은 알지만, 처음부터 적용하는게 아니면 어떤 권한을 주고 권한 체크하는 로직만 추가하거나 수정하며 생각없이 쓰게 되는데, 어떤 흐름으로 되는지 전보다 좀 더 살펴볼 기회가 있었고 Spring Security의 각 클래스들이 어떤 일을 하는지에 대해 두서없이 소소하게 정리해봅니다. 이 글에서 Spring Security Version은 3.2.5 버전이 기준입니다. 1. 인증과 인가란 무엇인가? 인증 절차를 거친후 인가 절차를 진행! 1) 인증(Authentication) : 해당 사용자가 본인이 맞는지를 확인하는 절차. 2) 인가(Authori..

backend/Spring 2016.01.25

[Scala] Scala에서의 객체 동등성

Scala에서의 객체 동등성 동등성 : 두 객체의 내용이 같은지 비교. String Equality 테스트 == operator를 이용한 두개의 String instance 비교. val s1 = "hello" val s2 = "hello" val s3 = "h" + "ello" s1 == s2 res0: Boolean = true s1 == s3 res1: Boolean = true == 메소드는 String 이 null로 할당하여도 NullPointerException발생하지 않음. val s4: String = null s3 == s4 res2: Boolean = false s4 == s3 res3: Boolean = false 대문자나 소문자로 변환한 두개의 string도 == method를 이용..

[책] 색채가 없는 다자키 쓰쿠루와 그가 순례를 떠난 해

[책] 색채가 없는 다자키 쓰쿠루와 그가 순례를 떠난 해 갑자기 찾아온 상실감. 그 상실감의 상처로 이유도 모른체 아파했었던 주인공이 떠난 순례의 여정이 긴박하지 않으면서도 지루하지 않았다. 끝은 허무했지만, 다시 생각해보니 그게 우리의 삶과 같다는 생각이 든다.마치 엔딩이 있는것처럼 목표를 세우고 그 목표를 달성하면 행복한 엔딩이 기다리는것처럼 하루를 살지만 그런 막연한 엔딩을 꿈꾸며 살기보다는 살아있는 이 순간의 과정을 더욱 느끼고 반성하고 음미해야겠다는 마음이 더욱 확실해지는 책. 기억하고 싶은 구절. 사람들은 모두 그에게 다가왔다가는 이윽고 사라진다. 그들은 쓰쿠루 속에 무엇을 찾으려 하지만 그것을 찾지 못해, 또는 찾았지만 마음에 들지 않아 체념하고(또는 실망하고 화가 나서) 떠나 버리는 것 같..

[책] 소프트웨어 개발과 테스트

입사한지 되어서 그런지 회사 컴퓨터가 점점 느려지는 틈을 노려 메이븐 빌드하는 도중 틈틈히 읽었더니순식간에 읽은 조대협님의 '소프트웨어 개발과 테스트'.새로운 내용의 책이라기 보다는 프로젝트 개발방법론, 개발과 테스트등에 전반적으로 한번 정리하는 의미에서 괜찮은 책 같다.중간에 다양한 짤막한 내용들도 흥미로웠다.. 이슈 트랙킹 도구 > Trac : 이슈관리, 소스 코드의 형상관리, Wiki, 태스크 관리, 문서 관리, 소스코드 관리> RedMine> JIRA> IBM Jazz/RTC> 클라이언트 연동 : MyLyn UX 프로토타입> 프로토타입 디자인 도구 : balsamiq> 9 Excellent Tools for Design Mockups : http://mashable.com/2012/06/07/mo..

코드 리뷰 가이드라인 - Part 1(Code review guidelines)

사내에서 코드리뷰 가이드라인에 대한 좋은 글을 공유하여서 번역하여 공유하면 좋을것같아 발번역을 해본것을 블로그에 공유하여 올린다. 왜 리뷰가 중요한가?(Why Reviews are important?) 부분은 제외한 모든 부분을 번역하였다 Code review guidelines – Part 1원문 :http://insidecoding.com/2013/01/07/code-review-guidelines/최초작성일 : 2014.2.9 작성자:버리야 날자 코드 리뷰가 무엇인가? 코드 리뷰는 컴퓨터 소스의 체계적인 검사이다(peer review로 알려져있다). 코드 리뷰는 초기 개발단계에서 간과한 실수를 찾고 수정하고, 전체 소프트웨어의 품질과 개발자의 기술 모두를 개선하기 위한것이다. 왜 리뷰가 중요한가?Q..

OS X Mountain Lion에서 프로그램 설치시 '확인되지 않은 개발자가 배포했기 때문에 열 수 없습니다.'

OS X Mountain Lion에서 Eclipse를 Download받고, Eclipse를 실행하였더니 이 에러를 뱉는다.프로그램 설치시 '확인되지 않은 개발자가 배포했기 때문에 열 수 없습니다.'이 문제는 Mountain Lion에서 보안 이슈로 인해 추가된 Gatekeeper과 연관된 것인데, 시스템 환경설정> 보안 및 개인 정보에서 '다음에서 다운로드한 응용 프로그램 허용'에서 기본값으로 'Mac App Store 및 확인된 개발자'인데,이것을 '모든곳' 으로 바꾸어 주면 된다. 물론, 보안상으로 좋지 않은 방법이지만, 출처 Mountain Lion: Hands on with Gatekeeper

구글 메일 로그인시, 계정 아이디에 대한 불편한 진실~

지금까지 속아온 듯한 이 느낌은 뭘까~ 구글에 처음 가입할 당시, 이름.성@gmail.com으로 이름과 성 사이에 .(dot)을 넣어서 계정을 생성하였기때문에, 로그인할때, 이름.성@gmail.com으로 항상 썼는데, 얼마전 트윗을 보다가 알게된 사실. 내부적으로는 .(dot)이 있던 없던 상관없이 사용자의 순수 아이디만 들어간다는 사실 즉, .(dot)없이 이름성@gmail.com도 되고, 이.름.성@gmail.com도 되고, 이.........름성@gmail.com도 로그인이 가능하다는 점~ 좋은것 같기도 하고, 지금까지 몰랐던게 아주~ 조금 억울한 것 같기도 하고~ 앞으로는 좋은게 좋은거지만..

OS X Mountain Lion에서 Java 설치

Mountain Lion 버젼 전에는 Java가 기본으로 설치되어있었던 것 같은데,기존 버젼에서 upgrade할때 Java를 지우고 아예 이번버젼은 설치되어 있지 않다., Flashback trojan과 같은 malware나 바이러스등의 보안 문제때문에 자바가 기본으로 설치되어있지 않다고 한다. 그리고 대부분의 사용자는 Java를 사용하지 않기 때문이라고~ Java설치를 위해선, 간단하게 터미널에서 Java를 치면, 현재 설치되어있지 않다고 메시지를 보여주고 설치할지 창을 자동으로 띄워주고 최신 버젼의 Java를 설치한다. 설치 후 , 터미널에서 java -version 해보면~ 성공! 출처 Install Java in OS X Mountain Lion

Ubuntu 12.04와 Windows 멀티 부팅 순서 변경

부팅시 Ubuntu와 Windows로 선택하는 메뉴에서 시간내에 선택하지 않으면 기본적으로 Ubuntu 부팅이 아닌,Windows로 부팅으로 순서 변경시 $sudo gedit /etc/default/grub 파일에서 GRUB_DEFAULT = 0 이라고 되어 있는것을 변경하면 된다. 나는 부팅시 보여지는 리스트 중 7번째에 WIndows가 있기 때문에 GRUB_DEFAULT = 6 이라고 설정했다. (중요! 부팅 순서는 0부터 시작) 순서를 모를시에는 /boot/grub/grub.cfg 파일을 참조해 윈도우 관련 엔트리를 확인하면 된다. 저장 후, update시켜준다. $ sudo update-grub

디버깅

우연히 10년전에 배웠던 프로그래밍 책을 보다가 발견한 "디버깅"챕터에서의 내용이다. 디버깅 프로그램 제작에서 가장 어려운 부분은 설계나 코딩이 아니라 바로 디버깅 단계다. 이 단계에서, 프로그램이 실제 작동하는지(작동된다고 생각하는 것이 아니라)를 알아낸다. ...... 대화형 프로그램의 경우는 버그를 다시 보인다는 것 자체가 문제 해결의 90%를 차지할 수 있다. 이 말은 특히 그 분야에 있는 사용자가 보고한 버그를 처리할 때 그렇다. 다음은 버그를 발견했다고 전화한 사용자의 전형적인 대화 내용이다. 사용자: 당신들이 만든 데이터베이스 프로그램이 이상합니다. 프로그래머: 무슨 문제가 있습니까? 사용자: 가끔 정렬을 하면 이상한 순서로 정렬됩니다. 프로그래머: 사용한 명령어는 무엇입니까? 사용자: so..

[Node.js] 관련 링크들 중 책갈피한 내용들

요즘 한창 재미난 Node.js 관련 링크들 중 개인적으로 책갈피한 내용들밑의 문서는 원서 내용 발췌. (한글번역 문서 : http://nodeguide.atelier.weaveus.com/index.html)Felix's Node.js Guide 링크중에서Using EventEmittersNode.js implements the observer pattern using a class called EventEmitter. Whenever there is an object that represents the source of several kinds of events, node.js usually makes the underlaying class inherit from EventEmitter.Using E..

Frontend/Javascript 2012.06.05

명품 가방님께...

어제 정말 오랫만에 뜻밖에도 책 두권 선물받았습니다. 선물을 받고 감사의 표시를 블로그에 통해 하면 문자 한통 보내는것보다 두고두고, 블로그 볼때마다..감사한 마음 생각하려고 이렇게 글을 남깁니다. 인증 샷블로그 같은 것? (이글을 보실련지..)그 중 한권은 거의 다 읽었답니다. 오랫만의 책 선물이 제게 크나큰 감사의 마음을 들게 하는것 같아요.이렇게 받아도 되는건지.. 전 참 행복한 사람 같아요. 선물 주신 분은 못뵌지 어쩌다 거의 5년이 다 되어 가는데, 자주 연락은 못하고 저를 잊지 않으시고 늘 살아있냐고 먼저 안부 여쭈실 때,자꾸 부끄러워집니다. 나이 한~참(?) 어린 제가 안부 여쭈어야하는데.. 거기에 힘내라고(?) 선물까지 주시다니.. 몸둘바를 모르겠습니다.선물해 주신 책 중 혜민스님의 '멈추..

하루하루 2012.05.04