TeamOff Blog

[Android] Realm DB로 데이터 관리하기

Team OFF 안드로이드 앱에서 스케줄 관리 기능을 구현하면서, 로컬에 데이터를 저장하기 위해 어떤 DB를 사용해야 할지 고민이 많았습니다. 안드로이드에서 데이터를 저장하는 방식에는 여러가지가 있습니다. 1. SharedPreferences 적은 양의 원시 데이터를 (key, value) 형태로 앱 안에 XML 파일로 저장합니다. 2...

[iOS] iOS에 Realm 도입하기

이번 포스트에서는 오프오프 iOS 프로젝트에 채택한 Realm의 특징과 간단한 사용법에 대해 알아보겠습니다. Realm ❓ 렘? 렐름? Realm은 모바일에 특화된 NoSQL 데이터베이스로 Swift, Objective-C, Java, Kotlin 등 다양한 SDK를 제공합니다. iOS에서 Realm을 사용할 경우, UserDefault...

2달간의 프로젝트 회고

뭘 했다고 벌써 회고를 해? 프로젝트가 과연 50%는 완성이 됐을까 하는 의문이 있지만 아무 연관 없는 팀원들이 모여 같이 완성을 위해 노력하는 과정을 남겨두기 위해 장난같이 시작한 프로젝트를 2달간 진행하면서 느낀 여러 가지 점을 기록해보고자 합니다. 시작 🚀 우연히 이 프로젝트의 백엔드를 맡고 있는 친구와 술을 먹으며 이야기를 하다가...

[Backend] Postman으로 API 명세 작성하기

STEP1. API 명세 작성 방법 선택 FrontEnd 와 BackEnd는 API를 통해 소통합니다. 따라서 API 명세서 작성이 굉장히 중요합니다. API 명세서를 작성하는 방식은 크게 다음과 같이 구분할 수 있습니다. 엑셀 파일 restx 라이브러리를 활용한 방식 postman을 활용한 방식 저희 팀이 postman을 ...

[iOS] RxSwift 리팩토링 후기

오프오프는 수 많은 사용자가 수 많은 네트워크 통신을 해야하는 커뮤니티 어플리케이션 이기 때문에, 사용자 입장에서는 네트워크 요청, UI 작업이 끊기지 않고 지속되는 것처럼 보여야 더 좋은 UX를 제공할 수 있습니다. 이를 위해 비동기 처리, 메모리 관리를 위해 RxSwift를 도입하였는데, RxSwift에 대한 간단한 설명과 함께 후기를 남겨보겠습...

[Backend] Pymongo를 이용한 mongoDB와의 통신

mongoDB란? mongoDB는 NoSQL 기반의 document 지향 데이터베이스입니다. MySQL과 같은 관계형 데이터베이스가 아니며 SQL을 사용하지 않습니다. 기존 관계형 데이터베이스와 mongoDB에서 사용되는 용어는 다음과 같이 대입됩니다. RDBMS MongoDB ...

[Android] ViewBinding을 통해 뷰와 상호작용하기

이전에는 안드로이드 코드단에서 view의 컴포넌트들을 객체로 만들어 사용하고 컨트롤하기 위해서 findViewById() 메소드를 많이 사용했었습니다. 1 val textView = findViewById<TextView>(R.id.tv_id) 위 코드와 같이 뷰를 참조하기 위해 findViewById() 메소드를 이용하는 방법은 몇 가...

[Backend] MongoDB 기반 무한 스크롤(Infinite Scroll) 구현 중 경험한 오류 및 디버깅

STEP1 페이지 구현 기법 선택 표시할 콘텐츠가 많은 경우, 데이터 로드를 위한 UX 패턴을 고민해보아야 합니다. 고려할 수 있는 디자인 패턴에는, 1.페이징(Pagination), 2.무한 스크롤(Infinite Scroll), 3.하이브리드(Hybrid)가 있습니다. 각 패턴은 서로 다른 장단점을 가지므로 제공하는 서비스의 특징, 웹/...

[Backend] Python Flask를 활용한 Restful API 서버 구축

Flask란? Python Flask는 간단한 웹 사이트나 API 서버를 만들때 사용되는 Web Framework입니다. 서버를 간단하게 작성할 수 있고 확장하는 것이 용이하여 Micro Web Framework라고도 불립니다. 흔히 파이썬을 활용해 웹 서버를 구축할때 사용하는 Django와 함께 가장 많이 사용되는 라이브러리라고 볼 수 ...

[iOS] Moya를 사용한 네트워킹 (Swift Http 통신)

Why Moya 🤔 iOS에서 네트워킹을 구현하는 가장 기본적인 방법은 URLSession을 사용하는 것입니다. URLSession은 로우레벨의 코드를 작성할 수 있고, 다른 프레임워크를 사용할 필요가 없다는 장점이 있지만, 사용이 복잡하고 코드의 가독성이 좋지 않아서 Foundation Networking을 기반으로한 인터페이스를 제공해 네트...