
1. 데이터베이스란?여러 사람들이 다양한 방식으로 데이터를 저장, 검색, 수정할 수 있도록 구조화된 데이터의 집합앱 또는 시스템에서 데이터를 구조화하고 효율적으로 다루기 위한 도구 사용 예시사용자 로그인 정보 저장 (이메일/비밀번호)최근 사용 내역 조회오프라인 상태에서도 앱 작동 (ex. 메모 앱, 캘린더) 2. DBMS (Database Management System)데이터베이스를 쉽게 사용할 수 있도록 해주는 소프트웨어 주요 역할데이터를 파일이 아닌 논리적으로 관리 (인덱스, 트랜잭션, 동시성 제어 등)SQL을 통해 데이터 처리대표 DBMS분류예시관계형 (RDB)MySQL, PostgreSQL, Oracle비관계형 (NoSQL)MongoDB, Firebase, Redis로컬 DBSQLite, Roo..

문제 상황저는 블루투스 기술을 매일 쓰고 있지만, 블루투스가 정확히 뭔지, 어떻게 동작하는지 자세히 설명하려고 하면 막연해지는 경우가 많습니다.1년 넘게 블루투스 디바이스를 활용한 서비스를 개발하면서 늘 "언젠가는 제대로 정리해야지"라는 생각을 가지고 있었습니다.지금 회사를 다니면서 학습한 블루투스에 대해서 이번 기회에 블루투스의 개념부터 동작 원리, 종류까지 개발자 입장에서 알아야 할 내용을 정리해보려 합니다. 블루투스의 정의블루투스(Bluetooth)는 짧은 거리에서 데이터를 주고받기 위한 무선 통신 기술입니다.대표적인 특징은 다음과 같습니다근거리 전용: 보통 10m 내외의 거리에서만 연결 가능저전력: 배터리를 적게 소모하는 구조간편한 연결: 페어링만 되면 자동 연결 지원그래서 블루투스는 스마트워치,..

문제 상황회사에서 운영하던 서비스가 데이터가 많이 쌓여서 api return까지 걸리는 시간이 10초를 넘으면서 사용 기록이 많은 사용자들에게 앱에서 연속적으로 timeOut이 발생했습니다. 현재 상황에서 조회에 소요되는 시간은 30초 전후이고, DB 개선이 필요하지만 동시에 timeOut 제한 시간도 수정을 해야할 것 같습니다. 타임 아웃의 종류설정할 수 있는 값의 범위는부터 0 부터 Integer.MAX_VALUE까지이며, 단위는 밀리초(ms)입니다.0은 제한 없음(no timeout)을 의미합니다.타임아웃 종류 SocketTimeOutException이 발생할 수 있는 상황1. 서버 응답 지연서버가 내부적으로 오래 걸리는 작업을 처리 중일 수 있습니다 (예: 데이터베이스 작업, 외부 API 호출)...

