본문 바로가기

전체 글

(124)
REST 외 다양한 API 1. SOAP (Simple Object Access Protocol)특징: XML을 사용하여 메시지를 전송하고, 표준 기반의 프로토콜입니다.장점: 강력한 보안 및 트랜잭션 관리 기능을 제공합니다.단점: 복잡하고, 설정이 까다로울 수 있습니다.2. GraphQL특징: 데이터 질의 언어로, 클라이언트가 필요한 데이터만 요청할 수 있습니다.장점: 불필요한 데이터 전송을 줄여 효율성을 높일 수 있습니다.단점: 복잡한 쿼리는 서버에 부하를 줄 수 있습니다.3. gRPC (gRPC Remote Procedure Calls)특징: Google에서 개발한 고성능 RPC 프레임워크로, Protocol Buffers를 사용합니다.장점: 빠르고 효율적이며, 양방향 스트리밍을 지원합니다.단점: REST보다 설정과 사용이 복..
모노레포 모노레포를 이해하려면 이전의 개념들에 대해 이해해야 한다. 모놀리식 앱모놀리식 애플리케이션(monolithic application)은 단독으로 배포 가능한 프로그램에 모든 기능을 포함보통 애플리케이션을 만들 때 선택할 수 있는, 가장 간단한 시작 형태멀티레포멀티레포 구조는 폴리레포(polyrepo) 구조각 모듈은 멀티레포 구조에서 고유한 저장소가 있는 독자적 프로젝트각 프로젝트는 자율성이 높으며 독립적인 개발, 린트, 테스트, 빌드, 게시, 배포 파이프라인이 존재멀티레포는 현재 대부분의 애플리케이션을 개발하는 표준적인 방법업계는 팀의 자율성이라는 큰 이유 때문에 이 방식을 선호 멀티레포의 문제번거로운 프로젝트 생성패키지의 중복 코드 가능성관리 포인트 증가일관성 없는 개발자 경험(DX)다른 패키지의 변경..
Flutter SplashScreen/가이드스크린 만들기 앱을 실행 할 때 화면을 렌더링 할 때 까지의 과정을 매끄럽게 하기 위한 장치 https://pub.dev/packages/flutter_native_splash flutter_native_splash | Flutter packageCustomize Flutter's default white native splash screen with background color and splash image. Supports dark mode, full screen, and more.pub.dev pubspec.yaml 파일에 해당 종속성이 추가dependencies: flutter_native_splash: ^2.3.1 flutter_native_splash.yaml 파일을 만든 후 아래 코드를 추가 flutt..
Kotlin으로 Yolo V8 사용하기 해당 프로젝트 앱의 기획의 변화에 따라 태블릿 앱도 변화가 필요했다. 처음의 기획의도(버튼으로 사진찍고) AI서버로 전송 -> AI서버에서 Detcting된 사진을 AWS S3로 재 업로드 -> S3에서 가져와 화면에 표출  변화된 기획의도 들어옴과 동시에 카메라 on -> Frame 단위로 Yolo V8 onnx를 이용한 판독 -> 결과값 도출 후 반영  서버와의 통신이 아닌 디바이스 내에서 판단하고 사용할 수 있도록 엣지디바이스 화를 시키는 목적으로 변경되었다.외부 기기의 변화도 있었지만 속도의 문제가 제일 컸기 때문이다.  처음 태블릿 앱을 만들 때 적용하려고 했었던 방법이 였는데 Kotiln 언어에 대해서도 잘 몰랐던 상황이였어서 병목이 발생되어 미뤘던 작업이였는데 앱을 한차례 완성시킨 뒤 더욱 ..
Flutter Provider를 이용한 상태관리 태블릿 앱을 완료 후에 태블릿 앱에서 얻은 point를 사용할 APP을 만들어야 했다. 기존 버전의 APP이 있었지만 kotlin으로 작성이 되어있었고, IOS 앱도 출시하길 원했기에 flutter로 작업을 진행했다. 앱 기획 상 대규모 작업이 아니였기에 Bloc,Get X 가 아닌 provider로 상태관리를 했다. 또한 태블릿 앱에서 지체됐던 시간을 단축시키기 위함도 있었다. https://pub.dev/packages/provider provider | Flutter package A wrapper around InheritedWidget to make them easier to use and more reusable. pub.dev Provider란? Provider는 Flutter에서 상태 관리..
Kotlin TTS(Text To Speach) - 문제 1. 기기를 사용하는 시각 장애인을 위한 청각이용시스템이 없다고 판단 2. 보다 다양한 사람들이 서비스를 이용할 수 있도록 해야한다. - 문제 해결 1 . TTS(TextToSpeach) 시스템을 이용한 문제해결 https://developer.android.com/reference/kotlin/android/speech/tts/TextToSpeech#isSpeaking() TextToSpeech | Android Developers developer.android.com 안드로이드는 구글에서 기본적으로 제공해주는 TTS 시스템이 있어서 그걸 사용해 문제를 해결해 보았다. 만드는 앱 같은 경우는 액티비티가 변경 시 해야할 일을 알려주는 시스템을 원했고 그렇기 때문에 액티비티가 변경 시 바로 tt..
근접 센서를 이용한 밝기조절 / 배터리 아끼기 - 문제 1. 기기를 켜진 상태로 유지 ? CPU만 켜진 상태로 유지 ? 밝기만 바꾸기? https://developer.android.com/training/scheduling/wakelock?hl=ko#wakeful 기기를 켜진 상태로 유지 | Android 개발자 | Android Developers 기기를 켜진 상태로 유지 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 배터리가 많이 소모되지 않도록 유휴 상태의 Android 기기는 빠르게 절전 모드로 전 developer.android.com 2. 잠긴화면에 대한 접근 - 문제해결 1 - 1. 우리의 솔루션은 태양열 발전기를 이용한 배터리 운영에 있기에 최대한 전력을 아끼기 위해 항상 스크린을 밝게 하면 안될 것 ..
시리얼 명령 class / 시리얼 명령 동적화 하나하나 복붙할 순 있었지만 여기도 컴포넌트화 할 수 있는 기능이 있을 거라 생각하고 찾아봤다. 역시나 있었고 사용해 보았다. 꽤나 간단히 사용할 수 있게 된 것 같다. - 문제 1. 시리얼 명령을 줄 때 마다 함수를 만들어 내야 함 2. 시리얼 명령 내에서 지정된 값이 아닌 받아온 값에 맞춰서 변할 수 있게 - 문제해결 1 - 1. 명령을 class로 만들어 재사용이 편하게 바꿈 class import android.content.Context import android.hardware.usb.UsbManager import android.util.Log import com.hoho.android.usbserial.driver.UsbSerialPort import com.hoho.android.usbs..