전체 글

전체 글

    [Kotlin] Coroutine 연습 문제

    Coroutine을 공부하면서, 문서를 꼼꼼히 읽어봐도 실전에서는 분명 헷갈리는 부분이 적지 않았다. 그래서 다시 Unit Test를 통하여 연습하던 중에, 이를 문제 - 정답 형식의 문서로 작성해두면 좋을 것 같아 남기게 되었다. 🤔 Coroutine 연습문제 Unit Test 내에서의 결과이기 때문에 상대적으로 긴 런타임을 가지는 실제 상황과는 다른 결과가 나타날 수 있습니다. 그러나 오히려 그렇기에 공부하기에는 더 확실한 방법이므로, 출력의 보장 결과 여부는 Unit Test Runtime 기준으로 합니다. 🕐 문제 1. 출력 결과를 예상하시오. class ExampleUnitTest { @Test fun assert_test() { runBlocking { println("start") /** A..

    [Android/문제 해결] java.lang.illegalArgumentException: Unexpected char 0xxxxx at Number in ~ Error

    📌 illegalArgumentException: Unexpected char 에러에 대한 처리 나의 경우 안드로이드에서 Multipart Upload를 시행 중 위의 에러를 겪었는데, 결과적으로는 이런 에러가 떠주어서 정말 고맙다는 생각까지 하게 되었다. 만약 이런 에러가 뜨지 않았다면, 비정상적인 결과를 보고 대체 어디서 에러가 난것인지 찾느라 몇 달을 밤새야 했을 것이니.. 심지어 업로드하는 대상에 따라서 간헐적으로 뜨는 에러이기도 했다. 에러 문구 그대로, 정상적인 작업(여기서는 업로드)을 진행 불가능하게 만드는 어떤 텍스트가 존재한다고 알려주는 것이다. 단순 텍스트로는 보이지 않아도 업로드를 위해 인코딩되거나 할 때, 개행 문자로 바뀌거나 다른 의미있는 문자로 바뀌게 되어 원치않은 데이터가 보내..

    [Android/문제 해결] java.lang.IllegalArgumentException: You must call this method on the main thread In Kotlin

    📌 Glide works with background thread Glide에서 BItmap을 얻고자 하는 등의 행위를 할 때, background thread 내에서 작업하라는 에러 문구가 등장합니다. 이는 사실 공식 문서에서 가이드를 제공 중입니다. Ref) 아래는 kotlin 내에서 이를 구현했을 때의 모습입니다 Glide.with(context) .asBitmap() .load(url) .into(object: CustomTarget() { override fun onLoadCleared(placeholder: Drawable?) { // 아래 resource가 들어간 뷰가 사라지는 등의 경우의 처리 } override fun onResourceReady(resource: Bitmap, trans..

    [Python] Gmail을 통해 여러 명에게 HTML 이메일 보내기

    📌 Python으로 이메일 보내기 (G-Mail) Python의 내부 라이브러리인 smtplib (SMTP 라이브러리)를 사용하여 HTML을 포함한 이메일을 여러 명에게 보내는 방법을 알아보도록 하겠습니다. 📒 구현 소스 IMPORT import smtplib from email.mime.multipart import MIMEMultipart #from email.header import Header from email.mime.text import MIMEText MIMEText 라이브러리는 메일의 제목과 본문 등을 설정하는데에 쓰이는 라이브러리 입니다. 단순 plain-text 에는 MIMEText가 쓰이며, html이나 image를 포함시켜려면 MIMEMultipart를 사용하여야합니다. Heade..

    [Django] project에서 확실하게 app 지우기

    Django 프로젝트 내에서 App 지우기 0. settings,py의 INSTALLED_APP 에서 해당 App을 지운다 1. urls.py에서 해당 앱의 urls.py을 연결해두었다면 지운다. 2. postgresql db에 접속하여 해당 app 테이블을 지운다 3. manage.py makemigrations & manage.py migrate #delete app in django project

    [안드로이드/font] 폰트 추천 3. Spoqa Han Sans

    https://github.com/spoqa/spoqa-han-sans spoqa/spoqa-han-sans Spoqa Han Sans. Contribute to spoqa/spoqa-han-sans development by creating an account on GitHub. github.com 0. 한장 소개 토스 등 여러 앱에서 사용 중인 Spoqa Han Sans 글꼴이다. 개인적으로는 noto sans랑 비교해보았을 때 전체적으로 비슷한 느낌? 이랄까, 영문 한문 숫자 모두 무난무난한 느낌이다. 어플리케이션에 사용 시 Default 폰트로 사용하기에 괜찮다고 생각될 정도로 잘 만들었다 생각하는 폰트.

    [React Native] Percentage width in Flatlist Item

    FlatList 내에서 Item의 width를 Percentage로 정하기 FlatList 내의 item Style을 정해줄 때, width: '90%' 이런식으로는 적용되지 않는다. 아래와 같이, Screen의 Dimension을 구하여 * percent로 해주면 잘 적용된다! import { Dimensions } from "react-native" const ITEM_BOX: ViewStyle = { width: Dimensions.get('screen').width * 0.90, ... 중략 ... }

    [Django] AWS S3 Public 권한 설정하기

    📌 AWS S3 Public 권한 설정하기 [Server/Django] - [Django] AWS S3와 연동하기를 진행한 이후, 별다른 조치없이 S3에 파일을 업로드 하였다면, 해당 파일에 public한 연결 방법으로는 Access Permission Denied 메시지가 뜰 것이다. public 접근을 전부 차단해버렸으니 당연하다. 이 글에서는 public 권한 (정확히는 GET만)을 허용해주는 방법을 알아볼 것이다. 📍 S3 권한 탭으로 가서 아래와 같이 2개만 체크 📍 버킷 정책을 눌러 버킷 정책 편집기 부분의 ARN: 옆 부분을 복사 이후 아래의 정책 생성기 클릭 📍 S3 정책 생성기 화면에서 설정 Select Type Of Policy : S3 Bucket Policy Effect : Allo..