전체 글 55

Kotlin Collection 변환 함수 모음

ArrayList, List, Array 등의 내용을 원하는 컨텐츠로 변환할 수 있는 다양한 함수들이 있다. 1. all : collection의 모든 내용이 람다 조건에 맞는지 검사 후 Boolean 반환 val arr = arrayListOf(1,2,3) val result = arr.all{it == 1} println(result) // true 2. any : collection 내용중 하나라도 람다 조건에 맞는지 검사하고 Boolean 반환 val arr = arrayListOf(1,2,3) val result = arr.any{it == 1} println(result) 변환 메서드 정리한 블로그 글 : https://tourspace.tistory.com/111

IntelliJ에서 만들 수 있는 코틀린 프로젝트의 종류

공식문서 : https://www.jetbrains.com/help/idea/new-project-wizard.html#new-project-no-frameworks 코틀린 프로젝트 생성을 누르면 다양한 옵션이 있다. 한글판 기준으로 위에서부터 각 옵션의 특징을 정리해보았다. 새 프로젝트 : 가장 자주 사용하는 옵션. 언어, 빌드 시스템 선택이 자유롭다. 나는 kotlin & maven 조합을 가장 많이 사용했다. 샘플 코드 추가를 누르면 자동으로 main 클래스가 생성되서 별도의 configure 설정 없이 코드를 실행할 수 있게 된다. 추후 다른 프레임워크나 기술이 필요하다면 자유롭게 추가할 수 있다. 빈 프로젝트 : SDK 없이 Java, kotlin으로 작업할 수 있는 프로젝트를 만든다. 외부 라..

Crontab 사용법

Cron이란?cron, crond, crontab 모두 리눅스의 기본 스케줄러이다. Spring과 관련된 batch scheduler에는 Spring batch, Quartz 등이 있다. 사용 방식$ crontab -e #nano 편집기로 이동$ crontab -l #crontab 쉘 확인$ crontab -r #crontab 쉘 삭제* * * * * 명령어 형식으로 사용한다.앞에서부터 분, 시, 일, 월, 요일(0~6)이다.각 칸에 들어가는 기호의 의미는 아래와 같다.: 모든 단위에 대해 실행 ex) 매분/n : n으로 나눠지는 때 마다 실행 ex) 매 5분마다 실행.n : n에 실행 ex) xx시 10분이 되면 실행n1 - n2 : n1과 n2 구간에 실행, ex) 10-15라면 10, 11, ..

기타 툴 2022.10.29

VM virtual box에 ubuntu 설치하기

필요한 설치 파일 VirtualBox 6.1.34 platform packages [주소] VirtualBox 6.1.34 Oracle VM VirtualBox Extension Pack [주소] Ubuntu Desktop 22.04 LTS [주소] VM VirtualBox 설치 과정 [ 원본 사이트 ] https://phantom.tistory.com/6 위 설치파일을 모두 다운받는다. VirtualBox setup을 실행시킨다. 옵션은 기본으로, Yes를 눌러준다. VirtualBox를 실행한다. 내 설정 옵션 운영체제는 linux , Ubuntu (64-bit) 기본메모리는 2048MB 디스크는 10GB 컨트롤러는 vdl 파일 > 환경설정 > 확장으로 이동한다. ‘버전’ 옆 파란 네모와 초록색 +를..

기타 툴 2022.10.29

Hilt 간단한 예제

Hilt의 기본 개념은 아래 링크에 잘 나와있다. 우선 읽어보자 [Hilt tutorial] https://blog.mindorks.com/dagger-hilt-tutorial 이걸 잘 읽고, 이제 아래 그림을 머릿속에 담아두며 실습을 해보자 Activity에서 Cake을 필요로 한다. 이때 Cake은 아래와 같은 종속성을 필요로한다. Cake(bread: Bread) Bread(flour: WheatFlour, milk: Milk) WheatFlour(wheat: Wheat) [Step 1] 우선 모듈에서 Provide를 구현하고 그 후에 Inject를 해주자. /* Module */ import farmer

kotlin 문자열 +와 formatting의 차이

fun play(){ val a = "apple" val b = "bee" val plus = a+b //(new StringBuilder()).append(a).append(b).toString(); val format = "$a$b" //(new StringBuilder()).append(a).append(b).toString(); } 디컴파일 결과 같은 결과를 내기 때문에 성능상 차이는 없을 것으로 예상된다. 정말 개발자들 편하게 쓰라고 두가지를 만들어준 것 같다. 그래도 두 가지 스타일을 섞어서 쓰는 일은 없도록 하자. val notGood = a + "$a$b" val fine = "$a" + "$b" **문자열 길이가 길어져서 줄바꿈이 필요할 때는 +를 사용하면 좋다.

[JUnit] assert 함수 종류

기댓값의 자료형에 따라 어떤 assert 함수를 사용해야 하는지 알아보자. assertEquals(expected, actual, message) assertNotEquals(expected, actual, message) Java 기준 primitive 자료형(Object, char, byte, double, float, int, long, short )을 비교한다. kotlin 기준으로 설명하면, equals( )를 상속한 클래스의 인스턴스, String, Numbers를 비교할 수 있다. message에는 String과 Supplier을 넣을 수 있다. assertSame(expected, actual, message) assertNotSame(unexpected, actual, message) 두..

[IntelliJ] JUnit5 라이브러리 maven으로 적용하기

Android Studio에는 별도 설정 없이도 JUnit을 사용할 수 있지만, IntelliJ에서는 직접 종속성을 추가해줘야 한다. 써봤을 때 gradle 보다는 maven이 편리하기 때문에 maven을 사용하는 방식을 정리해보았다. 나는 최초 프로젝트 설정 시 아래와 같이 빌드 시스템을 maven으로 설정했다. 빌드 시스템이 다른 경우에도 검색은 되었던 것으로 기억하는데, 잘 되지 않는다면 빌드 시스템 설정을 다시 확인하자. 좌측 상당의 [ 파일(F) > 프로젝트 구조 ]로 이동한다. 단축키 ctrl+alt+shift+S 도 사용 가능. 프로젝트 설정 > 라이브러리를 선택한 후, + 버튼을 누르고 Maven에서…를 선택한다. 검색창에 JUnit5를 검색한 후 5초 정도 기다린다. 5초 후 원하는 버전..

setContentView 안될 때 - onCreate 체크

코드를 몇 줄 쓰지도 않았는데 setContentView가 안 되는 경우가 있다. manifest에 등록도 똑바로 했고, xml 렌더링에 문제가 없는데도 문제가 생긴다면 올바른 onCreate 의 super를 호출했는지 확인해봐야 한다. Activity에 AppCompatActivity를 상속받은 후, Android 자동완성 기능을 이용해 탭 하면 선택되는 것은 onCreate(Bundle, PersistableBundle)이지만, setContentView를 호출할 수 있는 것은 onCreate(Bundle)이다. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(bin..