본문 바로가기

개발90

안드로이드 코틀린: recyclerview recyclerview를 설명하기 전에 listview와 gridview를 설명하겠다. 이해를 돕기 위한 것도 있고 시기 상으로 이 둘이 먼저 먼저 나왔고 이 둘의 단점을 보완한 것이 recyclerview이다. gridview와 listview는 리스트를 구현할 때 생성과 삭제를 반복하게 된다. 이들 하나하나가 객체라서 객체의 생성과 삭제를 반복하는 것은 성능 상 좋지 않기 때문에 recyclerview가 나왔다. recyclerview 를 한글로 번역하면 재활용뷰라고 할 수 있다. 말 그대로 생성과 삭제를 하지 않고 썼던 것을 변경해서 다시 쓰는 것이다. 그림을 보면 이해가 빠를 것이다. 왼쪽이 gridview와 listview . 오른쪽이 recyclerview 의 작동흐름이다. recyclervi.. 2024. 1. 3.
코틀린 R.drawble 안에 넣어둔 이미지가 인식이 안될 때(R.drawble 이미지 인식) 분명 이전 프로젝트에서 drawble 폴더 안에 이미지를 넣으면 R.drawble.'이미지 이름' 하면 잘만 나왔는데 인식이 안되고 안드로이드에서 제공하는 기본이미지만 나왔다. 왜 그런가 한동안 검색해봤다. 전혀 생각지도 못한 import에 문제가 있었다. import android.R 2024. 1. 3.
코틀린 : copyOfRange(), copyOf() copyOfRange() 리스트에서 () 안에 범위만큼 복사해오는 메소드이다. ( start index, end index )인데 주의할 점은 end index에서 마지막 번호를 포함하지 않는다. 아래 예시를 보자 var citations = intArrayOf(3, 0, 6, 1, 5) var answer = citations.copyOfRange(0,2) println( answer.contentToString() ) // [3, 0] 0부터 2까지인데 결과는 3,0,6 이 아니라 3,0이 출력된다. copyOf() 어레이를 복사한다. var citations = intArrayOf(3, 0, 6, 1, 5) var answer = citations.copyOf() println( answer.con.. 2024. 1. 2.
TIL: apply와 also의 차이점 강사님들이 apply와 also는 매우 유용한 함수에요~ 라고 하지만 둘의 차이점을 잘 몰랐었다. 블로그에 요약되있는 글을 봐도 긴가민가 했는데 팀프로젝트를 하면서 차이점에 대한 느낌이 와서 적는다. apply는 {} 안에서 수행하는 코드가 객체에 영향을 미친다. 그래서 초기화를 할 때나 해당 객체를 동적으로 변경할 때 써주면 이만큼 좋은 메소드가 없다. also는 {} 안에서 어떤 일이 나던 원본 객체에는 영향을 미치지 않는다. 그러니 원본은 보존하면서 비슷한 객체를 만들어야할 때 쓰면 편하다. 핵심은 이것이다. apply는 {} 안에 코드가 객체에 영향을 준다. also는 {} 안에 코드가 객체에 영향을 안준다. 2023. 12. 28.
TIL: parcelable 액티비티 간에 데이터를 string, int, long 등 다양하게 넘겨줄 수 있지만 객체를 전해줘야할 수도 있다. 그럴 때는 parcelable을 사용하여 준다. 비슷한 역할을 하는 serializable 도 있다. 성능을 비교하면 parcelable >>> serializable parcelable이 훨씬 나중에 나왔기 때문에 더 최신의 기술이고 그만큼 성능 역시 좋다. 하지만 serializable을 쓴다고 한다. 왜일까? parcelable 은 추상메소드이므로 하나하나 다 오버라이드를 해줘야한다. import android.os.Parcel import android.os.Parcelable class MyParcelableObject(val name: String, val age: Int) : .. 2023. 12. 27.
TIL: 안드로이드 글자수 초과시 말줄임 ... 으로 표시, 라인 수 제한, fatal: unable to access [http주소] The requested URL returned error: 403 텍스트뷰가 너무 길어지면 짤라야할 때가 있다. 하지만 안드로이드는 텍스트가 길어지면 자동으로 줄바꿈하면서 내용을 이어간다. 레이아웃을 위해 텍스트를 제한할 때 쓸 수 있는 속성이다. 해당 코드를 실행하면 텍스트는 두줄까지 나오고 2번째 줄 끝에서 ...으로 말줄임이 될 것이다. 팀프로젝트를 진행하면서 클론을 마치고 푸쉬를 하려는데 아래의 메시지가 뜨면서 푸쉬가 되지 않았다. fatal: unable to access 'https://github.com/dlho1222/Sparta-Week5-Team--SNS.git/': The requested URL returned error: 403 구글을 뒤져가면서 방법들을 찾아보았지만 나랑은 상관없는 것들이였다. 알고보니 답은 정말정말 간단한 것이였다. git 초.. 2023. 12. 26.
warning: in the working copy of "파일경로/파일명" LF will be replaced by CRLF the next time Git touches it 커밋을 하려는데 이런 오류가 떴다. lf가 crlf로 교체된다고? 이게 뭔 소리여? 구글에 검색 ㄱㄱ 결론 띄어쓰기 처리로 인한 문제다. 리눅스와 윈도우는 내부적으로 띄어쓰기를 표현하는 방법이 다르다. 화면상으로는 똑같은 띄어쓰기지만 코드상에서는 다르다. 그래서 git 입장에서는 띄어쓰기 부분이 다르니 어떻게 처리해야할지 몰라서 경고창을 띄우는 것이었다. 해결법 git config --global core.autocrlf true autocrlf라는 띄어쓰기를 '자동으로' 변환해주는 명령어가 있다고 한다. 이 설정을 키면 알아서 바꿔준다고 한다. 설정을 켠 뒤, 커밋을 하니 잘 작동되었다. 2023. 12. 22.
TIL: 정규식,regex,regular expressions 프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어를 말한다고 나무위키에 써있는데... 뭐 나름 맞는 말 같다. 정리하려고 했는데 마침 보기쉽게 설명해놓은 자료를 발견했다. 다만 엄청난 자료양에 쫄아서 자료를 복붙해왔다. 불펌은 아닌 거 같으니 참고한 블로그 링크를 올려두겠다. 매우 보기 쉽게 잘 정리해줘서 고맙습니다 !https://itstory1592.tistory.com/63#MetaCharacter [Android] 자바 코틀린 (Pattern, Matcher)정규식을 사용하여 패스워드 조건을 만들어보자 동아리 프로젝트 중, 비밀번호 변경을 구현하는 단계에서 정규식을 사용할 일이 생겼습니다. 조건은 '영문, 숫자, 특수문자 중 2개를 사용하여 최소 8자리 이상'의 .. 2023. 12. 21.
이미지와 텍스트가 있는 버튼 만들기 클론ui 중에 이미지와 텍스트가 있는 버튼을 만드는데 이런 버튼을 만들려고 했다. 상당히 쉬워보인다. 그냥 버튼태그 안에 이미지 넣고 글자 넣고 센터 정렬하면 되겠지? 하고 대수롭지 않게 생각하고 구현하는데 생각보다 잘 안됐다. 뭐가 안됐냐면..... 버튼 태그 안에 drawble로 이미지를 넣어도 바깥쪽에 고정되어 있어서 gravity="center" 를 적용하더라도 중앙정렬이 안되는 것이다. text만 중앙 정렬될 뿐 drawble 속성으로 추가된 이미지는 요지부동이였다. 그렇게 검색하고 해본 시도들.... drawbleLeft -> 처음 시도한 방법인데 안됨 drawbleStrart -> 똑같음 button 태그를 textview로 바꾸고 위에 시도를 다시 반복 -> 둘다 실패 . 결과는 똑같음 d.. 2023. 12. 20.