728x90
반응형

분류 전체보기 328

Java란?

자바 Java란? Sun Microsystems에서 개발해서 1996년에 공식적으로 발표된 객체지향 프로그래밍 언어입니다. 운영체제에 독립적이라는 장점으로 인해 다양한 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합한 언어입니다. 객체지향과 C++의 장점을 채택하는 동시에 비교적 배우기 쉽고 간결하다는 장점이 있습니다. 풍부한 클래스 라이브러리를 제공하며, 현재에도 꾸준히 성능을 개선하여 새로운 버전을 발표하고 있습니다. 자바 언어의 특징 운영체제에 독립적입니다. 자바로 작성된 프로그램은 자바가상머신(JVM, Java Virtual Machine)에서 실행되기 때문에, 프로그램이 운영체제와 직접적으로 통신하지 않습니다. JVM이 자바 응용프로그램으로부터 전달받은 명령을 운영체제가 이해할 수 있도록 변환하..

Java 2022.05.19

맵 Map과 해시 Hash

맵 Map 자료구조란? 저장된 데이터가 키 key와 값 value로 하나의 쌍을 이루는 자료구조를 말합니다. 키가 존재하지 않는 값은 저장할 수 없으며, 모든 키는 중복되지 않습니다. 키를 통해 값을 바로 구할 수 있으므로 데이터를 검색하는데 O(1)의 시간복잡도가 소요됩니다. 배열을 기반으로 하는 Map 배열을 기반으로 맵을 구현하면 index 값으로 데이터를 저장 및 검색이 가능하므로 O(1)이 소요됩니다. 그러나 배열은 컴파일 이전에 크기를 정해줘야 하므로 배열 사이즈를 넘어가는 key 값은 사용할 수 없는 문제가 있습니다. 즉, key값의 범위가 배열 사이즈를 초과하는 경우 수용할 수 없습니다. 이러한 문제를 해결하기 위해 나온 자료구조가 해쉬 테이블 Hash Table입니다. 해시 테이블 Has..

[이미지 처리] Glide 라이브러리

Glide 라이브러리란? Bump라는 앱에서 내부적으로 이용하다가 구글이 인수해서 공개한 라이브러리입니다. 모든 종류의 이미지를 가능한 한 빠르게 가져와서 이용할 수 있도록 합니다. 이미지의 크기 조정, 로딩 이미지, 오류 이미지 표시 등을 쉽게 구현도록 지원합니다. 서버에서 이미지를 내려받을 때 Volley나 Retrofit보다 더 빠르게 처리합니다. 라이브러리 등록 dependencies { ... implementation 'com.github.bumptech.glide:glide:4.12.0' } 이미지를 가져와서 출력하기 //리소스 이미지 출력 Glide.with(this) .load(R.drawable.seoul) .into(binding.resultView) //서버 이미지 출력 Glide...

Android/Study 2022.05.18

[HTTP 통신] REST(Representational State Transfer)

REST(Representational State Transfer)란? HTTP 프로토콜 기반으로 URI를 통해 자원을 명시하고 HTTP Method(GET, POST, PUT, DELETE, HEAD)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미합니다. 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐입니다. 이미지, 텍스트, DB 내용 등 모든 자원에 고유한 ID인 HTTP URI를 부여하기 때문에 URI만 보고도 Client와 Server가 어떤 자원을 요청하고 있는지를 직관적으로 알 수 있습니다. 장점 HTTP 프로토콜의 인프..

Android/Study 2022.05.18

[HTTP 통신] Volley와 Retrofit2 라이브러리

Volley와 Retrofit2는 안드로이드에서 네트워킹을 돕는 라이브러리입니다. 기본적으로 HTTP 통신을 위해 매니페스트에 인터넷 권한을 추가해줘야 합니다. 1. Volley 라이브러리 Volley는 2013년 구글 IO 행사에서 공개된 라이브러리로, 안드로이드 앱의 네트워킹을 더 쉽고 빠르게 해주는 라이브러리입니다. UI를 채우기 위해 필요한 RPC(Remote Procedure call) 유형의 작업을 할 때 유용합니다. String, 이미지, JSON 타입을 사용할 수 있습니다. 기본적으로 HTTP Client는 HttpURLConnection입니다. * RPC(Remote Procedure call) 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간서 함수나 프로시저를 실행할 수 있게하는 프..

Android/Study 2022.05.17

