전체 글

rm -rf /
학습목표FIFO 방식으로 동작하는 큐의 개념을 이해한다.선형큐, 원형큐, 연결큐를 자바로 구현 할 수 있다.자바 Queue 클래스를 활용할 수 있다.데크(Deque) 자료구조를 활용할 수 있다.1. 큐(Queue) 개념큐는 대기 줄과 유사한 개념으로, 데이터의 제거는 항상 가장 앞에서 수행되고, 데이터의 삽입은 가장 뒤에서 수행되는 구조이다. 이러한 특성으로 큐는 선입선출(FIFO, First In First Out) 형태의 자료구조로 알려져 있다.스택은 한 쪽 방향에서만 입출력이 발생한다.2. 큐 구현큐는 구현하는 방법에 따라 선형 큐, 원형 큐, 연결 큐로 구분된다.선형 큐(Linear Queue)선형 큐는 배열을 선형으로 사용하여 큐를 구현한다. 삽입을 반복하면 rear 위치가 계속 늘어나고, 삭제..
학습목표스택 자료구조의 개념과 동작 방식을 이해한다.배열 스택과 연결리스트 스택을 구현할 수 있다.자바 Stack 클래스를 활용할 수 있다괄호쌍 체크, 중위식을 후위식 변환, 후위식 계산 등 스택 응용을 구현할 수 있다.1. 스택 개념스택(Stack)은 ‘더미’ 또는 ‘쌓아 올림’을 의미하는 용어로, 데이터를 쌓아 올리는 형태로 저장하고 있어, 데이터를 추출할 때는 맨 위에 있는 데이터를 먼저 꺼내는 형태이다. 따라서, 스택은 제일 마지막에 저장한 데이터를 제일 먼저 꺼내는 후입선출(LIFO, Last In First Out) 형태의 자료 구조이다.스택은 가장 마지막 데이터의 위치인 top에서 삽입이나 삭제가 발생하므로 구조적으로 한 쪽 방향에서만 입출력이 수행된다.스택의 동작(연산)삽입 연산 : pus..
학습목표연결리스트 개념과 기본 연산에 대해 익힌다.자바로 연결리스트 클래스 직접 구현할 수 있다.자바 LinkedList 클래스를 활용할 수 있다.다항식을 연결리스트로 표현할 수 있다.순차 리스트 : 데이터를 메모리 공간에 연속적으로 저장한다연결 리스트 : 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 포인터는 이전이나 다음 노드를 가리킴1. 연결리스트 개념연결리스트(Linked List)는 데이터의 집합을 저장하기 위해 사용되는 자료구조로, 순차리스트 방식에서의 삽입, 삭제 연산 시간 및 저장 공간의 문제를 개선한 자료구조이다. 원형 연결리스트는 단순 연결리스트에서 마지막 노드가 첫 번째 노드를 가리켜 원형 구조로 연결되어 있는 리스트이다. 원형 연결리스트에서는 현재 노드의 이전 ..
순차리스트 기본 개념을 익힌다. 자바 클래스로 순차리스트를 구현할 수 있다. 스마트 배열인 ArrayList 클래스를 사용할 수 있다. 다항식을 순차리스트로 표현할 수 있다.1. 순차리스트(Linear List) 개념리스트는 다음과 같이 순서가 있는 원소들의 집합으로 표현 가능List = (원소 1, 원소2, …. , 원소n)원소가 하나도 없는 리스트는 공백 리스트 (Empty List) 라고 한다.중간에 데이터를 삽입하게 되면 그 데이터 뒤쪽에 있는 데이터들에 접근을 할 때 넣은 데이터 만큼 쉬프트연산으로 접근을 하기 때문에 데이터를 넣을 수록 접근 시간이 늘어 날 수 밖에 없다빈자리를 만들기 위한 원소들의 이동 횟수는 (마지막 원소 인덱스 - 삽입할 자리 인덱스 + 1)빈자리를 채우기 위한 원소들의 ..
자료구조는 컴퓨터에 저장된 자료를 효율적으로 이용할 수 있도록 하는 방법이다. 자료구조를 배우기 전에 자료를 표현하는 방법을 익혀야 한다. 자바 프로그래밍에서 자료구조 활용 능력을 향상시키기 위해 알아보자 일반적인 자료구조 서적에서는 추상자료형(ADT)을 이용하여 자료를 표기하지만, 여기에서는 자바의 자료형을 사용하여 자료를 표기한다. 자바의 자료형에 대해 살펴보자 1. 자바 자료형자바의 자료형은 크게 기본 자료형(Primitive Type)과 참조 자료형(Reference Type)으로 구분된다.자바 정수형 자료형의 최대값과 최소값을 출력하는 예제이다.public class MyIntTypeTest { public static void main(String[] args){ // byte형 System...
Http 통신용 라이브러리라이브러리 없이 http 통신을 구현할 경우 코드가 매우 길어지며 반복적인 코드를 작성해야 한다.일반적으로 Java로 하면 InputStream을 열어서 while문을 돌면서 1바이트씩 처리해야한다..Retrofit2 : Square 사에서 개발. 기존 개발한 OkHttp 라이브러리를 기반으로 사용성을 보강했음.JVM 기반 Client 라이브러리. Java 기반의 모든 프로젝트에서 사용 가능.https://square.github.io/retrofit/Ktor: Jetbrain 에서 배포한 Kotlin 언어 전용 라이브러리.Client, Server 모두 구현 가능https://ktor.io/Http 통신에서 주의 할점서버와의 통신은 응답 시간을 예측할 수 없다서버와의 통신은 비..
Fragment + Navigation Fragment + ViewModelFragmenthttps://developer.android.com/guide/fragments앱에서 사용하는 UI를 재사용할 수 있도록 해 주는 클래스자체의 코드와 레이아웃을 가지고 수명 주기를 가지고 있음.Activity와의 관계Android Application Component는 아니기 때문에 독립적으로 존재할 수는 없음. → Activity 또는 다른 Fragment에서 불러써야 함.하나의 Activity에 여러 개의 Fragment를 사용할 수 있음. → 회원가입 시 아이디 비밀번호만 입력받고, 그 다음에 여러가지 정보를 입력하는 화면으로 이동 그러한 형태로 사용할 수 도 있음Activity는 STARTED 수명주기일 ..
새 프로젝트 생성이름: Find me패키지: com.example.findmeEmptyViewsActivity로 생성하고 모듈 build.gradle.kts에 View Binding 적용생성된 MainActivity에도 ViewBinding 적용Android application의 권한Application이 제한된 데이터에 접근하거나 제한된 동작을 해야 하는 경우 권한 (Permission)을 획득해야 한다.단, 묵시적 Intent를 이용해 다른 앱을 통해 해당 동작을 할 경우 권한 요청은 해당 앱이 처리해야 하며 내 앱이 직접 권한을 얻을 필요는 없다.내 어플에서 카메라 권한을 받지않고 설치되어져 있는 카메라 어플은 이미 “카메라”권한을 받았기 때문에 해당 어플에게 요청을 하고 나는 받기만 하면된다.사..
Future0_
Luna Developer Blog