전체 글

전체 글

    [Django] upload multiple image file in one model

    한 모델에 여러 이미지 파일을 업로드 해야 할 때 Meet 이라는 모델이 있고, 그 모델 하나에 여러 이미지 파일이 들어갈 수 있는 상황이라고 했을 때, 어떻게 구현해야 할까? 쉽게 생각하자면, 댓글과 다를 것이 없다. 댓글 또한 one to many 모델이기 때문이다. 단지 댓글은 텍스트 데이터를 가지고 있는 것이고, 이미지 파일은 이미지 데이터를 가지고 있는 차이가 있을 뿐이다. 따라서 같은 방식으로 구현을 해주면 된다. 모델의 객체값을 ForeignKey로 가지고 있는 Images 라는 모델을 만들었다. #models.py class Meet(models.Model): pair = models.ForeignKey(Pair, blank=False, null=False, on_delete=models...

    [Android/kotlin] Layout Margin dp 단위 변경하기

    📌 Layout Margin dp 단위 변경하기 fun View.margin(left: Float? = null, top: Float? = null, right: Float? = null, bottom: Float? = null) { layoutParams { left?.run { leftMargin = dpToPx(this) } top?.run { topMargin = dpToPx(this) } right?.run { rightMargin = dpToPx(this) } bottom?.run { bottomMargin = dpToPx(this) } } } inline fun View.layoutParams(block: T.() -> Unit) { if (layoutParams is T) block(lay..

    [Android] What is LiveData

    📌 LiveData = 생명주기(LifeCycle)를 알고 있으며, 데이터를 들고 있는 클래스 (Data Holder Class) 📓 데이터를 들고있는 이유 LifeCycleOwner의 LifeCycle에 따라 이 데이터를 처리함으로써 여러 이점을 확보하기 위해서. 📒 LifeCycleOwner란 안드로이드 생명주기 (Android LifeCycle)를 알고 있는 클래스라 보면 된다. 메소드가 오직 getLifeCycle() 밖에 없는 단일 메소드 인터페이스 클래스이며, Activity나 Fragment에서 이를 상속하고 있다. 즉 저 둘은 LifeCycleOwner이기도 하다는 것이다. (26.1 버전 이상, 그전에는 직접 implements 해야함) 한 마디로 LiveData의 observer 메소드..

    [Django] AWS S3와 연동하기

    Django, AWS S3와 연동하기 AWS에 입장하여, 서비스 -> S3를 눌러 S3 Manage Console에 진입한다. 1. 버킷 만들기를 클릭 2. 버킷 이름을 적어주고 '다음' 3. 옵션 구성 페이지. 현재는 필요 없다. 바로 '다음'을 클릭 4. 전체 체크를 풀어주고 퍼블릭 정책 관련한 아래 2가지만 체크해주고 '다음' 클릭 5. 위와 똑같게 맞추었다면, 바로 '다음'을 눌러도 무방하다. '다음' 클릭 6. 제대로 버킷이 생성되었다면, IAM을 설정하러 갈 차례이다. Hot Ez Ex) IAM이란 쉽게 비유하자면 리눅스에서 nginx나 db용 유저를 따로 만들어 관리하듯이, 그런 유저를 하나 새로 만들어준다고 생각하면 된다. 물론 전체적인 상황에서는 다를 수 있지만 현재 상황에서는 비슷한 용..

    [Android/kotlin] ktlint 설치

    📌 Ktlint 설치 kotlin 언어로 코드를 작성하다 보면, 작성 표준에 잘 맞추어 작성하고 있는지 궁금할 때가 있다. 이는 구글 공식 가이드라인과 kotlin 공식 가이드라인이 존재하기 때문에, 이 문서들로도 해결된다. 그러나 실제로 코드를 짜다보면, 이를 간과하고 작성하게 되는 부분이 많다. 하지만 ktlint를 사용하게 되면, 작성한 코드에 대해 검사를 실시해주어 곧바로 수정이 가능하다. 또한 지속적으로 자각하여 코딩을 진행할 수 있게 된다. 📍 코드 검사 예시 > Task :app:ktlint ../Adapter.kt:3:1: Imports must be ordered in lexicographic order without any empty lines in-between ../Adapter.k..

    [django/문제 해결] TypeError: expected string or bytes-like object

    TypeError: expected string or bytes-like object 주로 model에 타입에 맞지 않은 잘못된 값을 넣고 있을 확률에 높으니 그 부분을 잘 보도록 하자

    [AWS CentOS] Django Nginx uWSGI 연동하기

    Django Nginx uWsgi 연동하기 AWS에서 Free Tier 서버 기본 선택 시에 설치되는 instance이며, CentOS 이며, django는 미리 구축한 상태입니다. ( 그러나 연동을 위한 설정은 해주지 않은 상태였습니다) 아래 같은 환경에서 진행하였다. $ cat /etc/*release* 0. 준비물 django는 설치되어있다는 가정하에, settings에 static 폴더와 media 폴더 경로를 설정하지 않았다면 설정해준다. $ settings.py STATIC_URL = '/static/' STATIC_ROOT = '/{프로젝트 경로}/assets/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] # media file (a..

    [안드로이드/font] 폰트 추천 2. Praktika

    https://www.dafont.com/praktika.font Praktika Font | dafont.com Note of the author Praktika Light is a sample of the complete 40 font grotesk family with widths from condensed to extended. www.dafont.com 유료 폰트 (Light 버전은 무료) 0. 한장 소개 어느 앱을 까다가 발견한 폰트인데, 숫자와 영어만 적용 가능한 폰트이다. 숫자가 매우 digitalic하게 보이고, 영어 또한 숫자와 어울려서 매우 맘에 들어서 알아보았더니 유료 폰트..ㅠ 그래서 비슷한 걸 알아보고 있다.