목록Programming (41)
MyCloud
변수에 담겨진 데이터는 하나의 데이터유형을 하나만 보관할 수 있습니다. 하지만 배열은 하나의 데이터유형을 여러개 보관할 수 있습니다. 각 요소들은 정수형 인덱스로 접근가능하며 다양하게 활용할 수 있습니다. 리스트는 순서를 가진 항목들의 모임입니다. 일반적으로 리스트는 배열리스트와 연결리스트로 표현되는데 배열리스트는 크기가 제한되므로 삽입, 삭제 시 범위를 넘어가는 문제가 생깁니다. 반면 연결리스트는 크기가 제한되지 않아 삽입, 삭제가 효율적입니다. + 추가 (ArrayList와 Vector의 차이)기능적 측면에서 보면 ArrayList와 Vector의 차이는 거의 없습니다.하지만 Java API 문서에 따르면, ArrayList에는 다음과 같이 정의되어 있습니다."This implementation is..
* 본 포스팅은 Java Standard Ed.8 version을 기준으로 작성되었습니다. JAVA Collectionjava.util.AbstractCollection JAVA의 Collection은 데이터의 모임을 의미하는 인터페이스입니다.java.util 패키지에 존재하며 Iterable 인터페이스를 상속받습니다. Collection 인터페이스는 List, Queue, Set 인터페이스를 자식으로 가집니다.List에는 ArrayList, LinkedList, VectorQueue에는 PriorityQueue, DequeSet에는 HashSet, LinkedHashSet, TreeSet이 있습니다. List는 중복을 허용하고 순서를 가지는 경우에,Queue는 선입선출(FIFO) 구조가 필요할 때,Se..
공간복잡도 (Space Complexity) 효율적인 알고리즘을 판단하는 기준에는 공간복잡도와 시간 복잡도가 있습니다.공간복잡도는 메모리를 얼마나 사용하는지에 관한 복잡도(RAM 사용량)입니다.하지만 최근 대용량 컴퓨터가 많아짐에 따라 중요성이 많이 떨어졌습니다. 시간복잡도 (Time Complexity) 시간복잡도는 시간이 얼마나 걸리느냐에 관한 복잡도(CPU 사용량)입니다.시간복잡도는 명령어들이 몇번이나 실행됬는지, 실행시간을 곱한 합계로 구할 수 있습니다.최상의 경우, 최악의 경우, 평균 시간에 따라 3가지 경우로 표기되며,표기법으로 빅오 표기법(최악의 경우), 오메가 표기법(최상의 경우), 세타 표기법(평균의 경우)이 존재합니다. 빅오 표기법은 최악의 경우(Worst Case)를 나타내는 표기법으..
선형 자료구조 (Linear) 선형 자료구조란 하나의 자료 뒤에 하나의 자료가 존재하는 것입니다. 배열과 리스트가 대표적이고 더 나아가서 스택, 큐도 이에 해당합니다. 비선형 자료구조 (NonLinear) 비선형 자료구조란 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 것입니다. 트리와 그래프가 대표적이며 계층적 구조를 나타내기에 적절합니다.
자료구조와 알고리즘 대부분의 프로그램은 다양하고 많은 양의 자료(Data)를 처리합니다. 이러한 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법을 자료구조라고 합니다! 또한 자료를 이용하여 주어진 문제를 처리하는 절차를 알고리즘이라고 합니다. 따라서 일반적인 프로그램은 자료구조와 알고리즘으로 구성되어 있습니다. 흔히쓰는 지도어플을 예로 들어보면 위도와 경도(자료)를 저장하고 최단거리 알고리즘을 사용한 어플리케이션입니다. 자료구조를 왜 배워야 할까? 자료구조에는 여러 종류가 잇고 각각의 자료구조는 각자의 연산, 목적이 있습니다. 따라서 다양한 프로그램을 설계할 때, 어떤 자료구조를 선택할지가 우선입니다. 선택되는 자료구조에 따라 프로그램의 성능이 달라지기 때문에 중요한 것이죠. 또한 잘 선택한 ..
안드로이드 앱의 모든 유저 인터페이스(UI) 요소들은 View와 ViewGroup 객체들을 기반으로 합니다.View는 화면의 사각형 영역에 있는 컨텐츠나 화면 레이아웃을 담당하며ViewGroup은 각 View들을 합쳐 화면 전체 레이아웃을 그려냅니다. 안드로이드의 UI 컴포넌트 안드로이드 UI 컴포넌트에는 레이아웃 컴포넌트와 컨트롤 요소들이 있습니다.레이아웃은 사용자 인터페이스에 대한 시각적 구조를 말합니다.액티비티 또는 위젯에 대한 큰 틀이 정의되며, 여러 속성과 매개변수를 정의할 수 있습니다.레이아웃 컴포넌트는 LinearLayout, RelativeLayout, GridLayout 등이 해당됩니다. 컨트롤 요소(UI Control)는 사용자 인터페이스에 있는 대화형 구성 요소입니다.버튼, 확인란과 ..
안드로이드 어플리케이션은 4대 컴포넌트(component)로 구성되어 있습니다. 안드로이드 4대 컴포넌트는 액티비티(Activity), 서비스(Services), 방송 수신자(Broadcast receiver), 콘텐츠 제공자(Content provider) 입니다. 안드로이드 개발은 4대 컴포넌트를 상속받아 정의된 함수들을 override해서 구현하는 경우가 대부분입니다. 액티비티 (Activity) 액티비티는 사용자 인터페이스 화면을 말하며 특정 작업을 담당하는 컴포넌트입니다. 여기서 특정 작업이라는 말은 UI를 화면에 나타내고 사용자 터치 등의 event를 입력받는 작업을 말합니다.액티비티마다 화면을 가득 채우는 창이 하나씩 주어지며 작은 창으로 만들어 다른 창 위에 띄울 수도 있습니다.액티비티를 ..
안드로이드 공부를 위한 사이트 소개 초보자를 위해 안드로이드 공부에 도움이 될 만한 공식 사이트를 정리해보았습니다. 1Android API Reference http://developer.android.com/intl/ko/reference/packages.html 새로운 언어를 공부할 때 항상 API reference를 통해 어떤 클래스, 어떤 함수가 있는지 찾아보게 됩니다.안드로이드에서 사용되는 모든 API가 있으니 모를 때 찾아보면 도움이 될 것 같습니다! 2Google Android Developer http://developer.android.com/intl/ko/index.html 구글에서 공식으로 지원하는 안드로이드 개발자 페이지입니다. 안드로이드 기본개념부터 시작해서 디자인, 개발 등을 공..
안드로이드 스튜디오 2.0 현재 사용하고 있는 안드로이드 스튜디오는 CPU로 너무 많이 잡아먹고앱 빌드, 배포속도가 너무 느려 사용하는데 불편함이 많았습니다...하지만 드디어!! 구글에서 안드로이드 스튜디오 2.0 버전을 미리 공개했습니다.안드로이드 6.0 마시멜로 버전으로 어플을 개발할 때 이전 안드로이드 스튜디오에 비해50배 이상!!! 개발속도가 빨라질 것이라고 합니다. http://googledevkr.blogspot.kr/2016/01/20.html 빌드 및 배포 속도 개선 즉시 실행 기능은 기기나 에뮬레이터에서 실행되고 있는 변경을 빠르게 확인할 수 있도록 해줍니다 ! 보통 때처럼 실행(Run)을 선택하면 정상적인 컴파일, 패키징 및 설치 단계를 수행하여기기나 에뮬레이터에서 앱을 실행합니다. 이..
프로젝트 이름 변경 가끔은 처음에 프로젝트를 만들때 이름을 잘못입력하여 패키지 이름을 수정하고 싶을때가 있습니다. 그럴땐 삭제하고 다시만드는 것이 아니라 안드로이드 스튜디오 내에서 패키지 이름을 수정하면 됩니다! 1. 우선 패키지의 최상위폴더에 마우스 우클릭하여 Refactor - Rename 을 클릭합니다. 2. Rename Module 에서 원하는 패키지명으로 수정해주시면 됩니다. 3. 마지막으로 오류가 있다면 Manifest.xml 파일에서 Package, android:name 부분을 확인해주세요!