05. 협업
기존의 프로젝트를 다른사람과 협업하려할때 github에 있는 프로젝트를 다운받아야 된다. ※ 원격 저장소에 있는 프로젝트 로컬로 다운로드 받기(Clone/복제) ※ 협업시 소스를 수정하기 전에 해야할 사전작업 협..
키자드에 등록된 총 174개의 포스트를 확인하실 수 있습니다.
기존의 프로젝트를 다른사람과 협업하려할때 github에 있는 프로젝트를 다운받아야 된다. ※ 원격 저장소에 있는 프로젝트 로컬로 다운로드 받기(Clone/복제) ※ 협업시 소스를 수정하기 전에 해야할 사전작업 협..
※ 퀵 정렬(Quick Sort) - 기준값을 중심으로 왼쪽 부분집합과 오른쪽 부분집합으로 분할(divide) 한다. 왼쪽 부분집합에는 기준값보다 작은 원소들을 이동시키고, 오른쪽으로는 기준값보다 큰 원소들을 이동시킨..
※ 삽입정렬(Insert Sort) - 정렬되어 있는 부분집합에 정렬할 새로운 원소의 위치를 찾아 삽입하는 방법. - 앞부분은 Sorted/ 뒷부분은 Unsorted로 되어있다. - 즉 맨앞의 원소로 부터 시작하여 오른쪽원소와 비..
※ 셸 정렬(Shell Sort) - 일정한 간격(interval)으로 떨어져 있는 자료들끼리 크기를 비교하여 교환 - 일정한 간격(interval)은 원소의 개수/2 를 하고 비교가 끝난 후에는 다시 간격(interval)/2를 해서 간격이..
※ 병합정렬(Merge Sort) - 분할, 정복, 결합의 순서로 이루어 지는 정렬 - 분할(divide) : 2개의 부분집합으로 분할 - 정복(conquer) : 부분집합의 원소들을 정렬한다. 부분집합의 크기가 충분히 작지 않으면 다..
※ 기수정렬(Radix Sort) - 분배 방식의 정렬 방법 - 정렬할 원소의 키값에 해당하는 버킷(bucket)에 원소를 분배하였다가 버킷의 순서대로 원소를 꺼내는 방법을 반복 - 원소의 키를 표현하는 값의 기수(radix)만..
※ 힙 정렬(Heap Sort) - 힙 자료구조를 이용해 정렬하는 방법으로 정렬하려는 자료를 힙으로 만든 후 최대 힙이라면 제일 큰 수 부터 뒤에서 정렬하고 최소 힙이면 가장 작은 수 부터 앞으로 정렬시킨다. - 힙정..
※ 트리 정렬(TreeSort) - 트리 정렬은 이진 탐색 트리를 이용하여 정렬하는 방법 - 정렬할 원소들을 이진 탐색 트리로 구성하고 중위 순회 방법을 사용하여 이진 탐색 트리의 원소들을 순회하여 꺼내온다. TreeS..
※ 순차 검색(Sequential Search) - 일렬로 되어있는 자료를 처음부터 마지막까지 검색하는 방법 - 선형 검색(Linear Search)이라고도 한다. - 검색하는 양에 따라 효율이 달라진다. 자료의 양이 많아질수록 비효..
※ 이진 검색(Binary Search) - 가운데에 있는 항목을 키값과 비교하여 키값이 더크면 오른쪽을 검색하고, 키값이 더 작으면 왼쪽 부분을 검색하는 방법이다. - 가운데 값을 기준으로 왼쪽과 오른쪽의 두 부분으로..
※ 이진 트리 검색(Binary Tree Search) - 이진 트리 검색은 이진 탐색 트리를 이용하여 검색하는 방법이다. - 이진 트리는 루트 노드의 왼쪽에는 루트노드보다 작은값, 오른쪽에는 루트노드보다 큰 값으로 되어있..
※ 해싱(Hashing) - 해싱은 키값을 비교하여 검색하는 것이 아니라 산술적 연산을 이용하여 키가 있는 위치를 계산하여 바로 찾아가는 계산 방법이다. - 키값을 원소의 위치로 변환하는 함수를 해싱 함수(Hashing..
자바스크립트를 이용한 날짜 계산법이다. var sysDate= new Date(); //현재 날짜 및 시간 alert(new Date(Date.parse(sysDate) - N * 1000 * 60 * 60 * 24)); // N일 전 alert(new Date(Date.parse(sysDate) + M *..
※ 루퍼(Looper) - 메세지를 핸들러에게 전달해 주는 기계 - 메인 스레드에는 루퍼가 존재하지만 새 스레드에는 루퍼가 존재하지 않는다. 그렇기 때문에 만약 새 스레드에서 핸들러를 사용하려면 루퍼를 구현해줘..
※ 브로드캐스트 리시버란? - BroadCast를 받는 기능 - 시스템은 여러가지 상황에서 다양한 메세지를 방송한다(BroadCast). 예를 들어 베터리 부족, 전원 공급장치 변화 , 네트워크 환경 변화 등등.... 이러한 시..
※ Files 디렉토리를 이용한 I/O - 영구적으로 관리해야 하는 데이터가 있을 경우 안드로이드에서 제공하는 files 폴더를 이용하여 데이터 관리를 할 수 있다. - 오른쪽 위 + 버튼(open perspective)을 누른 후 DD..
※ SQLite - 안드로이드에서는 SQLite라는 경량급의 DB를 사용한다. 작은 디바이스에 최적회된 RDB로 기본적으로 안드로이드 프레임워크에 포함되어 있기 때문에 별도의 설치없이 사용할 수 있다. - 데이터베이스..
※ 맵을 이용하기 위한 설정 - 구글맵을 이용하기 위해서는 인증을 포함한 몇 가지 설정을 해야 한다. - 인증방법 Eclipse 실행 -> Widnow메뉴 -> Preferences -> Android -> Build -> SHA1 fingerprint의 값을 구..
※ HttpURLConnection - url을 통해 데이터를 읽어온다. - 메인스레드가 아닌 별도의 스레드를 만들어 그 부분에서 데이터 다운로드가 작동되도록 한다. 메인스레드에서는 사용자와의 교감을 지속적으로 해줘야함...
※ 앱 서명 - 앱의 마켓에 등록하기 위해서는 보안상의 이유로 앱을 서명해야 한다. - 앱마다 고유한 키값을 줘 다른 개발자가 나의 앱을 덮어쓰면서 배포하지 못하게함. - 키는 분실하면 추후 앱 업데이트가 안되..
요즘들어 부쩍 관리해야겠단 생각이 많이든다. 하루종일 멍때리면서 모니터를 봐서 그런지 얼굴이 흘러내리는 느낌도 종종들고 팔자주름도 한층 깊어졌다.... 한때 페북에서 한창 인기를 끌던 얼굴 어려지는 운동..
공공 데이터를 이용하여 버스 정보를 받아와 브라우저위에 뿌려주는 시스템으로 스프링 프레임워크와 네이버 지도 API를 사용하였다. 공공 데이터는 데이터는 컨트롤러 단에서 URL을 통하여 받아온 XML 값을 XPath..
※ 선택 정렬(Selection Sort) - 원소중 가장 작은 원소를 찾아 선택하여 첫번 째 원소와 교환한다. 그리고 두번째 작은 원소를 찾아 두번 째 자리의 원소와 교환한다. 이런식으로 길이 n인 배열의 n-1자리의 원소..
※ 버블 정렬(Bubble Sort) - 인접한 두개의 원소를 비교하여 자리를 교환하는 방식 ※ 구현 Main public class Main { public static void main(String[] args) { int a[] = {69,10,30,2,16,8,31,22}; BubbleSor..
※ 로그 사용법 - 로그창에서 내가 원하는 로그만 볼 수 있다. 특히 특정기능에 대한 로그만 알고싶다면 로그창에서 새로운 로그 태그를 만들어 놓으면 소스에서 로그 태그의 이름만 맞춰 준다면 LogCat창에서 해..
※ 인텐트란? - 액티비티 전환시 정보를 전달하기 위한 목적으로 만들어진 장치 - 인텐트를 이용하여 액티비티에서 웹사이트를 연결하거나 다른 어플을 실행하거나(ex 전화 다이얼, 전화 걸기, 연락처) 할 수 있다..
※ 프레그먼트란? - 프레그먼트는 일종의 뷰이다. 하지만 액티비티 처럼 생명주기가 있다. 즉 생명주기가 있는 뷰이다. - 아래 이미지에서 왼쪽 프레그먼트와 오른쪽 프레그먼트를 나눠놨다. 버튼을 누를때마다 각..
※ 액션바 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ 옵션메뉴 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ 액션바와 옵션메뉴 구현 MainActivity public class Ma..
※Alert Dialog ※ 구현 MainActivity public class MainActivity extends Activity { Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCo..
※ CustomLayoutDialog - 커스텀 뷰는 레이아웃 xml 파일을 만들어서 안드로이드 기본 Alert Dialog 틀에 안의 형식만 바꿔준다. ※ 구현 MainActivity public class MainActivity extends Activity { Button btn;..
※ ProgressBar ※ 구현 MainActivity public class MainActivity extends Activity { Button btn; ProgressDialog pd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn..
※ Notification ? - 안드로이드 폰 최상단(상태바)에 표시되는 메시지 이다. 대표적으로 Message, Missed Call 등이 있다. 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ 구현 MainActivity..
※ 알람의 종류 1회만 발생 주기적으로 발생(별도의 stop기능을 구현하지 않으면 지속적으로 울린다) ※ 구현 MainActivity public class MainActivity extends Activity { Button btnOneAlarm; Button btnCycleAl..
※ 멀티 스레드란? - 여러가지 일을 동시에 처리 할 수 있도록 해주는 것 - 실제로는 여러가지일을 동시에 하는 것이 아니라 여러가지 일을 왔다갔다 하면서 순서대로 해결하는 것이다. - 스레드에서는 UI 스레드..
※ 안드로이드란? 모바일 OS의 한 종류 ※ 안드로이드 시스템의 종류 모바일웹 : 모바일환경에 최적화된 웹사이트 (마켓에서 다운받는것이 아니라 URL로 접속) 네이티브 - 우리가 일반적으로 생각하는 앱 (마켓에..
※ 에뮬레이터(AVD) 만들기 perspective -> 자바 선택 -> Window -> Android Virtual Divice Manager 클릭 -> 원하는 디바이스 생성 ※ 새 프로젝트 만들기 마우스 오른쪽 클릭 -> new -> Android Application Pro..
※ 화면구성 요소 응용프로그램 - app프로그램 액티비티 - 한개의 화면 화면 뷰 - 액티비티안을 구성하는 하나의 요소 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 ※ 뷰에 대한 이해 뷰(View)..
※ RelativeLayout 위젯들 사이의 관계를 이용한 레이아웃 배치 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xml..
※ 커스텀 뷰? 레이아웃 뷰 그룹을 이용하지 않고 View클래스를 상속 받아 직접 뷰를 만들어 사용하는 것 사진출처 : 서울위즈 앱 창업자를 위한 안드로이드 실무 동영상 커스텀뷰 예제 소스 public class MainAc..
※ 어댑터 & 어댑터 뷰? - 어떤 데이터를 이용하여 리스트를 보여줄 때 안드로이드 에서는 어댑터 뷰를 이용해서 보여준다. 어댑터 뷰는 데이터와 어댑터를 연결해주는 역할을 한다. 사진출처 : 서울위즈 앱 창업..
※ 커스텀 뷰 - ListView를 구성하는 뷰를 개발자가 직접 만들어 사용한다. ※ 커스텀뷰 구현 소스 activity_main.xml (어댑터 뷰가 리스트를 보여줄 화면) <LinearLayout xmlns:android="http://schemas.android...
※ ListActivity - ListView를 포함하는 액티비티(화면)로 ListView를 생성하지 않고 Data와 Adapter만 있으면 리스트로 구현이 가능하다. 즉 layout을 만들지 않아도 리스트액티비티가 자동으로 생성이 된다는 말..
※ GridView - 데이터를 표형식으로 출력 MainActivity.java public class MainActivity extends ActionBarActivity { private int[] data = { R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_lau..
※ 이벤트와 리스너 - GUI(버튼,라디오박스 등등)를 활용하여 이벤트를 발생시키고, 이벤트가 발생했을 때 리스너를 통해기능을 구현한다. ※ 뷰의 콜백 메소드 이벤트 @Override protected void onCreate(Bundle..
※ 화면을 터치하여 앱의 기능을 구현해 보자 - 레이아웃에서 TextView나 Button 등은 모두 클래스이다. 그래서 우리가 CustomView 클래스를 만들어서 레이아웃에 적용시킬 수 있다(패키지명+클래스이름) 그렇기..
※ 액티비티란? - 하나의 화면(뷰와 뷰그룹을 포함시키고 있다) 액티비티가 모여 하나의 어플리케이션이 된다 ※ 액티비티 제작 과정 엑티비티 레이아웃 제작 ex)ActivityMain Activity를 상속받아 엑티비티 파일(..
※ 순차 자료구조 방식의 단점 사용 크기가 제한되어 있다.(큐의 크기를 마음대로 변경할 수 없다) 원소가 없어도 항상 처음 크기를 유지해야 된다(메모리 낭비가 생긴다) 이러한 문제를 해결하기 위해 연결 자료..
컴퓨터의 여러 분야에서 발생한 순서대로 문제를 해결해야 하는 경우 큐를 사용한다. 운영체제에서 실행을 요청한 작업들을 순서대로 처리하기 위해서 버퍼 큐와 프로세스 스케줄링 큐를 사용하고, 산업공학 등의..
리스트와 스택, 큐는 선의 형태로 나열되어 있는 구조를 가진 선형 자료구조(Linear Data Structure)였다. 선형이 아닌 자료구조를 비선형 자료구조라고 하는데, 트리(tree)는 비선형 자료구조 중에서 자료들 간의..
※ 이진 트리(Binary Tree) 모든 노드의 차수를 2 이하로 정의하여 전체 트리의 차수가 2 이하가 되도록 만든것. 이진 트리의 서브 트리들 역시 모두 이진 트리이다. 특정 노드를 기준으로 했을 때 왼쪽 트리 부..
※ 순차 자료구조 방식을 이용한 이진 트리 구현 - 노드번호를 배열의 인덱스로 사용하여 1차원 배열로 표현한다. 아래 그림에서 보듯 완전 이진 트리나 포화 이진트리가 아니면 메모리의 낭비가 생긴다. **인덱..
※ 이진 탐색 트리(Binary Search Tree) 란? - 이진 트리는 트리를 효율적으로 사용하기 위해 일정한 형태로 정의한 것. 탐색을 위한 자료구조로 이진 트리를 사용할 때 저장할 데이터의 크기에 따라 노드의 위치..
BinarySearchTree public class BinarySearchTree { private Node root; public BinarySearchTree() { // TODO Auto-generated constructor stub root=null; } public void insertBST(char data){ Node newNode =..
※ 힙(heap) - 완전 이진 트리에 있는 노드 중에서 키값이 가장 큰 노드나 키값이가장 작은 노드를 찾기 위해 만든 자료구조. - 키값이 가장 큰 노드를 찾기 위한 힙을 최대 힙(Max Heap) : 부모 노드의 키값 >=..
Main public class Main { public static void main(String[] args) { int n, item; MaxHeap h = new MaxHeap(); h.insertHeap(13); h.insertHeap(8); h.insertHeap(10); h.insertHeap(15); h.insertHeap(20); h.i..
※ 그래프란? - 연결되어있는 원소간의 관계를 표현하는 자료구조. - 그래프는 연결할 객체를 나타내는 정점(vector)과 객체를 연결하는 간선(edge)의 집합으로 구성된다. 그래프는 G = (V,E)로 정의하는데 V는 그..
※ 그래프의 구현 - 그래프를 구현하기 위해서는 정점에 대한 집합과 정점에 부속된 간선의 집합을 표현해야 한다. 순차 자료구조 방식을 이용하는 2차원 배열의 인접행렬 방법과 연결 자료구조 방식인 연결 리스..
※ 순회 종류 깊이 우선 탐색 너비 우선 탐색 ※ 깊이 우선 탐색(DFS, Depth Frist Search) - 한 방향으로 갈 수 있을 가장 먼 경로까지 깊이 탐색해가다가 더 이상 갈 곳이 없으면 가장 마지막에 만났던 갈림길..
※ 신장트리(Spanning Tree) - 무방향 그래프 G에서 n개의 모든 정점과 n-1개의 간선으로 만들어진 트리 - 연결 그래프에서 순회를 하면 n-1개의 간선을 이동하면서 모든 정점을 방문하게 되므로 신장 트리를 생성..
이 게시판은 개인적으로 안드로이드를 공부하고 정리한 내용을 작성한 것입니다. 서울위즈의 앱 창업자를 위한 안드로이드 실무 동영상을 보고 공부하였습니다. 잘못된 내용의 지적은 매우 감사드립니다.
※ 연결 자료구조 방식 순차 자료구조 방식에서의 연산 시간에 대한 문제와 저장 공간에 대한 문제를 개선한 자료 표현 방식 순차 자료구조 방식에서의 문제점이란? 1. 순차 자료구조에서 배열이 갖고 있는 메모리..
※ 전장에서 공부했든 연결리스트에 대한 기본 구조는 알고 있을 것이다. 노드를 만들 때 C에서는 link 부분을 포인터를 이용했지만 자바에서는 포인터대신 객체를 이용한다. ex) Node.link.link.link.link 의 방..
※ 원형 연결 리스트(Circular Linked List)란? 연결 리스트의 구조를 원형으로 만든것 -> 마지막 노드의 링크를 첫번째 노드에 걸어준다. 단순 연결 리스트는 이전 노드에 접근하려면 노드를 다시 처음부터 순회..
※ 이중 연결 리스트 단순 연결 리스트는 선행 노드에 접근하기가 어렵다. 그래서 이를 개선하기 위해 원형 연결 리스트를 구성했다. 하지만 원형 연결 리스트에서도 현재 노드의 선행 노드에 접근하기 위해서는..
※ 스택이란? 스택이란 자료구조는 top을 통해 자료가 순차적으로 쌓인다. 또한 top을 통해 순차적으로 출력된다. 그래서 가장 오래된 자료가 가장아래 쌓이고 가장 최신 자료가 제일 위에 쌓인다. 시간에 따라..
※ 스택의 구현 순차 자료구조를 이용한 방식 연결 자료구조를 이용한 방식 ※ 순차 자료구조를 통한 구현 차원 배열 stack[n]을 사용할 때 n이 스택의 크기가 되며 top이 n보다 클 수 없다. 스택에 원소가 쌓이는..
※ 순차 자료구조를 이용해 구현한 스택과 차이점 배열을 사용하여 구현하기는 쉽지만 물리적 크기가 고정되어 있는 배열을 사용하기 때문에 스택의 크기를 변경하기 어렵고 물리적인 공간 낭비가 생길 수 있다...
※ 역순 문자열 만들기 스택에 한 문자 단위로 잘라서 push했다가 pop을하면 문자열을 역으로 만들 수 있다. ※ 시스템 스택 프로그램 간의 호출과 복귀에 따른 수행 순서를 보면, 호출한 순서와 복귀하는 순서..
※ 큐란? 스택과 다르게 한쪽에선 삽입연산이 일어나고 한쪽에서는 삭제연산이 일어나는 선입선출(FIFO, First In First Out)의 자료구조. 한쪽은 프론트(front)로 정하여 삭제연산만 수행하고 한쪽은 리어(rear)..
※ 큐의 구현 배열을 사용하는 순차 자료구조 방식과 참조변수를 사용하는 연결 자료구조 방식이 있다. 초기 큐를 생성하면 rear와 front는 모두 -1이다. rear와 front 가 같으면 큐에는 값이 없는상태이다. 생성,..
이 게시판은 개인적으로 자료구조를 공부하고 정리한 내용을 작성한 것입니다. 한빛아카데미/이지영 저자의 자바로 배우는 쉬운 자료구조를 통해 공부하였습니다. 한번만 하고 끝낼건 아니라 공부한 내용은 지속적..
※ 데이터를 구조화 시키는 가장 기본적인 방법은 나열하는 것이다. 이렇게 나열한 목록을 리스트라 한다. 자료구조에서는 데이터를 구조화시키는 기본 표현 방식으로 순차 자료구조 방식과 연결 자료구조 방식이..
다항식이란? ex) P(x) = ax^n + bx^n-1 + cx^n-2 ..... zx^0 다항식을 선형리스트로 표현하려면 아래와 같은 형식으로 할 수 있다.<지수,계수>쌍을 2차원 배열에 저장한다. ex) P(x) = 3x^10 + 2x^3 - 6x + 7 [0]..