개발을 파헤치다(101)
-
AWS Cognito 사용 전 알아야 할 필수지식
AWS에서 제공하는 인증 관련 서비스입니다. 기존에 서비스를 기획하고 개발하게 되면 백엔드 쪽에서 가장 먼저 고려하게 되는 것이 바로 사용자 인증에 관련된 부분입니다. 이는 DB 설계를 어떻게 하느냐에 따라, 서비스의 특성에 따라 달라지는데요. 요즘에는 Framework에서도 인증 관련된 다양한 기능을 지원해줘 개발하기가 훨씬 수월하지만 여전히 인증관련된 부분은 개발 및 관리에 많은 리소스가 들게 됩니다. 이러한 문제들을 좀 더 편리하고 생산성을 높일 수 있게 해 주기 위해 등장한 서비스가 바로 AWS Cognito입니다. Cognito는 웹과 모바일 앱에 대한 인증과 권한 부여 및 사용자 관리를 제공합니다. 사용자 입장에서는 이름과 패스워드를 사용하여 직접 로그인하거나 Facebook, Google과 ..
2023.04.13 -
[AWS 활용하기] AWS SAM(Serverless Application Model) 로컬 디버깅 환경 구축하기
AWS SAM은 특별히 서버를 관리하지 않아도 되기 때문에 굉장히 편리합니다. 하지만 API 로직을 개발할 때 테스트 및 디버그가 상당히 곤란한데요. 이런 부분을 보완하기 위해 AWS에서는 Toolkit이라는 플러그인을 지원합니다. Jetbrain사의 IDE 대부분을 지원하니 플러그인을 찾아 설치만 하면 됩니다. AWS Toolkit은 SAM 어플리케이션을 로컬 환경에서 테스트 및 디버깅할 수 있도록 도와줍니다. 이를 위해 내부적으로 Docker를 사용하는데요. 그래서 Docker가 필수적으로 설치가 되어있어야 합니다. https://docs.docker.com/desktop/install/mac-install/ 위 링크를 통해 Docker Desktop을 설치해 줍니다. Docker를 통해 SAM의 t..
2023.04.12 -
[AWS] DynamoDB 시작하기 전에 반드시 알아야 할 것들
AWS는 백엔드 개발자가 해야하는 수 많은 일들을 줄여줬습니다. 일단 백엔드 개발을 한다고하면 웹 서버, DB 등 신경써야 할 것들이 정말 많죠. 이런 기본적인 세팅 뿐만 아니라 운영/관리, 더 나아가 서비스 규모가 점점 커질 때의 대응까지 할 수 있도록 만들어져 스타트업에게는 더할나위 없이 좋은 선택지입니다. 오늘은 AWS DynamoDB에 대해서 알아볼텐데요. 사용하기 전에 알아야 할 기본개념과 특징에 대해서 얘기해볼 예정이니 DynamoDB를 고려하고 있다면 분명 도움이 될 것입니다. DynamoDB? AWS에서 제공하는 고성능 NoSQL 데이터베이스입니다. NoSQL은 기존 RDBMS와는 다르게 비정형 데이터(형식이 딱히 정해지지 않은 데이터)를 저장할 수 있는 데이터베이스입니다. NoSQL 데이..
2023.04.10 -
[Android] 앱 개발시 의존성 주입(Dependency Injection) 적용하기
의존성 주입이라는 개념을 알기 위해서는 먼저 의존성을 알아야 합니다. 하나의 클래스 안에서 다른 클래스를 초기화하고 필요한 메서드를 호출하는 일은 생각보다 많습니다. 별생각 없이 이렇게 코딩했다면 서비스 규모가 커지고 추후에 새로운 기능 추가나 코드 변경 시 정말이지 난감한 상황을 겪을 수 있는데요. 이 난감한 상황이 바로 클래스 간의 의존성 때문에 발생합니다. 그럼 먼저 의존성이 뭘 의미하는지, 그리고 어떤 문제가 발생하는지 한번 알아봐야겠죠? 아래 간단한 코드를 보면서 설명을 해보겠습니다. class Car{ private val engine = Engine() fun start(){ engine.start() } } fun main(args: Array){ val car = Car() car.sta..
2023.03.17 -
[Android ViewPager2] Pager Adapter의 아이템 변경시 발생하는 동시성 문제 해결하기
ViewPager2는 안드로이드 앱 개발을 할 때 대표적으로 쓰이는 레이아웃 컴포넌트입니다. 옆으로 쓸어서 탭 이동을 하거나, 이미지 슬라이드 등 활용하는 곳이 상당히 많습니다. ViewPager2로 화면을 구성할 때 Pager Adapter를 필수적으로 구현을 하는데요. 여러 Fragment들을 여기에 붙였다 없앴다하는 경우 의도와는 다르게 동작하는 상황이 발생합니다. 이번에는 Pager Adapter에 특정 Fragment를 지우고 새로운 Fragment를 추가했을 때 기존 Fragment가 나오는 문제의 원인과 해결 방법을 알아보도록 하겠습니다. 문제상황 ViewPager2를 사용하다보면 내부 Fragment에 이동이 있거나 삭제하고 새로운 Fragment를 추가하는 등의 작업이 생길 수 있습니다...
2023.03.16 -
[WordPress] WordPress에서 REST API 플러그인 만드는 방법
WordPress는 굉장한 확장성으로 단순히 CMS(Content Management System)를 넘어서는 플랫폼이라고 볼 수 있죠. WooCommerce 플러그인을 활용하면 쇼핑몰이 되기도 하고 LMS(Learning Management System) 플러그인을 붙이면 온라인 교육 플랫폼이 되기도 합니다. 이렇게 WordPress를 응용하는 데는 보통 플러그인이라는 형태로 개발이 진행되는데요. 오늘은 WordPress의 데이터를 가져올 수 있는 REST API 플러그인을 만드는 방법을 살펴보겠습니다. 이게 된다면 WordPress기반의 앱이나 웹 서비스를 만들 수 있겠죠? API 등록 가장 먼저 해야 할 것은 사실 플러그인 개발을 위한 기본 디렉토리 구조를 잡는 것인데요. 이 부분은 제가 따로 포스..
2023.03.15