분류 전체보기 (100) 썸네일형 리스트형 [알고리즘] 이진 탐색 이진탐색이란? 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다. 쉽게 말해 up&down 게임과 유사하다고 볼 수 있다. 시작점, 중간점, 끝점을 이용하여 탐색 범위를 설정하는데 탐색할 숫자가 중간점보다 크다면, 중간점보다 작은 수들은 배척시킴으로써 탐색 범위를 줄여나간다. 예제 찾고자 하는 수가 14일 때 - 중간점이 2개일 경우 둘 중 아무거나 해도 상관 없다. 1. 찾고자 하는 수와 중간점을 비교한다. 2. 찾고자 하는 수(14)가 중간점보다 작다면 중간점 아래를, 높다면 중간점 위의 숫자들을 제거해준다. 3. 찾고자 하는 수(14)가 중간점보다 크기 때문에 중간점보다 작은 수들을 제외하면 아래와 같이 남게 된다. 과정 반복 중간점이 찾고자 하는 숫자와 같다면 종료한.. [Kotlin] 문자열 String 해당 포스팅에서는 문자열을 좀 더 세부적으로 알아본다. 문자열에는 다양한 메서드들이 있다. 그 중 자주 쓰이는 메서드들을 알아보도록 하며, 그 외의 메서드들은 아래 링크를 통해 Kotlin 공식 문서에서 참조 바랍니다. https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/ init var string = "초기화" 문자열 사이에 변수 값 1. $변수 2. ${변수} 1번으로 사용하실 경우, 다음 문자열과 띄어쓰기로 구분해야 한다. val data = "20" val string = "저는 ${data}살 입니다." println(string) println("저는 $data살 입니다.") //에러 : 변수명을 data살로 인식하기에 띄어쓰기를 해주어.. [Kotlin] 코틀린 기초 문법 1. val 과 var 및 자료형 // 변하지 않는 값 val a = 0 // 변하는 값 var b = 0 a = 10 오류 발생 b = 10 Kotlin에서는 Java와 마찬가지로 자료형을 선언해 주어야 한다. 형태는 다음과 같다. val a : 자료형 = 값 값을 선언해 주었다면 자료형은 생략해도 상관없다. val a : Int = 0 val b = 0 var string : String = "test" var string = "test 2. 입·출력 및 String템플릿 입력은 readLine(), 출력은 print(), println() 메서드를 사용한다. var name = readLine() print("안녕? 나는 $name 이야!") // 줄 바꿈 x println("안녕? 나는 $name.. [서버 통신] - Http 프로토콜 우리는 하나의 서비스를 제작할 때, 크게 3가지로 나눈다. 1. 사용자들이 직접 접하는 클라이언트 2. 클라이언트로부터 요청 받은 내용을 추려 전달해주는 서버 3. 데이터를 저장하는 데이터베이스 보통은 서버에서 데이터베이스까지 관리하는 경우가 많다. 클라이언트와 서버는 서로 통신을 하여 데이터를 주고 받아야 하는데 이때 사용되는 통신 프로토콜이 Http 프로토콜이다. HTTP 프로토콜이란? Http 프로토콜은 정보(데이터)를 송·수신하도록 설계된 프로토콜이다. 기본적으로 요청과 응답으로 나누어지며, 요청은 클라이언트가 서버에 데이터를 요청할 때 사용되며, 구성 요소는 다음과 같다. 요청 구성 요소 1. 요청 Header Hearder는 클라이언트가 사용하는 브라우저 및 앱, 요청되는 데이터와 같은 핵심 .. [안드로이드] Viewbinding 우리는 안드로이드 개발을 하면서 Layout에 있는 Button, TextView 등 값을 변경, 클릭 등 이벤트에 대한 동작을 처리하기 위해 findViewById를 사용하여 뷰 객체를 가져와 사용하였다. 만약 Layout에서의 뷰 객체가 많아지고 모두 이벤트 동작을 처리해줘야 할 때, 이와 같은 방법은 비효율적일 것이다. 뷰 객체가 10개일 경우, findviewbyid로 뷰 객체 선언을 10번을 해주어야 하기 때문이다. Viewbinding은 이러한 문제점을 해결한 findviewbyid를 대체하는 기능이다. 공식문서 https://developer.android.com/topic/libraries/view-binding?hl=ko 사용법 1. setting 제일 처음으로 build.gradle(M.. [안드로이드] RecyclerView 리사이클러뷰 개념 및 사용법 우리는 안드로이드 앱을 만들 때 어떠한 목록을 구현해야 될 상황이 생긴다. 구현할 데이터 리스트를 받아 화면에 띄워줘야 하는데, 받는 데이터의 개수는 유동적이며, 내용 또한 모두 다르기 때문에 우리가 하나하나 구현해 줄 수는 없다. 이를 해결하기 위해 처음에 나온 것이 ListView이며 ListView의 단점을 보완하여 다시 나온 것이 RecyclerView이다. RecyclerView와 ListView의 차이 ListView RecyclerView 스크롤로 인해 없어진 객체(목록)은 삭제되며, 반대로 추가로 보여지는 객체는 생성된다. 스크롤로 인해 없어진 객체는 삭제되지 않고 뒤쪽으로 재배치되어 재사용된다. 생성과 삭제가 반복되기에 비효율적이다. 객체를 재사용하기 때문에 효율적이다. 사용법 시작하기에.. [디자인 패턴] MVVM 디자인 패턴은 MVC를 시작으로 MVP을 거쳐 MVVM로 발전해왔다. 그러나 세가지 방법 모두 서로의 장단점이 있기 때문에 모두 사용되고 있으며, 프로젝트의 방향성에 맞는 디자인 패턴을 선택하여 사용하면 된다. MVVM 패턴 MVVM 모델은 기존의 MVC 모델과 MVP 모델에서의 View와 Controller/Presenter 사이에서의 강한 의존성을 약화시킨 모델이다. 기존에는 Controller/Presenter에서 UI 조작이 일어났다면, MVVM 모델에서의 ViewModel은 UI를 조작하지 않는다. 대신 View에서 ViewModel을 관찰하며 UI를 업데이트를 하는데 이를 Observe라 한다. 필요성 안드로이드는 사용할 수 있는 리소스가 제한적이다. 이로 인해 운영체제는 언제든 앱 구성 요소.. [디자인 패턴] MVC 패턴 디자인 패턴이란? 인터넷에 검색해보면 "공통적으로 발생하는 문제에 대해 재사용이 가능한 해결책" 이라 나온다. 개발의 역사가 길지는 않지만 지금까지 개발하면서 생기는 공통적인 문제들을 쉽게 해결할 수 있도록 만든 것이 디자인 패턴이라고 생각한다. 안드로이드 디자인 패턴에는 대표적으로 MVC, MVP, MVVM가 있다. MVC 패턴이란? MVC란 Model - View - Controller 의 약자이다. Model - 데이터 View - 사용자 화면 Controller : Model 과 View를 연결해주는 관제탑 역할 MVC의 관계는 다음과 같다. Model Model은 데이터와 관련된 작업을 하는 곳 안드로이드에서는 Data Class가 Model을 담당하고 있다. View View는 사용자가 직접적.. [안드로이드] 이미지 Glide 정적인 이미지의 경우 XML 파일에서 이미지를 지정해주기에 Glide를 사용할 필요는 없다. 그러나 동적인 경우, 서버에서 이미지 파일의 경로를 얻어와 이미지를 구현해야 할 경우 대표적인 프레임워크 중 하나인 Glide를 사용한다. Glide의 다양한 기능들을 알아보고 싶다면 Glide 공식 문서를 참고 바랍니다. Glide 사용 방법 기본 설정 settings.gradle repositories { google() mavenCentral() } build.gradle(Module) dependencies{ implementation 'com.github.bumptech.glide:glide:4.16.0' } Code 공식 문서에서의 사용법 -Java- ImageView imageView = (Image.. [안드로이드] 안드로이드 생명주기 우리가 안드로이드 App을 사용하다 보면 로그인 화면, 회원가입 화면부터 메인, 검색 등 다양한 화면들을 접하게 된다.이 각각의 화면들은 Activity에 속해 있으며, Activity에는 생명 주기가 있다. 보다 자세한 내용은 공식 문서를 참조 바랍니다. 안드로이드 생명 주기Activity 생명주기에는 다음과 같이 6가지로 이루어져 있다.1. onCreate()Activity를 실행할 때 처음으로 호출하며, XML을 정의한다.단 한번만 호출되기 때문에 한 번만 초기화하면 되는 것들은 해당 상태에서 초기화하게 됩니다. 2. onStart()onCreate() 함수 이후 호출Acitivity가 사용자에게 표시되며, Activity를 포그라운드에 보내 상호작용 할 수 있도록 준비한다. 3. onResume(.. 이전 1 ··· 7 8 9 10 다음