옛글/번역본

    애자일 안드로이드 프로그래밍 - 1 시작하며

    Agile Android Software Development- Etienne Savard 애자일 안드로이드 프로그래밍에 대해 번역본입니다. 번역과 관련한 문의는 http://mnworld.co.kr 혹은 shakejj@gmail.com로 부탁드립니다. 해당 원본 E-Book 파일이 2015년 6월까지 계속 업데이트 되는 상황이라(현재는 pre-order로 원본 구독이 가능합니다), 챕터가 업데이트되면 번역을 업데이트 하도록 하겠습니다. 머리말 안드로이드는 실생활에서 수많은 기기에 탑재되어 다양한 목적으로 사용되고 있다. 구글은 웹 검색엔진회사에서 출발 해 다양한 분야(스마트폰, 음악, 책, 동영상 등)로 진화하고 있다. Android L의 릴리즈와 함께 TV와 웨어러블 분야까지 확장하고 있다. 수년 내..

    애자일 안드로이드 프로그래밍 - 2 기술에 대한 시각과 Agility

    Agile Android Software Development- Etienne Savard 애자일 안드로이드 프로그래밍에 대해 번역본입니다. 번역과 관련한 문의는 http://mnworld.co.kr 혹은 shakejj@gmail.com로 부탁드립니다. 해당 글은 퇴고와 내용이 지속적으로 추가 될 예정입니다. 1장 : 기술에 대한 시각과 Agility 이번 챕터에서는 몇 년간 끊임없이 진화하는 IT필드 속에서 일을 하며 경험한 팁과 방법을 알려 줄 것이다. 팀에 도움이 되는 툴에 대해서도 이야기 할 것이다. 이야기 할 팁과 툴들은 안드로이드와 관련된 프로젝트에 국한 되는 것이 아니다. IT와 관련 된 모든 업무 과정에서 사용 및 응용이 가능한 이야기다. 기술시장 관찰하기 IT 컨설턴트로써 일을 하며 배운..

    프로그래밍 Design Pattern 이해하기 - 10 스테이트 패턴

    스테이트 패턴 오늘은 실제로 사람들이 쓰는 기계를 자바로 만들어보려고 한다. gumball machine(우스꽝스러운 기기)를 생각보다 높은 기술력을 가지고 있다. gumball machine 이란 동전넣고 돌리면 껌이 나오는 기기다. 아래 다이어그램을 보자! 한글로 번역하면, 이것은 검볼머신 컨트롤로가 필요로 하는 다어그램이다. 우리는 미래에 어떤 행동이 추가 될것인지 미리 생각을 해야 한다. 그래서 최대한 유동적이고 유지가 쉽도록 구조를 만들어야 한다. 위를 잘보면 동전을 투입한 후, 손잡이를 돌린다. 돌리면, 알맹이가 있으면 판매를 하고 알맹이의 갯수를 확인한다. 알맹이의 갯수가 0이라면, 매진처리가 된다. 이 다이어그램은 스테이트 다이어그램으로 볼 수 있다. 각각의 동그라미가 State가 된다. ..

    프로그래밍 Design Pattern 이해하기 - 9 이터레이터 패턴 & 컴포지트 패턴 <2>

    저번 Iterator pattern에 이어 이번엔 컴포지트 패턴(Composite Pattern)이다. 맞다. 다른 패턴으로 문제를 푸는 방법에 대해 알아보려고 한다. Iterator도 문제법 중 하나이지만, 이제 이야기할 '컴포넌트 패턴'도 또다른 문제를 푸는 하나의 방법이다. 복합 패턴은 부분 - 전체 계층을 표현하기 위해 트리 구조로 개체를 구성 할 수 있습니다. 복합 클라이언트가 균일 개별 개체와 개체의 조성물을 처리 할 수 있습니다. The composite pattern allows you to compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individua..

    프로그래밍 Design Pattern 이해하기 - 8 템플릿메소드패턴

    템플릿 메소드 패턴 (Encapsulating Algorithms - 알고리즘의 캡슐화) 커피없이 못사는 사람들이 있다. 그러나 몇몇 사람들은 차 없이 못산다. 그것들의 공통점은 뭘까?바로 카페인이다! 티와 커피는 만들어지는 방법이 유사하다. 다음을 보자! 스타버즈 바리스타 트레이닝 메뉴얼이다. 커피를 만드는 방법- 물을 붓는다 - 커피를 뜨거운 물에 붓는다- 컵에 내린다- 설탕과 커피를 넣는다. 차를 만드는 방법- 물을 붓는다- 차를 뜨거운 물에 넣는다- 컵에 붓는다- 레몬을 첨가한다 Coffee 와 Tea Class들을 보자"coding baristar"를 해보자! 커피와 차를 만드는 코드들을 작성해본다. 이번엔 차를 만드는 클래스다 BeverageTest.java 를 보자 자 그런데 곰곰히 보니 두..

    프로그래밍 Design Pattern 이해하기 - 7 어댑터패턴&파사드패턴

    어댑터 패턴 & 퍼사드 패턴 만약 미국에서 만든 랩탑을 유럽에서 쓰려고 한다면, AC Power Adapter가 필요하다. 아답터가 어떤 역활을 하는지 우린 알고있다. 랩탑의 플러그와 유럽의 콘센트와 연결을 하기 위해 필요한 것이다. 코드 상에서 이 실제세계의 어댑터를 적용해보면, interface와 클라이언트단의 어떤 것과 연결을 해주는 것이다. 즉, 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환할 수 있다. OO Adapter(Object oriented adapter) 는 새로운 벤더클래스를 이미 구현되어 있는 곳에 붙일 때 사용된다. 어댑터는 클라이언트의 요청을 벤더클래스로 전달할 때 사용된다. 그렇게 되면, 기존에 있는 코드들은 수정을 하지 않아도 되며, 벤더클래..

    프로그래밍 Design Pattern 이해하기 - 6 커맨드 패턴

    커맨드 패턴 (캡슐화 호출) 이번 포스팅에서는 우리는 캡슐화를 호출하는 방식에 대해 배워본다. 요구사항을 받았다! "새로이 확장된 날씨 시스템에 대해 만들고 싶다. 우리는 Home Automation Remote Control을 구현하고 싶다. 그 중 리모컨을 만들고 싶다. 리모컨에는 일곱가지 기능이 들어있고 각각 온오프가 가능해야 한다. 그리고 각각의 기능은 다른 기기에 연결이 되어야 한다. 조명, 팬, 욕조, 오디오 등 각종 홈오토메이션 장비를 제어하기 위해 자바 API 클래스를 제공해주겠다. 그리고 리모컨 프로그래밍을 위한 API도 같이 만들어 달라" 라는 요구사항을 받게 되었다. 제공해준 vendor classes들을 보았다! vendor class들을 둘러보니, "on()", "off()" 메서..

    프로그래밍 Design Pattern 이해하기 - 4 팩토리 패턴

    팩토리 패턴 이번 시간엔 팩토리 패턴에 대해 알아보자. 이 한줄을 보자. MallardDuck을 Concreate Class라고 부른다. (abstract class를 상속받아 구체화된 객체를 Concreate class라고 부른다!) 위와같이 abstract class를 상속받아 서브클래싱을 하면, new MallardDuck();처럼. 이렇게 되면, runtime 도중에 Duck을 바꿀 수가 없게 된다. 쉽게 예를 들면 아래와 같이, 매번 상태에 따라 Duck을 바꿀 때 객체를 만들어야 하며, 수없이 많은 조건들이 생겨나게 된다! 이런 코드들이 많아지면, 앱을 유지보수하는데 굉장히 어려워지며 또한 잘못고쳤을 때 독립성이 유지되지 않아 에러가 많이 일어나게 된다. "new"의 잘못된 점은 무엇일까? 기..