테이블의 데이터를 CSV로 출력할 일이 생겨서 이리저리 검색하다 알게된 내용을 간단히 정리한다. 이 정리는 Kotlin + Gradle 기반으로 진행한다. Dependency CSV Generator Class 위와 같이 CSV Generator의 dataToCSV 메소드에서 전달받은 dataList의 내용을 루프를 돌면서 item에 매핑하여 csvPrinter.printRecord에 넘겨준다. Controller 컨트롤러에서는 위와같이 /csv로 들어온 request에 따라 testDataService의 데이터를 모두 읽어와서 dataList에 저장하고, 이녀석을 CSVGenerator.dataToCSV에 response.writer과 함께 …
Category: Kotlin
JPA repository에서 데이터 가져올 때 limit 사용하기
JPA에서 제한된 데이터를 가져올 때 repository에서 메소드를 다음과 같이 작성해주면 된다. Kotlin 기준. 위의 메소드를 실행 시 UserName으로 검색하여 나온 결과 중 10개만을 리턴해준다.
JAVA or Kotlin LocalDateTime 비교하기
어느 데이터가 더 최신인가를 코드에서 비교해야할 일이 있어서 어떻게 하지?하고 검색을 했는데 너무 간단해서 놀랐음. LocalDateTime 형식의 a와 b가 있을 때, a가 b보다 빠른것인가, 느린것인가(최신인가), 같은가 를 비교하기 위해서 각각 다음과 같이 작성하면 된다. 끝.
Realm 사용하기
프로젝트 수준의 gradle의 dependencies에 다음과 같이 추가 모듈 수준의 gradle 상단에 다음 코드 추가 Todo 모델 클래스 작성 생존코딩 399, 400페이지 참조
사운드 재생하기
MediaPlayer 클래스와 SoundPool 클래스를 이용할 수 있으며, MediaPlayer 클래스의 경우 소리를 한 번만 재생하는 경우 또는 노래나 배경음 등의 경우 유용하다.악기와 같이 연속으로 소리를 재생하는 경우에는 SoundPool 클래스가 더 유용하다. 버전별 분기
GLIDE Library 이미지리소스 사용 편의성
setImageURI 메서드로 이미지를 이미지뷰에 표시할 수도 있지만 Glide 라이브러리를 이용하는 것이 더 편리하고 효율적이다.미사용 리소스를 자동으로 해제하고 메모리를 효율적으로 관리해주기 때문이다.또한 이미지를 비동기로 로딩하므로 UI의 끊김이 없다.app수준의 gradle의 dependencies에 다음과 같이 추가해준다. File – Project Structure를 클릭하여 추가해도 된다.
권한 확인 및 요청
사용자가 권한을 요청하면 시스템은 onRequestPermissionsResult() 메서드를 호출하고 사용자의 응답을 전달한다. 따라서 권한이 부여되었는지 확인하려면 이 메서드를 오버라이드 해야한다. 위의 예제는 하나의 권한만 요청하였으므로 grantResults의 [0]번째 인덱스 값만 확인한다.여러 권한을 요청시 해당 갯수만큼의 인덱스를 확인할 수 있으며, 권한이 승인되면 PERMISSION_GRANTED를거부되면 PERMISSION_DENIED를 반환한다.
Android에서 모든 사진정보 가져오기
사진정보 가져오기는 위험 권한이라 manifest에 권한추가 외에 실행 시점에 사용자에게 권한 요청을 해야한다. 사진에 접근하기 전 사용자에게 권한을 요청해야한다.아래 링크 참조!
Anko Library 적용
프로젝트 gradle 모듈 gradle Sync Now!!
View 의 사이즈 구하기
View 를 상속받은 클래스 내부에서onSizeChanged() 메소드를 override한다. 위의 인자값은 각각 다음을 의미한다 w : 변경된 가로길이 h : 변경된 세로길이 oldw : 변경 전 가로 길이 oldh : 변경 전 세로 길이