반응형 전체 글91 [Android] Retrofit - API 통신을 쉽게 구현해보자 Android 개발에서 가장 많이 쓰는 라이브러리라고 하면 Retrofit은 빠질 수 없을 겁니다. 이번에는 이 Retrofit이 정확히 무엇인지 정리해보려고 합니다. Retrofit 홈페이지에 가면 Retrofit을 다음과 같이 정의하고 있습니다. A type-safe HTTP client for Android and Java 번역하면 Android, Java용 Type-Safe HTTP 클라이언트입니다. 즉, 서버와 클라이언트 간 HTTP 통신을 쉽게 해주는 라이브러리입니다. 기본적으로 백그라운드에서 실행되며 callback을 통해 Main Thread에서 UI 업데이트를 간단히 할 수 있습니다. 하지만 보통 이 방법보다는 RxJava, Coroutine와 같이 구현하는 방식을 선호하고 있습니다. (.. 2021. 12. 16. [알고리즘] BFS(Breadth-First Search) - 너비 우선 탐색 이번 시간에는 DFS에 이어 또 다른 그래프 탐색 방법인 BFS에 대해 정리해보려고 합니다. BFS 너비 우선 탐색(Breadth-First Search) 정의 : 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법 보통 두 노드 사이의 최단 경로를 찾고 싶을 때 사용합니다. 큐(Queue)를 사용하여 구현합니다. 이때 주의할 것은 어떤 노드를 방문했었는지 여부를 반드시 검색해야 합니다. 보통 모든 depth를 한 번에 탐색하기 때문에 단순 검색 속도는 DFS보다 빠릅니다. 하지만 노드의 수가 많아지고 깊이가 깊어지면 비효율적이라는 단점이 있습니다. 특징을 정리하면 Queue를 사용하여 구현, 이는 탐색할 정점들을 저장함으로써 저장공간이 많이 필요 그래프가 깊지 않고 규모가.. 2021. 12. 13. [알고리즘] DFS(Depth-First Search) - 깊이 우선 탐색 DFS는 그래프(Graph)를 탐색하는 방법입니다. 그래프란, 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조를 말합니다. 코딩 테스트에서 BFS와 단골로 나오는 개념입니다. DFS 깊이 우선 탐색(Depth-First Search) 정의 : 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법을 말합니다. 자기 자신을 호출하는 순환 알고리즘이기 때문에 재귀 함수나 스택을 가지고 구현합니다. 이때 주의 사항은 어떤 노드를 방문했었는지 여부를 반드시 검사해야 합니다. 📘 Pseudo Code /** 1. 노드이 갯수 만큼 방문 여부를 위한 배열 생성 후 false로 초기화 (visit 배열) 2. 루트 노드부.. 2021. 12. 1. [알고리즘 / Kotlin] 프로그래머스 - 큰 수 만들기 큰 수 만들기 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24]를 만들 수 있습니다. 이 중 가장 큰 숫자는 94입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 내 풀이 처음에는 단순히 앞부분부터 최댓값을.. 2021. 11. 22. [Kotlin] 코틀린(kotlin)의 장단점은 무엇일까? 현재 제가 가장 재미있어하고 좋아하는 언어는 Kotlin입니다. 사실Kotlin을 접한지는 1년도 되지 않았지만 처음 사용할 때 묘한 매력을 느꼈습니다. 그래서 개인 프로젝트를 진행할 때 웬만하면 kotlin과 java를 사용하고 있습니다. 하지만 kotlin을 사용은 하고 있지만 장점과 단점에 대해 너무 모호하게 알고 있다는 생각이 들어서 정리를 해야겠다는 생각을 했습니다. 특징과 철학 일단 장단점을 알아보기 전에 kotlin은 어떤 언어이고 특징을 가졌는지 알아봅시다. Kotlin은 JetBrains에서 개발한 JVM 위에서 동작하는 언어입니다. 현재는 안드로이드 공식 언어로 자리매김을 하였습니다. ✔ 특징 정적 타입 언어 - 모든 프로그래밍 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안.. 2021. 11. 19. [AWS] IAM(Identity and Access Management) 계정 만들기 (ver. 21년) 최근에 사이드 프로젝트를 하면서 백을 구축해야 할 일이 생겨서 AWS를 사용하게 되었습니다. 이미 설정이 되어있는 AWS는 많이 사용해보았지만 직접 설정을 해본 경험은 없었기 때문에 구글링을 통해 하나하나 찾아가며 해야 했습니다. 여차 저차 해서 계정을 만들고 찾아보니 루트 계정을 사용하지 말고 IAM을 사용하라고 추천하였습니다. IAM(Identity and Access Management) : AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스 즉, AWS 서비스에 모든 권한이 있는 루트 계정과 달리 특정 권한을 따로 부여하여 해당 권한만을 사용할 수 있는 사용자를 의미합니다. 이는 만일 해킹을 당한다고 해도 해당 계정에 부여한 권한만을 사용할 수 있기 때문에 루트 계정보다는 보안이 더.. 2021. 11. 15. 이전 1 ··· 4 5 6 7 8 9 10 ··· 16 다음 반응형