개발자(36)
-
Android FullScreen을 Kotlin으로 구현하는 꿀팁
Android 앱 개발을 하면 FullScreen을 한 번쯤은 만들게 되는데요. 가장 흔하게는 처음 서비스 로고가 뜨는 스플래쉬 화면이 될 수 있고 게임 개발 시에도 사용하게 됩니다. Java로 Android FullScreen을 구현한 예제는 참 많이 찾아볼 수 있는데 Kotlin으로 적용한 예제가 상대적으로 없더군요. 또, Android 11(R)에 대응하는 예제가 거의 없었어요. 곧 SYSTEM_UI_FLAG_FULLSCREEN이 사라질 예정이거든요(API Level 30부터 Deprecated). 진정한 Android 개발자라면 새로운 업데이트에 대응할 수 있어야겠죠? 오늘은 이 두 가지를 모두 만족하는 예제를 알려드리겠습니다. 예상보다 더 힘겹게, 여러 문서를 보고 찾은거라 분명히 도움되시리라 ..
2021.04.27 -
[서버 인프라 / 백엔드 개발] 바스타바스타 Ver 2.0
서비스 간략 소개 신예 아이돌과 팬을 이어주는 엔터테인먼트 플랫폼 바스타 바스타 Ver 2.0입니다. 기존 Ver 1.0을 전면 수정하여 새로운 버전을 개발했습니다. 기술 스택 서버 인프라 : AWS Elastic Beanstalk / S3 / Lambda / Media Convert 웹서버 : Apache 어플리케이션 서버 : mod_wsgi 개발언어 : Python3 프레임워크 : Django REST Framework 라이브러리 : APScheduler : 랭킹 계산, 콘텐츠 예약 발행 등의 기능 구현을 위해 사용한 내장형 스케줄러. Sentry : 서버 버그 리포팅과 모니터링을 위해 사용한 라이브러리. 맡은 업무 데이터베이스 설계 및 Django ORM 구현 - ✔기여도 100% Django RE..
2021.04.09 -
Django ORM에서 Subquery 사용하기
사용자의 다양한 요청에 대한 응답을 하기 위해서는 DB Level에서 다양한 연산이 필요합니다. Django ORM을 사용하게되면 직접 Query를 작성할 수도 있지만 이보다는 ORM에서 제공하는 메서드들을 활용하는 것이 더 나을 수 있습니다. 왜냐하면 Raw Query로는 Django REST Framework에서 제공하는 다양한 기능(e.g Filtering, Ordering)을 사용하는데 제한이 있을 수 있기 때문입니다. 아래의 예시를 통해 Sub Query를 사용하는 방법을 알아보도록 합니다. # models.py class Video(models.Model): id = models.AutoField(primary_key=True) title = models.TextField(max_length=..
2019.04.16 -
Python에서 Datetime과 Timezone 다루기
Datetime은 python에서 날짜와 시간을 표현하는 아주 유용한 패키지입니다. 대다수의 데이터베이스의 시간은 기본적으로 UTC 시간을 기준으로 설정이 되어 있습니다. 국내에서만 서비스를 한다고 하면 데이터베이스의 시간을 한국표준시간(KST)로 설정할 수도 있습니다. 하지만 글로벌 서비스의 경우에는 해당 유저에 따라 적절한 시간대를 보여주어야 할 경우도 생기게 됩니다. 이럴때에는 데이터베이스에 UTC시간으로 저장을 해놓고 데이터를 가공할 때 Timezone을 원하는 지역의 Timezone으로 변경하면 됩니다. 이제 그 방법을 알아보도록 합니다. Timezone 변경하기from datetime import datetime from pytz import timezone # 현재 시간을 UTC로 표시한다 ..
2019.04.10 -
AWS Lambda와 RDS 연동하기
이번에는 RDS에 접근하여 데이터를 수정하는 AWS Lamda 함수를 구현해봅니다. 구현에 앞서 구현 환경은 아래와 같습니다. RDS : PostgreSQL 10.6 Lambda 함수 : Python으로 구현 IDE : IntelliJ PyCharm AWS Lambda를 활용하여 PostgreSQL 인스턴스가 운영되고 있는 RDS DB 서버에서 데이터를 조작하기 위해서는 psycopg2라는 라이브러리가 필요합니다. Psycopg2는 PostgreSQL에 접근하여 데이터 조작을 하기 위해 사용되는 라이브러리인 libpq를 Python에서 사용할 수 있도록 만든 라이브러리입니다. libpq는 C로 만들어진 라이브러이이고 psycopg2는 이 C로 만들어진 라이브러리를 Python에서 사용할 수 있도록 만든 ..
2019.04.09 -
AWS Lambda란 무엇인가?
AWS Lambda는 특별히 서버를 운영하거나 관리하지 않아도 클라우드 상에서 소스코드를 실행시켜주는 클라우드 서비스를 말합니다.근래의 서비들은 대다수 Client - Server 구조로 되어 있습니다. 네트워크를 통해 다양한 데이터를 주고 받고, 사용자에게 맞춤형 데이터를 제공하기 위해서는 Server라는 존재가 필수적입니다. Server는 Client의 요청에 따라 데이터베이스에서 사용자가 원하는 데이터를 가공하여 보내줍니다. 이렇게 Sever는 서비스에서 중추역할을 하기 때문에 만약 Server가 제대로 동작하지 않으면 서비스 운영에 큰 타격을 입게 됩니다. Server를 직접 운영하는데에는 꽤나 번거로운 작업이 필요합니다. 개발 언어에 따른 환경 설정이 번거롭고 여러 패키지들이 얽히고 섥힘에 따라..
2019.04.08