문제 상황버전 업데이트를 할 때, 실제 상황과 동일하게 테스트를 하고 싶을 때가 있습니다. 하지만 안드로이드 스튜디오에서 앱을 실행하거나 빌드하면, 기본적으로 debug 빌드 타입으로 앱이 빌드됩니다.실제 서비스와 동일한 환경에서 테스트하거나, 디버깅 로그 없이 앱을 실행하고 싶을 때는 release 빌드로 앱을 실행하고 싶은 경우에는 빌드 세팅을 바꿔야합니다. 안드로이드 스튜디오는 기본적으로 debug를 기본 빌드 타입으로 인식하며, 실행(Run) 버튼을 눌러도 항상 debug 빌드가 실행됩니다.그래서 다음과 같은 상황이 발생할 수 있습니다디버그 로그가 포함된 상태로 테스트됨난독화(ProGuard)가 적용되지 않음최적화되지 않은 상태로 앱이 동작릴리즈 빌드에서 발생하는 버그를 사전에 확인할 수 없음이런..
문제 상황이번에 서버 이전을 하면서 레거시 코드를 고치게 되었는데, 도메인 및 기타 하위 경로가 변경되었습니다. baseUrl을 변경한 후, 일부 경로가 호출 URL에 반영되지 않는 문제가 있어서, 정리해봤습니다.원래 baseUrl에는 도메인 주소까지만 작성되어있었습니다. 하지만 한 앱에서 하위 경로도 모두 동일하게 사용하는 부분이 있어서 해당 부분까지 포함해서 BaseUrl에 넣어뒀습니다.예를 들면 https://like.while.android/api/v1/ 와 같은 형식으로 입력했습니다.baseUrl을 https://like.while.android/api/v1/로 설정했는데도, 실제 API 호출 시 /api/v1/가 생략되었습니다.이유는 interface의 endpoint path 설정에서 @GE..
문제 상황이번에 회사 프로젝트가 출시 준비에 들어가면서 개발 중인 코드를 다른 회사에 정적 분석을 맡기게 되었습니다. 그래서 이번 기회에 정적 분석이 무엇인지, 왜 해야하는지 조사하였습니다. 정적 분석 정의정적 분석은 소프트웨어 개발 과정에서 소스 코드, 바이너리 코드 또는 애플리케이션을 실행하지 않고 검사하는 기술입니다. 이 분석을 통해 코드에서 안티 패턴, 코딩 오류, 보안 취약점, 스타일 문제 등을 발견할 수 있습니다. 정적 분석 도구는 코드를 논리적으로 분석하고 복잡한 알고리즘을 사용하여 잠재적인 문제점을 식별합니다. 정적 분석 필요성품질 향상: 개발 초기 단계에서 코드의 버그와 취약점을 식별하여 수정함으로써 소프트웨어의 전반적인 품질을 향상 시킬 수 있습니다. 이는 추후 발생할 수 있는 오류를 ..

문제 상황사용자가 프로모션 알림을 앱을 사용하지 않을 때도 이러한 알림을 받을 수 있어야 합니다. 구현 순서firebase 프로젝트 생성 및 google-service.json 파일 다운로드필요한 종속성을 build.gradle에 선언AndroidManifest에 service 추가FirebaseMessagingService을 상속 받아서 구현 구현 방법Firebase Cloud Messaging을 활용하여 앱에서 프로모션 알림을 수신하고 처리하는 구현 방법을 다음 단계별로 설명합니다 1. 프로젝트 설정google-services.json 파일을 프로젝트에 추가합니다.필요한 종속성을 build.gradle에 선언합니다.// appplugins { id("com.google.gms.google-se..
문제 상황팀 개발자분이 회사 안드로이드 앱이 난독화가 필요할 것 같다고 하셔서, 준비를 하게 되었습니다. 이전에 했던 개인 프로젝트들을 스토어에 올릴 때, abb 파일을 올리면 Progard 혹은 R8을 사용해서 난독화된 코드를 사용하라는 경고 메세지를 본 적이 있습니다. 이번 기회에 앱 난독화는 왜 해야하는지, 어떻게 하는 것인지 정리하려고 합니다. 난독화난독화는 코드의 가독성을 떨어뜨려, 소스 코드를 분석하거나 역공학하는 것을 어렵게 만드는 기법입니다. 난독화를 통해 코드의 변수명, 메서드명, 클래스명을 의미 없는 문자열로 변환하거나, 코드의 구조를 복잡하게 만들어서 코드를 읽기 어렵게 만듭니다. 이는 주로 소스 코드의 보안을 강화하고, 소스 코드의 무단 복제나 악의적인 사용을 방지하기 위해 사용됩니..
- Total
- Today
- Yesterday
- Android
- java
- Kotlin
- @provides
- 데이터무결성체크
- 싸피
- retrofit
- this
- build type
- tomap
- 안드로이드
- compose
- missingbinding
- 모바일트랙
- 블루투스개념정리
- release build
- newtoken
- 빌드 타입
- 디버그 빌드
- 코틀린
- connecttimeout
- okhttp
- SWEA
- 릴리즈 빌드
- 상단알람
- SSAFY
- hilt
- 백준
- api 경로
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |