얼마전 Android Studio 3.0 부터는 Kotlin이 정식 지원된다고 듣게 되었다. 오래 전부터 오라클과 자바 저작권으로 투닥투닥 하고 있는 구글... 때문에 구글이 아예 자바를 버리고 새로운 언어를 만들 것이다! 라는 의견도 꾸준히 있어왔다. 그러한 시점에 스튜디오에서 코틀린을 정식 지원 한다하니 안드로이드 개발을 업에 두고 있는 한 명으로서 꽤나 관심이 드는게 사실이다. 모 이런저런 이유로 코틀린이나 한 번 해보려 한다. 과연 코틀린은 어떤 비전을 갖고 나에게 새로운 무언가를 제공해줄지 들여다 보자. - 시작 코틀린은 재밌게도 우리에게 IntelliJ, Android Studio, WebStorm, Pycharm... ( 더 많은데... 일단 써본건 이 정도?..) 등의 개발사로 유명한 Je..
try - catch - finally1234567891011121314151617181920212223242526public class TryCatchFinal { public static void main(String[] args) { try{ System.out.println("before drive"); drive(); System.out.println("after drive"); } catch(CustomException e){ System.out.println("catch"); } finally { System.out.println("final"); } } public static void drive() throws CustomException { System.out.println("befor..
public class Threadextends Objectimplements Runnable All implemented Interfaces : Runnable Direct Known Subclasses : ForkJoinWorkerThread JVM은 멀티쓰레딩을 지원. 모든 쓰레드에는 priority가 존재. 높을수록 우선순위가 높음. 코드 상에서 쓰레드 객체가 생성되면 생성이 수행된 해당 쓰레드의 priority를 초기값으로 받음. 데몬 쓰레드에서 생성된 클래스는 데몬쓰레드가 됨. JVM이 시작될때 보통 main으로 알려진 하나의 데몬이 아닌 싱글 쓰레드가 존재. JVM은 다음과 같은 경우 중 하나가 발생할 때까지 main쓰레드를 계속 수행. 1. java.lang.Runtime 클래스의 exit..
자바 1.8버전 부터는 default라는 키워드로 인터페이스에서 메소드의 구현이 가능하다. 이 때 궁금한 점은 원래 클래스는 다중 상속을 구현시 다이아몬드 패턴의 문제가 생겨 다중 상속 자체를 금지했는데, 인터페이스가 이를 허용하면 이 문제를 해결한건지 궁금하다. 일단 위의 코드처럼 default 키워드를 사용하면 함수 구현이 가능. 궁금했던 다이아몬드 패턴은 컴파일 에러로 막아뒀다. default 말고도 하나 방법이 더 있다. static 키워드이다.static으로 함수를 선언하면 인터페이스 내부에서 함수 구현이 가능하다.하지만 이 경우 인터페이스 객체를 생성해도 사용이 불가능하고 전역 호출로만 사용이 가능하다.
[DesignPattern] 2. Observer Pattern에 대한 고민 Observer Pattern이란? 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다.- 출처 : 위키피디아 - 결국은 Observer Pattern은 중심 객체에서 여러 객체들을 한번에 관리하는데 사용하는걸 말합니다. 이렇게 함으로서 한번에 모든 객체에게 상태 변화를 알려 줄 수 있습니다. 왜 Observer 라고 이름 붙였을까? Observer의 사전..
노드 js를 처음 접하면서 간단한 tcp 채팅을 구현하곤 한다. 노드가 제공하는 모듈을 사용하면 매우 간단하게 멀티채팅을 구현할 수 있기 때문이 아닌가 싶다. 하지만 주의해야 할 점은 윈도우에서 텔넷을 사용해 채팅을 시도할 때다. 정확한 이유는 모르겠지만 윈도우가 제공하는 텔넷은 문자를 입력 받을 때 마다 바로 이벤트가 처리되면서 상대방에게 전달된다. 옵션으로 들어가 강제로 문장을 서버로 보내는 경우에는 제대로 전달되었지만 본래 머릿 속으로 그리던 채팅 프로그램이 아니게 되버린다. 실제로 보면 다음과 같다. 재밌는 점은 리눅스에서는 전혀 문제없이 잘 구동된다는 점이다. 아마 텔넷 프로그래밍 소스가 좀 다르게 구현된 것 같다. 그렇다고 방법이 없는 것은 아니다.인터넷을 좀 뒤져봤더니 텔넷을 대체 할 수 있..
지난번에 그램에 우분투를 까는걸 주제로 포스팅을 한적이 있다.사실 별 생각없이 일기식으로 포스팅한 것인데 생각보다 많은 사람이 관심을 갖고 들어와서 조금 놀랐다.그런데 정작 포스팅 내용은 제대로 된 해결책도 없고 들어온 분들께 죄송스런 마음이 생기더라는...그래서 이번엔 좀 제대로 도전해보고 관련내용을 포스팅 해보려한다.그럼 시작! 지난 포스팅에서도 밝혔듯이 내가 갖고 있는 LG 그램 13ZD940-GX50K에 우분투를 깔 경우 몇 가지 문제가 발생한다. 첫번째는 그래픽 문제이다. 구 버전의 우분투를 설치할 경우 설치화면부터 화면이 여러줄로 나뉘어져 보인다. 이는 신버전의 리눅스 커널에서 사용하는 그래픽 가속 효과를 제대로 그램이 지원하지 못하는 것 같다. nomodest나 호환성모드 등으로 임시적인 해..
[DesignPattern] 1. Strategy Pattern에 대한 고민 오늘은 Strategy Pattern에 대해 고민을 해보았습니다. 일단 왜 이 패턴을 사람들은 Strategy Pattern이라고 부를까요? 단순히 영어를 해석해보면 계획, 전략 정도가 되지 않을까 싶습니다.그렇다면 이 패턴은 어떠한 계획 혹은 전략을 담고 있는 패턴일까요? 위키피디아에서 이 패턴을 검색해보면 다음과 같이 정의합니다. In computer programming, the strategy pattern (also known as the policy pattern) is a software design pattern that enables an algorithm's behavior to be selected at ru..