[Android] ListView BaseAdapter (View Holder 패턴)
·
개발/Android
안드로이드 리스트뷰의 베이스어댑터 구현방법과 뷰홀더 패턴에 대해 알아보자.뷰홀더 패턴을 이해하니 리사이클러뷰에 대해 더 쉽게 이해할 수 있었다. 1. ListView란? ListView은 안드로이드에서 여러 데이터를 세로스크롤을 통해 반복해서 보여주는 뷰이다.이를 위해서는 'Adapter'라는 형태가 필요하다. 각 아이템별로 어떻게 보여줄지, 어떤 데이터를 넣어줄지 개발자가 직접 정의를 해주어야한다. 2. 기본 구현 단계1) xml에서 ListView 선언 2) DTO 생성아이템의 데이터가 어떤 형식인지 DTO로를 생성한다. 그래야 통일성있는 데이터를 사용할 수 있다. 간단한 String만 있는 형태라면 DTO는 필요없다.data class User( val id: Int, val n..
[책 리뷰] 코틀린 인 액션 (Kotlin in action)
·
책리뷰
[책 리뷰] 코틀린 인 액션 📖 읽게 된 배경아주 예전에 앞장을 잠깐 본적은 있지만, 이번에 코틀린 스터디를 하면서 본격적으로 봤다.스터디는 일주일에 한 챕터씩 읽고 한사람당 소챕터 하나씩 정리하고 설명하는 방식으로 진행했다. 물론 본인이 정리한 내용만 기억에 잘 남긴 했지만, 전체를 읽었다는 점이 도움이 되었다. (뒷 부분은 잘 쓰지 않는 내용이라서 않았다) 책을 다 읽기 힘든 분들은 스터디를 하면서 책을 읽는 것을 추천한다. 📖 한줄평자바와 비교하는 부분이 많다. 자바로 바꾸면 어떻게 되는지 다 설명해준다.디자인패턴이나 어노테이션같이 Java로도 잘 써보지 않은 부분은 잘 이해가 가지 않았다 📖 나의 사전지식- 자바를 써본 적이 있고, 강의를 들으면저 자바를 전체적으로 배웠다.- 코틀린은 예전에..
[SSAFY] 13기 전공자 구미 합격 후기, 에세이 자소서 공개 (feat. 싸피 삼수)
·
회고/SSAFY
💙 싸피 13기 지원절차 및 일정- 지원서 접수 10.21(월) ~ 11.04(일) - 비전공자 적성진단  11.09(토)- 전공자 적성진단 11.07(일) - 적성진단 결과발표 11.27(수) 15시 - 전공자 인터뷰 12.04(수) ~ 12.05(목)- 비전공자 인터뷰 12.09(월) ~ 12.11(수)- 마이스터고 인터뷰 12.11(수)- 인터뷰 결과발표 12/19(목) 15시 - 입과(교육 시작일) 01.07(화) 🧊 0. 지원나는 11기 부터 지원했다. 처음에는 졸업할 시기였고, 이제는 졸업한지 1년 지난 취준생이다.취준 1년이 되어갔기 때문에 간절했다. 하지만 11기 12기 계속 떨어졌기때문에 큰 기대 없이 지원했다. 🧊 1. 에세이1-1. 작성시11기 12기 지원할때는 혼신의 힘을 담아..
React Native Navigation - Bottom Tabs과 Stack 함께 쓰기 (TypeScript)
·
개발/React Native
[예시 동영상] 같은 구조를 만들고 싶은 누군가에게 도움이 되길 바라며 글을 작성해본다. 버튼을 클릭하면 화면이 덮어씌워지고 뒤로가면 나갈 수 있는 구조로 만들고 싶었다. 여기서 새 식단 추가하기는 여러 탭에서 사용하고 싶었기 때문에, 탭 안에서 일반 적인 화면으로 하면 안될 것 같았다.  여러 예시 코드를 찾아가 스택안에 탭이 있는 구조로 만드니 성공할 수 있었다. 스택안에 탭이 있는 구조인 네비게이션 타입스크립트를 찾기 어려웠기 때문에 예시 코드가 도움이 되길 바란다.  💻클릭했을 때 띄울 새로운 화면.tsx원하는 화면을 하나 만들면 된다. 꼭 navigation를 props로 받을 필요는 없다. 나는 헤더와 뒤로가기를 위해 받아왔다.타입은 StackScreenProps 덤으로 아래 setOptio..
[알고리듬] 다익스트라 알고리듬(Dijkstra Algorithm) (JavaScript)
·
자료구조 · 알고리듬/알고리듬
🍞 다익스트라 알고리듬이란?최단 경로를 탐색하는 알고리듬 중 하나다. 다익스트라 알고리듬을 이용하면 출발점에서 각 지점으로 가는 최소경로를 구할 수 있다.1) 단계(1) 자료우선 아래 두개의 데이터를 준비해주었다.1. 그래프가 어떻게 되어있는지 2차월 배열로 저장해주었다.2. 출발점에서 각 지점까지 얼마나 걸리는지 저장할 1차원 배열3. 각 지점을 검사했는지 저장해두는 배열(무한 루프 방지)    (2) 출발점출발점은 A라고 지정했다. 출발점 A에서부터 각 지점(A,B,C,D,E,F)으로 가는 최소비용을 구할 것이다. 1. 첫번째로 A 배열을 순회하면서, 연결된 지점을 찾는다.   2. 연결되어있다면 해당 비용을 1차원 비용 최소 비용값으로 교체해준다. 3. A점을 검사했다고 체크해준다.  (3) 반복..
[자료구조] 우선순위 큐 - 힙으로 구현 (JavaScript)
·
자료구조 · 알고리듬/자료구조
🍞 우선순위 큐란?1) 큐(Queue)란?선입선출(FIFO - First In Frist Out) 자료구조다.먼저 들어온 데이터가 먼저 나간다. 2) 우선순위 큐(Priority Queue)란?우선순위 큐는 선입선출(FIFO)이 아닌, 우선순위(Priority)가 가장 높은 데이터가 먼저 나가는 자료구조다.우선순위가 가장 높은 데이터가 맨 앞에 있다.🍞 힙(Heap) 이란?완전 이진 트리 형태를 기본으로 한다. 최대값이나 최솟값을 찾아내기 위해 고안되었다. 따라서 루트노드는 가장 큰 값이나 가장 작은 값을 가진다.느슨한 이진트리다. 부모 자식간에 대소관게를 성립하지만, 형제사이는 신경쓰지 않는다.  트리지만 완전 이진트리이기 때문에 배열로 데이터를 저장할 수 있다.본인 인덱스에서 * 2 + 1 를 하..
[알고리듬] 하노이의 탑 (프로그래머스 Lv.2 하노이의 탑 JavaScript)
·
자료구조 · 알고리듬/알고리듬
프로그래머스 Lv.2 하노이의 탑 바로가기🧊 하노이의 탑 게임1) 게임 설명3개의 기둥과 원반들이 있다. 다음 조건을 지키면서 모든 원반들을 C에 옮겨라. 1. 한 번에 원반 하나만 옮길 수 있다. 2. 본인보다 작은 원반 위에 올릴 수 없다.2) 재귀 : 문제 해결의 포인트위 하노이의 탑 게임은 알고리듬을 배울 때 가장 처음 배우는 문제다. '재귀'를 설명하기 가장 좋은 문제이기 때문이다. 하노이의 탑 문제를 어떻게 해결 하면 좋을까? 한번 생각해보자. 규칙을 지키면서 A 그대로 C에 옮기려면, 가장 밑에 있는 원반4을 C바닥에 놓아야할 것이다. 가장 밑에 있는 원반4를 C로 옮기려면 어떻게 해야할까? 나머지 원반들을 B로 옮겨놓아야 한다. 이를 일반화해보자. n개의 원판이 주어졌을 때, n-1까지 원..
[JavaScript] 자바스크립트 배열은 객체다?!
·
개발/JavaScript
🧊  Prototype of Array is Object.일반적인 배열 하나를 선언하고 출력해보았다.const arr = [3, 6, 9];console.log(arr);  0,1,2 순서대로 잘 출력되고, 프로토타입도 Array인데 무슨 배열이 객체라는 걸까? 그렇다면 Array를 펼쳐보자.  Array를 펼쳐서 살펴보니 프로토타입이 Object라고 나온다! 그렇다. Array는 객체를 이어받아 만든 자료구조다.   🧊  숫자는 프로퍼티의 key일뿐.1) 객체 프로퍼티에 접근하는 법객체의 프로퍼티에 접근하기 위해서는 두가지 방법이 있다. 아래와 같이 . (점)을 사용하는 방법과, 대괄호로 접근하는 방법이 있다.computer.namecomputer["name"] 하지만 숫자는 . (점)을 사용할 수..
[알고리듬] 비트마스킹 (SWEA D3 2817번 부분 수열의 합 파이썬 Python)
·
자료구조 · 알고리듬/알고리듬
🧊 들어가며SWEA 2817번 부분 수열의 합 바로가기A1, A2, ... , AN의 N개의 자연수가 주어졌을 때, 최소 1개 이상의 수를 선택하여 그 합이 K가 되는 경우의 수 {1, 2, 1, 2} 에서 합이 3이 되도록 숫자들을 조합하라고 하면 어떻게 할까?1을 넣는 경우, 1을 빼는 경우, 2를 넣는 경우, 2를 빼는 경우를 모드 조합할 수 있을 것이다.   이를 어떻게 구현할 수 있을까? 가장 처음에 떠올릴 수 있는 방법은 DFS다. 첫번째 요소부터 시작해서 포함한 경우로 넘기고, 미포함한 경우로 넘기고를 재귀한다. def dfs(arr, i, n, k, number):    if number == k:        return 1    if number > k:        return 0 ..
[Next.js 14] Not found 페이지 만들기 (404 페이지)
·
개발/Next.js
React에서는 라우터 설정에서 아래와같이  * 을 붙이면, 나머지 url에 접근했을 떄 보여줄 페이지를 지정할 수 있었다. Next.js14에서는 어떻게 하는지 알아보자. { path: '*', element: , },  🧊 지정된 URL 이외의 페이지를 요청할 때 나타나는 페이지 만들기Next.js14에서는 디텍토리가 곧 url이므로 React처럼 *을 붙여 따로 설정할 수 없다. 또한 프레임워크이기 때문에 Next.js14 제공해주는 방식으로 처리를 해야한다.  Next.js14에서 Not found 404 페이지를 만드는 방법은 정말 간단하다. app/not-found.tsx 파일을 만들면 없는 URL에 접근할 때 해당 페이지를 띄워준다. 예시) 위와 같이 src/app/not-fou..