일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- kotlin recyclerview checkbox error
- h2 error
- ADsP
- MySQL
- sockettimeout
- 자료구조
- 선택정렬
- 데이터 이해
- 쿼리문
- watchmanresponse
- watchman error
- expo-cli error
- retrofit
- GitHub
- kotlin checkbox error
- Kotlin
- Today
- Total
목록분류 전체보기 (12)
Stand up lee
React-native로 앱을 개발하기 위해 필요한 패키지를 expo-cli로 설치했다. 그런데 watchman 버전 때문인지, 계속 오류가 생겨 실행이 되지 않았다. (Watchman은 특정 폴더나 파일을 감시하다가 변화가 생기면 특정 동작을 실행하도록 설정하는 역할이다. 즉시 ui에 업데이트됨) Error Message : watchmanResponse: { resolve_projpath: path : Operation not permitted , version: '2022.06.06.00'} watchman 설치할 때 Homebrew 에러인지, watchman 버전이 날짜로 되어 있어 인식을 못한다는 글도 있고해서 이전 버전 설치를 하기도 하고, 재설치를 여러번 했는데, 해결되지 않았음. 또 시스템..
H2 DB 안정화 버전을 설치하고 실행을 하려던 중 에러 발생 DB를 업그레이드 하지 않고, 바로 H2 설치파일을 교체해서 접속하려고 하니 빌드가 안되는 것이었음 해결 방안 * 사용자 폴더에 가서 숨김파일 보기 ⌘⇧. (Command + Shfit + . ) → 누르면 숨겨진 파일들이 다 뜬다 * 터미널에서 필요한 데이터 파일만 보이게 {user}/.h2/server.properties {user}/test.mv.db {user}/test.trace.db 두 가지 방법이 있는데 어느 걸로 하던지, h2의 mv.db, trace.db파일이 보이게 되는데 두개 삭제하면 된다 삭제 후, 다시 시도했을 때 잘 접속되었음!
kotlin으로 GridLayoutManager로 Checkbox 가 담긴 아이템 리스트들을 나열하였다. 이때, 체크박스로 선택한 set들을 다음 화면에 전달해야하는데, 스크롤을 내렸을 때 원하지 않는 체크박스가 저절로 선택되어 있는 문제가 생긴 것 이건 Recyclerview 재활용 로직때문에 발생하게 된 것이라고한다. Recyclerview는 데이터의 모든 아이템에 해당하는 뷰를 할당하지 않는다. 화면에 맞는 아이템 뷰의 수만 할당하고 사용자가 스크롤할 때 해당 아이템 레이아웃을 재활용하는 것이다. 즉, Adapter가 내가 표시한 아이템 뷰를 스크롤했을때 보이게 되는 다음 뷰에 복사를 하게 되는 것이다. 그래서 내가 앞에서 체크박스를 선택하면 이 뷰가 복사되어 다음 뷰에도 나타나게 된다는 것. 그래..
kotlin으로 앱 내 회원가입을 위한 sms 인증을 개발하고자 했다. 이를 위한 http 통신 테스트가 필요하여 GET, POST 요청을 진행하려고 했다. 필요한 코드는 다 작성했지만, 계속 이런 에러 메시지가 떴다. 두가지 에러 종류가 있었다. 1. 요청한 url이 https 가 아닌 http 이기 때문에 보안 문제로 제대로 작동하지 않음. 2. 요청을 시작한 후, retrofit의 제한 시간 내에 서버에 연결되지 않으면 해당 요청을 실패한 것으로 계산함. 해결방안 1. manifest 수정 *** 위과 같이 manifest 안에 application 안에 android:usesCleartextTraffic="true" 를 추가한다. (http를 허가해주는 설정이라고 한다) 여기에 더해서 에뮬레이터나..
회원가입할 때, 이메일이나 비밀번호 등 각각 지켜야할 조건들이 있다. 정규표현식을 활용해서 특정 규칙을 지정한다. (ex. 최소 6자리 이상, 숫자, 문자 1개 이상 포함 등) ► 정규 표현식 문법 ^ : 문자열의 시작 $ : 문자열의 끝 . : 줄바꿈 제외 문자 한 개를 의미. '.'이 위치한 곳에 어떤 문자든지 1개의 문자가 들어감. [ ] : [ ] 사이에 있는 문자 중 한 개를 의미. (Ex. [abc]는 a, b, c 중 하나) [^] : not의 의미로, 대괄호에서 쓴다면 [^abc] : a, b, c 제외하고 나머지를 의미. | : or을 의미. a|b : a 또는 b. () : ( ) 안의 문자를 하나로 인식, 서브 패턴을 지정할 때 사용. abc|abd -> ab(c|d)로 바꿀 수 있음..
앱 개발을 하다보니, 서버에 대해서도 공부를 해야겠다는 생각이 들었다. 로그인과 회원가입을 구현하기 위해 세션, 쿠키, 토큰에 대해 간략하게 정리해봤다. 먼저 HTTP 통신은 요청(Request) -> 응답(Response) 이 종료되면 stateless(상태가 유지되지 않은) 한 특징 때문에 연결을 끊는 처리 방식이다. * Stateless : 서버에 가는 모든 요청이 이전 request와 독립적으로 다뤄짐. 요청이 끝나면 접속을 끊어서 이전 데이터를 유지하지 않는다. → 여기서 클라이언트의 상태를 기억하기 위해 쿠키, 세션, 토큰을 사용하게 된다. * Cookie 쿠키를 이용해서, 서버가 브라우저에 데이터를 넣을 수 있음. 웹에 방문하게 되면 브라우저에서 서버로 필요한 정보를 request, 서버에서..
병합 정렬(merge sort)란 분할정복 알고리즘 중 하나로 재귀용법을 활용한 정렬 알고리즘이다. 1. 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다 2. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다 3. 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병한다 예를 들어 data_list = [1, 9, 3, 2] 먼저 [1, 9], [3, 2] 로 나누고 [1] [9] 로 나눈다 정렬해서 합친다. [1, 9] 다음 [3, 2] 도 [3] [2] 로 나눈다 정렬해서 합친다 [2, 3] 이제 [1, 9] 와 [2, 3]을 합친다. 1 2 이니 [1, 2] 9 > 3 이니 [1, 2, 3] 9 밖에 없으니, [1, 2, 3, 9] 🎵 알고리즘 구현 1..
삽입 정렬(insertion sort)란 해당 인덱스(key 값) 앞에 있는 데이터(a)부터 비교해서 key 값이 더 적으면, a값을 뒤 index로 복사한다. 이를 key 값이 더 큰 데이터를 만날 때까지 반복한다. 예를 들어 data_list = [9, 3, 2, 5] 일 때 sorting을 해보자 처음 한번 실행하면, key값은 9, 인덱스(0) - 1 은 0보다 작으므로 끝: [9, 3, 2, 5] 두 번째 실행하면, key값은 3, 9보다 3이 작으므로 자리 바꾸고, 끝: [3, 9, 2, 5] 세 번째 실행하면, key값은 2, 9보다 2가 작으므로 자리 바꾸고, 다시 3보다 2가 작으므로 끝: [2, 3, 9, 5] 네 번째 실행하면, key값은 5, 9보다 5이 작으므로 자리 바꾸고, 3보..