전체 글 1274

사람이 최대한 관계를 유지할 수 있는 숫자는 150명이다. (Dunbar's law)

Dunbar’s law - 인간의 인맥은 150명 까지 가능하다. 조대협 (http://bcho.tistory.com) 어제 API 아카데미의 Amunsen의 강의중에, MSA 아키텍쳐에서 적절 팀 사이즈에 대해서 재미있는 학문적인 근거가 언급되어서 기록해놓는다. 던바의 법칙 (Dunbar’s law)이라는 건데, 던바는 옥스퍼드 대학의 인류학자로 인간의 사교성을 연구하던중, 인간이 맺을 수 있는 인간관계의 수에 대한 연구이다.http://terms.naver.com/entry.nhn?docId=2847498&cid=56774&categoryId=56774 이 연구에 따르면, 인간관계에 대해서 사람은 친밀도에 대해서 크게 4가지 단계로 인간관계가 분류된다.Intimate friends 5Trusted f..

비지니스 2016.02.25

MSA의 중복 개발에 대한 단상

MSA의 중복 개발에 대한 단상 조대협 (http://bcho.tistory.com) 어제 우연한 기회로, API Academy 세미나에 다녀왔습니다.발표자는 Mike Amundsen 이라는 분으로, CA의 API 아카데미의 일원이며, OReilly 출판사를 통해서 REST API에 대한 저서를 집필한 분이기도 합니다.http://www.oreilly.com/pub/au/1192 API 아카데미였지만, 결국 MSA와 조직 문화 소통으로 수렴되는 내용이었습니다만, MSA 에 관련하여 재미있는 접근이 있어서 남겨놓고자 합니다. 예로 든것중의 하나가 API를 외부용, 내부용, 그리고 특정한 파트너용 3가지로 나누어서 접근을 하였는데, 이 접근 방식보다 특이했던 것이 구현의 주체입니다. 일반적인 생각으로는 유사..

Hashtable의 이해와 구현 #1

해쉬 테이블의 이해와 구현 (Hashtable) 조대협 (http://bcho.tistory.com) 기본적인 해쉬 테이블에 대한 이해 해쉬 테이블은 Key에 Value를 저장하는 데이타 구조로, value := get(key)에 대한 기능이 매우매우 빠르게 작동한다. 개발자라면 자주 쓰는 데이타 구조지만, 실제로 어떻게 작동하는지에 대해서 정확하게 알고 있지는 모르는 경우가 많다. 이 글에서는 해쉬 테이블에 대한 기본적인 구조와, 구현 방식에 대해서 설명 하도록 한다. 해쉬 테이블의 기본적인 개념은 다음과 같다.이름을 키로, 전화 번호를 저장하는 해쉬 테이블 구조를 만든다고 하자. 전체 데이타 양을 16명이라고 가정하면 John Smith의 데이타를 저장할때, index = hash_function(“..

dynamic array resizing에 대해서.

알고리즘쪽을 파다보니 재미있는게, 예전에 알았던 자료 구조도 구현 방식등에 대해서 다시 되짚어 볼 수 있는게 좋은데. (그간 생각하던 구현 방식과 다른 방식도 종종 나와서.) 보통 메모리 문제 때문에 불확실한 데이타 크기를 가지는 데이타 구조는 LinkedList를 사용하는게 유리하다고 생각했는데, 내용중에, 배열을 사용하고, 배열이 다 차면 그크기를 늘리는 (새롭게 더 큰 배열을 만들어서 기존 배열 내용을 복사해서 대처 하는것) 방식 (Array Resize)를 봤다. 일반적인 방식이기는 하지만 메모리 소모량이나 배열 복사 속도 때문에 그다지 바람직하다고 생각 안하고 있었는데, JDK내의 Map 클래스의 구현 부분을 보니, 실제로 Map 클래스에서도 array resize를 사용하고 있다. (출처 : ..

알고리즘 관련 유용한 사이트 모음

튜토리얼 포인트자료 구조에 대한 설명과 코드들을 간략하게 잘 정리해 놓음http://www.tutorialspoint.com/data_structures_algorithms/binary_search_tree.htm 코세라 프린스턴 알고리즘 강의https://class.coursera.org/algs4partI-010 코세라 데이타 구조에 대한 강의 (그래프 구조에 대한 문제가 잘 정리되어 있음)https://class.coursera.org/algs4partI-010 알고리즘에 대한 일반적인 설명 (Algorithm 4th edition)http://algs4.cs.princeton.edu/ Octree와 QuadTree에 대한 설명 (게임에서의 응용)http://www.gamedev.net/page/r..

그래프 노드간 연결 파악을 위한 Dynamic Connectivity 알고리즘

동적 연결 알고리즘 (Dynamic Connectivity) 조대협 (http://bcho.tistory.com) 요즘 알고리즘이 대세라 기초를 다지는 차원에서 다시 알고리즘을 보고 있는데, 오늘은 동적 연결 알고리즘에 대해서 공부한 내용을 간략하게 정리해본다. 동적 연결 알고리즘은 노드끼리 연결이 되어 있는지를 찾는 알고리즘이다.각 도시간에 연결이 되어 있는지, SNS에서 친구끼리 서로 연결이 되어 있는지와 같은 연결성만을 판단한다. 예전에 이러한 문제를 그래프 형태의 자료구조를 이용해서 풀려고 했는데, 여기서 문제의 핵심은 노드 A와 B가 연결되었는지만 판단하면 된다. 즉 자료 구조상에서, 어떤 노드가 어떤 노드와 인접해 있는지등은 표시할 필요가 없다. 아래 그림을 보자, 아래 그림에서 1과 5는 연..

2016년 지켜 볼만한 기술 트랜드

2016년 기술 트랜드의 가장 핵심적인 단어는 “대중화”와 “속도” 가 아닌가 싶다.그간 뜬 구름 잡는 이야기로만 되어 왔던, 빅데이타와 클라우드 서비스의 활용이 훨씬 쉬워 지면서 서비스 개발안쪽으로 깊숙이 들어올 것으로 보인다. 주요 트랜드 변화 방향 빅데이타 기반 분석과 머신 러닝 서비스의 대중화 빅데이타 분석이나 머신 러닝은 하둡이나 스팍같은 고급 기술과 대규모 인프라 그리고 통계학적인 지식이 없이는 쉽게 접근할 수 없는 분야 였다. 그러나, 이러한 분석 및 머신 러닝 플랫폼들이 클라우드 서비스화가 되면서, 기초적인 통계학적인 지식만 있다면 누구나 쉽게 서비스에 적용할 수 있게 되었다. Mixpanel.com과 같은 서비스들이 대표적인 예인데, 여기에 가속을 붙이는 것이 광고나 서비스 플랫폼에서 무..

사람을 다루는 기본 테크닉 - 데일카네기의 인간관계론 중

사람을 다루는 기본 테크닉데일 카네기의 인간 관계론 중 서론 그간 처세술서나, 경영에 대한 서적을 많이 읽었는데, 근래에 “소프트 스킬”이라는 책을 읽다가 보니 이 책에서 다른 소프트 스킬에 대한 책을 소개하는데, “데일 카네기”의 “인간 관계론” 이라는 책이다.우연한 계기로 읽기 시작했는데, 거의 처세론에 관하여 원조격인 책이기도 하고, 거의 모든 내용들을 다 집대성 해놓은 느낌이라고나 할까?사실 처세술이나 인간관계론에 대한 책이나 글을 대부분 내용이 거기서 거기다. “칭찬을 해라. 상대방을 존중해라, 경청해라. 공감해라” 등등 처세술이나 인간 관계론에 대한 글을 읽다보면 대부분 비슷한 내용으로 수렴을 하게 되는데, 그럼에도 불구하고 그런 글들을 많이 읽어도 실천이 어려운것은 왜일까?이 책을 읽으면서 ..

모바일 앱 개발을 지원하는 - Twitter fabric overview

트위터 모바일 SDK 서비스 패브릭에 대한 소개 조대협 (http://bcho.tistory.com) 트위터에서는 2014년 부터, 모바일 생태계 지원을 위해서 다양한 기능을 제공하는 Fabric 서비스를 제공하고 있다. 데이타 분석 및 리포팅, 트위터 연동등 다양한 기능을 제공하고 있는데, 대략적인 프로덕트들에 대한 기능과 특징을 살펴보고자 한다. Crashlytics - Crash Reporting (https://fabric.io/kits/android/crashlytics) 모바일앱에 대한 크래쉬 내용에 대한 수집 및 분석 기능을 제공한다. 특이한 사항으로는 크래쉬 분석 뿐만 아니라, 베타 사용자나 테스터들에게 앱을 배포할 수 있는 기능을 제공하고 베타 테스트 사항을 추적할 수 있는 기능을 제공한..

모바일 데이타 분석 및 사용자 분석

쉽게 이해하는 모바일 데이타 분석 조대협(http://bcho.tistory.com) 모바일 서비스 비지니스를 진행함에 있어서 가장 중요한 것중 하나는 지표에 따른 의사 결정과 서비스 개선이다. 이를 위해서, 어떤 지표들이 필요한지 정의하고 어떻게 측정할지에 대한 정확한 이해가 필요한데, 이 글에서는 모바일 서비스 리포팅에 대해 어떤 지표가 있고 어떻게 활용해야 하는지, 그리고 이런 지표를 수집 분석하기 위한 도구들에 대해서 설명하도록 한다. 모바일 서비스에서 단계별 사용자 흐름 먼저 지표를 이해하기 전에, 사용자가 모바일 서비스 가입부터 사용에서 부터 이익을 내줄때 까지 어떤 흐름을 거치는지에 대해서 살펴볼 필요가 있다. 여러 글들이나 서비스들에서 다소 용어 차이는 있지만 대부분 아래와 같이 단계를 정..

MySQL 클러스터링을 위한 Galera Cluster

MySQL Galera Replication 조대협 (http://bcho.tistory.com) RDBMS 오픈소스 중에서 단연 가장 많이 사용되는 것은 MySQL인데, 근래에 웹 스케일이 커지면서, 단일 인스턴스로만 서비스가 불가능한 용량까지 가게 되서, 이 MySQL에 대한 클러스터링 스케일링에 대한 이슈가 많아졌다. 이에 Tungsten, MySQL Replication, NDB, Galera 등 다양한 클러스터링 방법이 있는데, 그중에서 갈레라 클러스터링 (Galera Clustering)에 대해서 간단하게 정리하고자 한다. MySQL Replication 갈레라 클러스터링을 이해하기에 앞서서 먼저 가장 널리(그리고 쉽게) 사용되는 MySQL Replication 방식에 대해서 알아보자. MyS..

아키텍쳐 2015.11.18

모바일 개발 트렌드

모바일 개발 트렌드에 대한 예측 조대협 (http://bcho.tistory.com) 시장 환경 2016년 모바일 개발 트렌드에 대해서 언급하기 앞서서 전체적인 모바일 비지니스 변화를 지켜볼 필요가 있다. 모바일 스타트업 중심의 개발 트랜드가 계속 여러 유니콘(실리콘 밸리에서 급속도로 성장하고 있는 스타트업)들의 실적 약화에도, 내년에도 변함없이 계속해서 스타트업 생태계는 확장이 되어갈 것이고, 그 중심에 모바일 앱이 있을 것 이라고 본다.많은 모바일 앱들은 톡톡 튀는 아이디어와 새로운 기술들로 무장한 스타트업을 중심으로 개발이 될것이라고 보는데, 모바일 스타트업의 특성상 필요한 몇가지 요구 사항이 있고, 이 요구 사항을 채워주는 기술 위주로 내년은 기술 트랜드가 발전하지 않을까 싶다. 모바일 중심의 스..

대용량 서비스의 트래픽을 줄이는 이미지 최적화 기술 Web-P

대용량 서비스의 트래픽을 줄이는 이미지 최적화 기술 Web-P 조대협 (http://bcho.tistory.com) 대용량 트래픽 서비스를 하다보면, 항상 고민하게 되는 것이 인프라 운영 비용에 대한 문제이다.특히 미디어 서비스의 경우, 네트워크 트래픽을 유발하는 이미지나 동영상에 대한 CDN과 네트워크 비용이 문제가 되고, 사용자 입장에서도 모바일 3G/LTE 망을 통해서 이미지나 동영상을 다운로드 받는 경우, 데이타 사용량에 실제로 연관이 되기 때문에 점점 더 멀티미디어 파일 포맷에 대한 용량 최적화가 문제로 대두 되고 있다. 그중에서, 이미지 압축 방식으로 GIF,JPEG/PNG을 대체할 이미지 포맷으로 BNG,구글 Web-P, Microsoft JPEG-X 등이 소개되고 있는데, 이 중에서 Web..

안드로이드 채팅 UI 만들기 #2 - 나인패치 이미지를 이용한 채팅 버블

안드로이드 채팅 UI 만들기 #2 나인패치 이미지를 이용한 채팅 버블 조대협 (http://bcho.tistory.com) 지난 글에서는 ListView를 이용하여 스크롤이 가능한 텍스트 기반의 간단한 채팅창을 만들어보았다.이번글에는 채팅 메세지에 이미지로 채팅 버블을 입히는 방법을 알아보도록 한다. 채팅 버블 이미지를 입히는 방법이나 원리는 간단한데, 채팅 메세지를 출력하는 TextView에 백그라운드이미지를 입혀서 출력하면 된다. 그런데 여기서 문제가 생기는데, 채팅 메세지 버블의 크기는 메세지의 글자수에 따라 가변적으로 변경되기 때문에, 일반적인 이미지를 백그라운드로 넣어서 가로로 늘이거나 줄이게 되면 채팅창이 이상하게 가로로 늘어날 수 가 있다.. (아래 그림에서 가로로 늘렸을때 말꼬리 부분 삼각..

안드로이드 채팅 UI 만들기 #1 - ListView를 이용한 채팅창 만들기

안드로이드에서 ListView를 이용한 채팅 UI 만들기 조대협 (http://bcho.tistory.com) 안드로이드 프로그래밍 기본 개념이 어느정도 잡혀가기 시작하니, 몬가 만들어봐야겠다는 생각이 들어서 생각하던중에 결론 낸것이, 간단한 채팅 서비스, 기존에 node.js 하면서 웹용 채팅을 만들어보기도 했고, 찾아보니, 안드로이드용 SocketIO 라이브러리도 잘되어 있어서 서버 연계도 어려울것이 없을것 같고, 또한 메세지가 왔을때 푸쉬 알림을 써야 하는 등 이것저것 실습이 될것 같아서, 결국은 채팅으로 정했다. 서버나 연계 코드 구현보다, 가장 어려운게 역시나 UI 디자인과 프로그래밍인데, 가장 쉬운 방법으로는 ListView를 사용하는 방법이 무난하다. (결국 코딩을 하고 나니 여러가지 한계를..

안드로이드 Fragment 이해하기

안드로이드 Fragement 이해하기 조대협 (http://bcho.tistory.com) 안드로이드에서 하나의 화면은 하나의 Activity로 대변된다.이러한 Activity를 View등을 이용해서 여러개로 쪼갤 수 있지만, 타블렛이나 팬블릿과 같이 스마트 폰과 다른 해상도를 사용할때 일일이 View를 다시 디자인 해야 하며, 또한 해당 화면 레이아웃이나 배치등을 다른 Activity에서 사용하고자 하면 매번 다시 만들어야 한다. 왼쪽은 타블렛 화면 레이아웃으로, 좌측에 메뉴와 오른쪽에 다른 형태의 컨텐츠가 나타난다.이를 스마트 폰에서 볼때는 화면이 작기 때문에, 한 화면에서는 메뉴를 출력하고, 메뉴를 클릭하면 컨텐츠 화면으로 이동하도록 하는 형태인데, 이를 그냥 각각 구현하려면, 각 Activity에..

안드로이드에서 동영상 재생하기

안드로이드에서 비디오 플레이 하기 조대협 (http://bcho.tistory.com) 동영상 서비스를 하다보니, 실제로 비디오 플레이어를 어떻게 구현하는 지가 궁금해서 찾아봤는데, 생각보다 안드로이드의 비디오 플레이어 구현은 간단해 보인다. 내부적으로 MediaPlayer라는 컴포넌트를 사용하는데, 이 MediaPlayer는 조금 더 미세한 컨트롤이 가능하고 이를 한단계 더 쌓아 놓은 VideoView라는 것이 사용방법이 쉽다. 또한 구버전의 안드로이드에서는 MediaPlayer 기능이 잘 작동하지 않는 부분이 있기 때문에, VideoView를 사용하는 것이 조금 더 안정적일 수 있다. 내장된 플레이어로 지원되는 프로토콜은 다음과 같다.•RTSP•HTTP/HTTPS Progressive Streamin..

조직 문화에 대한 메모

"권도균의 스타트업 경영" 중에서. 기업 문화란 무엇일까? 기업 문화는 규율의 성격을 갖는다. 상벌과 같은 조직 경험을 통해 구성원이 특정한 행동을 하도록 만드는 가치들의 모음이다.(중략).암묵적으로 규율화되어 조직 내에 뿌리내린 것이 훨씬 더 많다. 조직 문화란 “조직 구성원들로 하여금 다양한 상황에 대한 해석과 행위를 불러일으키는 조직 내에 공유된 정신적 가치” 라고 정의할 수 있다. 회사의 목표를 위해 조직원이 해야 할 일이 무엇인지 가르쳐 준다면 조직 문화는 그일을 기꺼이 수행하도록 동기를 부여하고 그가 헌신적으로 노력하게 한다. 그리고 갈림길에 섰을때 무엇을 선택해야 하는지 결정을 할 수 있도록 하는 것이 바로 조직의 정신이다.(중략)조직은 민감하기 때문이다. 그이야기가 꼭 사장의 입에서 나올 ..

사는 이야기 2015.09.25

SharedPreference를 이용한 데이타 저장 및 애플리케이션간 데이타 공유

SharedPreference를 이용한 데이타 저장 및 애플리케이션간 데이타 공유 조대협 (http://bcho.tistory.com) 안드로이드에서는 데이타를 저장할때 여러가지 방법을 사용할 수 있다.대표적인 방법으로는 일반적으로 파일을 생성해서 저장하는 방법, 그리고 안드로이드에 내장된 데이타 베이스인 SQLite 데이타 베이스를 활용하는 방법이외에 SharedPreference라는 클래스를 사용하여 데이타를 저장하는 방법이 있다. SharedPreference SharedPreference는 간단하게 Key/Value 형태로 데이타를 저장할 수 있는 데이타 구조로 내부적으로는 XML 파일로 저장이 된다. 사용법이 매우 간단해서 일반적인 설정값이나 세션 정보, 사용자 정보와 같은 값들을 저장하거나 주..

권도균의 스타트업 경영 수업 노트

요즘 팀 문화에 대한 관심이 많아서 경영과 변화 관리에 대한 책들을 보고 있는데, 대부분 큰틀은 린 스타트업 프레임웍과 유사하지만 군데군데 배워야할 내용들이 많다.몇 가지 다시 생각해야 하는 구절들을 정리해보면 다음과 같다. 권도균의 스타트업 경영 수업저자권도균 지음출판사로고폴리스 | 2015-08-05 출간카테고리경제/경영책소개스타트업 경영의 본질을 본격적으로 다룬 국내 최초 스타트업 경영... 엔지니어들을 많이 채용 한다고 해서,더 많은 일을 할 수 있는 것은 아닙니다. 때때로는 생산성이 떨어지는 일도 있지요. 끝나는 일보다 안 끝나는 일이 확실히 더 많아질겁니다. 그 이유는 바로, 아주 대단한 사람들이라도 실상은 포탄인 경우가 많기 때문입니다. 하지만 여러분의 회사에 필요한 것은 대포이죠. 대포를 ..

소프트웨어 마에스트로 과정에 대해서

공부좀 하고 그냥 자려다가, 소프트웨어 마에스트로 과정에 대한 기사와 글들이 올라오는 것을 보고 생각을 하다가 몇글자 올려놓고 잠자리에 들려고 한다. http://bizn.khan.co.kr/khan_art_view.html?artid=201509141126591&code=930100&med=khan에 보면 소프트웨어 마에스트로 과정이 세금낭비에 실패인양 하는 형태의 기사와 함께, 국정 감사등에서 소프트웨어 마에스트로 과정에 대한 네가티브한 이야기들이 올라오고 있는 것 같다. 물론 방만한 예산운영이 있었다면 분명히 고쳐져야할 일이겠지만, 제도나 프로그램에 대해서는 찬성하는 편이다.주위에 소프트웨어 마에스트로 과정의 창업자나 엔지니어가 있고, 이들을 멘토링 하는 사람들도 있고 얼마전에는 이 인원들의 우수성..

IT 이야기 2015.09.16

안드로이드 웹뷰(Webview)의 이해와 성능 최적화 방안

간단한 웹뷰 컴포넌트의 이해와 최적화조대협(http://bcho.tistory.com) 들어가기에 앞서서 이글은 안드로이드 프로그래밍 개발을 공부하면서 공부한 내용을 정리한 글입니다. 제가 아직 안드로이드에는 전문성이 없는 초보자 수준이기 때문에, 수준이 높지 않으니, 내용을 참고만 하시기를 바라며, 더 나은 프로그래밍 방법등이 있음을 미리 알려드립니다. Webview(웹뷰) 컴포넌트에 대해서 웹뷰는 안드로이드 프레임웍에 내장된 웹 브라우져 컴포넌트로 뷰(View)형태로 앱에 임베딩이 가능하다. 비교해서 생각하자면, 안드로이드 앱안에, HTML iframe을 넣어놓은 것이라고나 할까?단순하게, 웹 페이지를 보기위해도 사용하지만, 안드로이드 앱 안에서 HTML을 호출하여 앱을 구현하는 하이브리드 형태의 앱..

안드로이드에서 REST API 호출하기

REST API를 이용하여, 날씨를 조회하는 간단한 애플리케이션 만들기 조대협 (http://bcho.tistor 네트워크를 통한 REST API 호출 방법을 알아보기 위해서, 간단하게, 위도와 경도를 이용하여 온도를 조회해오는 간단한 애플리케이션을 만들어보자이 애플리케이션은 경도와 위도를 EditText 뷰를 통해서 입력 받아서 GETWEATHER라는 버튼을 누르면 네트워크를 통하여 REST API를 호출 하여, 날씨 정보를 받아오고, 해당 위치의 온도(화씨) 출력해주는 애플리케이션이다. 날씨 API 는 http://www.openweathermap.org/ 에서 제공하는데, 사용법이 매우 간단하고, 별도의 API인증 절차가 필요하지 않기 때문에 쉽게 사용할 수 있다. 사용 방법은 다음과 같이 쿼리 스..

Feature team에서 길드 모델을 이용한, 기술 거버넌스의 확보방안

Feature team에서 길드 모델을 이용한, 기술 거버넌스의 확보방안 조대협 (http://bcho.tistory.com) 지난번에 고민했던, Feature team model에 대해서 조금더 리서치를 해보니, 음원 서비스를 제공중인 Spotify가 이 모델을 조금 더 발전 시켜서 Squad & Tribe 라는 모델을 사용하고 있다. Feature team 모델의 문제점 중의 하나가, Feature 단위로 팀을 나누다 보니 발생하는 문제가, 같은 기술을 쓰는 엔지니어가 다른 팀에 속하기 때문에, 기술에 대한 통제(거버넌스)나 기술 교류가 약해질 수 있는 문제가 있다. 이러한 문제를 해결하는 방법으로는 길드의 개념을 사용한다.길드는 같은 기술을 사용하는 사람들의 모임으로, 기술적인 리더쉽을 위해서 각 ..

ALM/애자일 2015.09.14

애자일 팀 모델에 대하여

애자일 팀 발전 모델에 대하여Functional team, Product Team, Feature Team조대협 (http://bcho.tistory.com) 개요 관리자(CTO)역할을 맏으면서 가장 고민중에 있는 것 중 하나는 팀을 어떻게 모델하여 최적화된 개발팀 구조를 가지느냐 이다.근래의 개발팀의 모델은 애자일 사상에 영향을 받아서 작고, 독립적인 팀의 모델로 진화하고 있으며 대략적인 특징은 다음과 같다.· Self organized· Cross functional· 2 pizza team Cross functional 모델은, 하나의 팀 내에서 기획부터 디자인,개발 및 테스트를 모두 진행할 수 있는 팀 모델로 팀 안에 앱,프론트,백앤드 개발, 기획,테스터와 같은 모든 역할을 하나의 팀내에 모두 가..

ALM/애자일 2015.09.08

안드로이드 주요 레이아웃

안드로이드 주요 레이아웃 (메모) 원본 : https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821/m-1645248621 다른 종류의 레이아웃도 있으나 일반적으로 사용하는 레이아웃은 다음과 같다. FrameLayout : 보려는 항목이 하나만 있을 경우. (ListView 하나만 넣는 경우와 같은 케이스)LinearLayout : 수직 또는 수평으로 차례로 View를 출력할때RelativeLayout : 다른 View에 비한 상대적 위치를 표현하는 반응형 UI에 적합

안드로이드 기초 - 컴파일,설치,실행 (커맨드라인)

안드로이드에 애플리케이션 컴파일,설치해서 실행하기 (에뮬레이터 실행 포함) 조대협 (http://bcho.tistory.com) 다음은 개발된 애플리케이션을 단말이나 또는 에뮬레이터에서 실행하는 방법이다.이 방법은 안드로이드 스튜디오 1.2.2 을 맥북에 설치한 기준으로 설명한다.안드로이드 스튜디오 IDE가 좋아서, 필요는 없겠지만. 몰 하던간에 IDE 없이도 할 수 있는 방법이 있어야 하기에 테스트 해놓은 내용을 기록해놓는다. 1. 애플리케이션 컴파일 하기 디렉토리에서 ./gradlew assembleDebug명령을 실행하면, 디버깅 모드로 컴파일이 되고 apk 파일이 생성된다. 위와 같은 에러가 발생할 수 있는데, 이 경우는 ANDROID_HOME이 설정되지 않은 경우이다.~/bash_profile에..

안드로이드 리소스파일 (Resource)

안드로이드 리소스 파일 개요 조대협 (http://bcho.tistory.com) 안드로이드 프로젝트에서 소스 코드 이외에 이미지나 디자인 레이아웃등의 기타 리소스등을 코드와 분리해서 취급한다. 이렇게 리소스를 코드와 분리해서 사용하는 이유는, 조금 더 유연하게 애플리케이션을 개발하게 하기 위함이다. string과 같은 문자열을 별도의 리소스 파일에서 관리함으로써, 애플리케이션 수정 없이 string 리소스 파일에만 문자열을 추가함으로 간단하게 다국어를 지원할 수 있다. 리소스는 크게 7가지 타입의 리소스가 있고, “/res” 디렉토리에 저장된다. Layout Resource (뷰 리소스)애플리케이션 UI의 배치 에 대한 내용을 XML 형태로 정의하여 저장한다. res/layout 아래와 XML 형태로 ..