[비선형 구조] 그래프 Graph

그래프 Graph란? 간선 Edge과 정점 Vertex으로 이루어진 자료구조이며, 정점 간의 관계를 표현하는 조직도입니다. 정점에는 데이터가 저장되며, 간선을 통해 정점과 정점 사이의 관계를 알 수 있습니다. 그래프 용어 정점(Vertex, 노드 Node): 데이터가 저장됨 간선(Edge, 링크 Link): 정점들을 연결하는 선, 정점과 정점 사이의 관계를 표현 인접 정점(Adjacent Vertex): 간선에 의해 연결된 정점(6과 4는 서로 인접 정점임) 차수(Degree): 무방향 그래프에서 각 정점에 연결된 Edge의 개수(5의 차수는 3) 진출 차수(Out-degree): 방향 그래프에서 각 정점으로부터 나가는 간선의 개수 진입 차수(In-degree): 방향 그래프에서 각 정점으로 들어오는 간..

[비선형 구조] 트리 Tree

트리 Tree란? 계층적 관계(Hierarchical Relationship), 부모-자식 관계를 표현하는 비선형 자료구조입니다. 트리는 사이클이 없고, 서로 다른 두 노드를 잇는 길이 하나인 그래프의 일종입니다. 컴퓨터의 Directory 구조, 조직도, 족보 등이 트리의 대표적인 예입니다. 트리 구성요소 노드 Node: 트리를 구성하고 있는 각각의 요소 간선 Edge: 트리를 구성하기 위해 노드와 노드를 연결하는 선, 노드가 N개이면 간선은 N-1개를 가짐 루트 노드 Root Node: 트리 구조에서 최상위에 있는 노드 단말 노드 Terminal Node(외부 노드 External Node, Leaf Node): 자식 노드가 없는 노드 내부 노드 Internal Node(비단말 노드): 하나 이상의 ..

[선형 구조] 스택과 큐

스택 Stack 나중에 들어간 원소가 먼저 나오는 후입선출, Last In First Out(LIFO)의 선형 자료구조입니다. 접시처럼 차곡차곡 쌓이는 구조로 데이터를 삽입하면 Top에 위치하며, Pop 연산을 할 때 Top에 위치한 데이터가 빠져 나옵니다. 데이터의 삽입/삭제는 O(1)의 시간복잡도가 소요됩니다. 스택의 활용 웹 브라우저 방문기록(뒤로가기): 가장 나중에 열린 페이지부터 다시 보여줌 연산자 후위 표기법 계산 수식의 괄호 검사: 연산자 우선순위 표현을 위한 괄호 검사 프로그램에서의 시스템 스택 실행 취소(Undo): 가장 나중에 실행된 것부터 실행을 취소함 역순 문자열 만들기: 가장 나중에 입력된 문자부터 출력 안드로이드의 액티비티: 사용자의 동작으로 인해 새로운 화면이 띄워지면 Push..

프로세스와 쓰레드

1. 프로세스와 쓰레드의 정의 프로세스 Process 프로세스는 실행 중인 프로그램을 말하며, 운영체제 입장에서의 작업 단위입니다. 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말합니다. 운영체제는 프로세스에 스택, 힙, 데이터 영역, 코드 영역을 할당합니다. * 프로세스의 생성 프로그램이 CPU에 의해 실행된다. 프로세스가 생성되고 메모리에 프로세스 주소 공간(코드, 데이터, 스택 영역)이 할당된다. 이 프로세스의 메타데이터가 PCB에 저장된다. * 프로그램과 프로세스 프로그램은 어떤 데이터를 사용하여 어떤 작업을 할지 그 절차를 적어놓은 것으로, 하드디스크 같은 저장장치에 저장되어 있는 정적의 상태입니다. 프로세스는 프로그램 실행을 위해 메모리에 적재한 동적인 상태로 운영체제로부..

Level 3 블록 이동하기 <2020 KAKAO BLIND RECRUITMENT> Python 3

https://programmers.co.kr/learn/courses/30/lessons/60063?language=python3 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 최종 코드 Github -> https://github.com/hwayeon351/Programmers-Algorithms/blob/main/level3_블록이동하기.py GitHub - hwayeon351/Programmers-Algorithms: 프로그래머스 알고리즘 소스 코드 모음 프로그래머스 알고리즘 소스 코드 모음. Contribute to hwayeo..

728x90
반응형