본문 바로가기

전체 글

(89)
교환학생 관련 준비 글 오스트리아 비엔나에 위치한 빈경영응용과학대학에서 2023년도 2학기 교환학생을 진행했습니다. 저는 준비하면서 다양한 정보를 찾아봤지만, 역시 현지에서 살아보면서 체감하는 건 다르더라구요. 그래서 여기에 댓글이나 어떤 방식으로든 질문 남겨주시면, 최대한 아는 선에서 답변해드리고자 합니다.
onNewIntent 개념 및 사용법 1. 개요 startActivity() 나 startActivityForResult() 메서드를 호출하면 액티비티 화면을 띄울 수 있습니다. 그런데 동일한 액티비티를 계속 위의 메서드로 호출하게 되면 동일한 액티비티가 메모리에 여러 개 만들어질 것입니다. 이를 방지하기 위해서 Flag(플래그)를 사용할 수 있습니다. 플래그를 사용하면 동일한 액티비티가 계속해서 생성되지 않고 하나의 액티비티만 존재하게 할 수 있습니다. 2. 생명주기 다른 액티비티에서 이미 생성된 액티비티를 호출하면 onNewIntent() → onResume() 메서드 순서로 호출됩니다. 그런데 만일 동일한 액티비티에서 동일한 액티비티를 호출하면 onPause() → onNewIntent() → onResume() 메서드 순서로 호출됩니..
java.lang.NoSuchMethodError: No virtual method elapsedNow()D in class Lkotlin/time/TimeMark 1. 발생 원인 Koin을 사용할 때, androidLogger에 아무것도 설정해주지 않으면 위 에러가 발생합니다. 그 예시로 다음과 같이 사용하시면 에러가 발생합니다. startKoin { androidLogger() androidContext(this@ApplicationClass) modules(beerSpecificModule, beerSpecificVMModule, recommendBeerModule, recommendBeerVMModule, feedbackModule, feedbackVMModule, refrigeratorModule, refrigeratorVMModule, userInfoModule, userInfoVMModule, writeAndReviseReviewModule, write..
툴바(Toolbar) 내부 텍스트뷰(TextView) 문자열 가운데로 배치하는 법 안녕하세요? 닉네임간편입니다. 이번 시간에는 툴바 내부에 텍스트뷰의 문자열을 가운데로 배치하는 법에 대해서 설명드리겠습니다. 1. 문제 툴바에 문자열을 배치할 때 기본 title을 사용하지 않고 텍스트뷰를 사용하는 경우가 있습니다. 그런데 문자열을 가운데에 배치하려고 layout_gravity 속성을 설정하여도 가운데에 배치가 되지 않는 경우가 있습니다. 2. 해결 방법 이때 contentInsetStart 또는 contentInsetLeft을 0dp로 설정하면 중앙에 가깝게 배치할 수 있습니다. 툴바 내부에선 Navigation 버튼이나 메뉴 아이템들이 배치될 수 있고, 이것들이 기본적으로 차지할 만한 최소한의 공간을 미리 설정합니다. 이 값은 default로 16dp이며, 따라서 기본적으로 툴바 내부..
[알고리즘 이론] 6. 시간복잡도 1. 알고리즘 수행 시간의 척도 알고리즘 수행 시간을 지배하는 것은 반복문입니다. 입력의 크기가 커질수록 반복문이 수행되는 횟수가 알고리즘 수행 시간을 지배하게 되고, 따라서 반복문이 수행되는 횟수로 알고리즘의 수행 시간을 측정합니다. 따라서 이번 시간에는 다양한 알고리즘과, 그 알고리즘의 시간복잡도에 대해서 다루겠습니다. 2. 선형 시간 알고리즘(linear time) var count = 1 for (i in 1 until N) { count *= i } for (j in 1 until 50) { count += j } N의 값이 커짐에 따라 아래의 반복문에서 50만큼 반복하는 것은 크게 고려하지 않아도 됩니다. 따라서 이때 알고리즘의 수행 시간은 N에 정비례합니다. 이렇게 입력값에 정비례하여 수행 ..
Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ 1. 발생 원인 JSON 포멧 데이터를 GSON 라이브러리를 통해 사용할 때 발생할 수 있는 오류입니다. 2. 해결 방법 retrofit 객체를 만들 때 gson 객체에 속성을 추가해서 설정해주면 됩니다. 먼저 아래처럼 retrofit 객체를 만들어줍니다. sRetrofit = Retrofit.Builder() .baseUrl(API_URL) .client(client) .addConverterFactory(GsonConverterFactory.create()) .build() 이때 GsonConvertFactory.create() 부분에 gson 객체를 만들어서 넣어주면 됩니다. gson 객체는 다음과 같이 만들어줍니다. val gson : Gson = GsonBuilder() .setLenient()..
could not find Fragment constructor 안녕하세요? 닉네임간편입니다. 이번 시간에는 제목에 있는 오류에 대해서 설명드리겠습니다. 1. 개요 이 에러는 RuntimeException 중 하나로, 프래그먼트를 만들 때 인자를 넣어서 만들었기 때문에 발생합니다. 왜냐하면 프래그먼트를 재생성할 때 빈 생성자가 있어야 하기 때문입니다. 따라서 인자를 넣어주고 싶다면 프래그먼트 자체를 만들 때 인자를 넣지 말고, 두 가지 방법을 사용할 수 있습니다. 1) FragmentFactory 이용 이 방법을 이용하면 프래그먼트에 인자를 넣어서 만들어줄 수 있습니다. 그러나 현재 이 방법을 이용하면 동일한 이름의 프래그먼트에 대해서는 다른 값을 줄 수 없기 때문에(제가 방법을 아직 못 찾은 걸수도 있지만) 사용하지 않았습니다. 2) arguments 이용 argu..
CMC CX 1기 후기 안녕하세요? 이번 CMC CX 1기 활동을 수료한 닉네임간편(별명 심플)입니다. 오늘은 제가 활동을 했던 CMC CX에 대해서 설명드리고자 합니다. 1. CMC CX란 CMC CX는 디자이너, 서버, 클라이언트 개발자가 협업해서 앱을 런칭하는 프로그램입니다. 디자인 및 기획에 한 달, 실제 개발에 한 달 조금 넘는 기간이 주어지는 만큼 타이트하게 프로그램이 이뤄졌는데요, 그래도 그랬기에 훨씬 몰입하면서 개발할 수 있었던 것 같네요 특히 이번 CMC CX는 1기, 즉 최초로 도입된 것이었기 때문에 약간의 부담감(?)도 있었지만, 그래도 좋은 팀원분들과 운영진분들 덕분에 성공적으로 활동을 마무리할 수 있었습니다. 2. 데모데이 CMC CX 프로그램을 하면 데모데이에 참가하여 일반인 및 기업 관계자분들에게 앱..

728x90
반응형