gRPC란? gRPC는 Google에서 개발한 RPC(Remote Procedure Call) 시스템으로 TCP/IP + HTTP 2.0 프로토콜을 사용하며 IDL(Interface Definition Language)을 통해 protocol buffer로 통신합니다. gRPC에서는 클라이언트 애플리케이션이 마치 로컬 객체인 것 처럼 다른 서버의 함수를 직접 호출할 수 있습니다. 많은 RPC 시스템처럼 gRPC는 서비스 정의에 기반을 두고 있으며, 직접 파라이터와 리턴 타입을 사용하여 원격으로 호출할 함수를 지정합니다. 클라이언트 측에서는 서버와 동일한 함수를 제공하는 stub(일부 언어에서는 클라이언트)을 지니고 있습니다. 프로토콜 버퍼(Protocol Buffers) 기본적으로 gRPC는 구글에서 오..

MQTT란? MQTT(Message Queueing Telemetry Transport)는 2016년 국제 표준화된 발행(Publish)-구독(Subscribe) 기반의 메시지 송수신 프로토콜로 최소한의 전력과 패킷으로 통신합니다. TCP/IP 프로토콜 위에서 동작하지만 가벼우면서도 많은 통신 제약을 해결할 수 있기에 모바일과 IoT 같은 환경에서 어울려 사용하기 좋습니다. MQTT 구조도 또한 Topic 기반으로 발행/구독을 하기에 자신이 원하는 Topic을 Brocker을 통해 구독(Subscribe)하면 해당 Topic으로 발행(Publish)되는 메시지를 받을 수 있습니다. 이러한 아키텍처 덕에 IoT에서도 강한 이점을 보이며, Topic 분류 기준에 따라 같은 기능이라도 여러 방식으로 디자인을 ..
컴포즈 웹 프로젝트를 생성 후 빌드를 시도하자마자 아래의 오류가 발생하였습니다. KJS / Gradle: Configuration failed: Could not find node-14.17.0-darwin-arm64.tar.gz (org.nodejs:node:14.17.0) 연계된 레포지토리가 삭제된 것인가 생각을 하다, 이전 gRPC를 다루는 과정에서 M1에 해당되는 ARM64 바이너리가 릴리즈 되지 않아 고생했던 기억을 떠올리며 방법을 찾던 중 노드의 버전을 변경해보라는 내용을 찾아 적용해보았습니다. build.gradle.kts repositories { rootProject.plugins.withType { rootProject.the().nodeVersion = "16.0.0" } 적용 후 s..
Build Error Log 2022-02-25 13:43:50.714 3448-3498/com.autocrypt.mi.bf2u.barrierfree E/AndroidRuntime: FATAL EXCEPTION: pool-23-thread-1 Process: com.autocrypt.mi.bf2u.barrierfree, PID: 3448 java.lang.IllegalArgumentException: com.autocrypt.mi.bf2u.barrierfree: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Stron..
Error Log layoutcoordinate operations are only valid when isattached is true 시나리오 BasicTextField 생성 decorationBox안에 value(입력 값)이 empty이 아니면 innerTextField를 호출하지 않도록 함 키보드 엔터 누른 경우 search를 하고 키보드 숨김 및 focusManager로 clearFocus 호출 이때 text가 비어있는 상태에서 키보드 숨김 및 focus 해제 후 다시 BasicTextField를 클릭하면 앱 사망 분석 clearFocus() 함수의 문제인가? clearFocus() 함수를 호출하고 이후 호출을 하지 않더라도 앱이 사망 키보드가 내려간 상태에서 textField를 클릭하였기 때문..

What is Compose Compose는 Google에서 만든 UI툴킷으로 개발을 간소화 및 가속화가 가능하며, 적은 수의 코드와 다양한 도구 및 Kotlin API를 사용하여 UI 개발이 가능합니다. 안드로이드의 Jetpack Compose 많은 분들은 안드로이드의 Jetpack Compose 이야기만 들어보셨을 것 이라 생각됩니다. 지난 21년 말, GDG Korea Android 에서도 Jetpack Compose를 사용해보도록 4주간 개발 및 질문하는 소규모 캠프(?)를 여는 등 최근 안드로이드 UI 개발의 패러다임은 기존 XML 방식에서 Jetpack Compose로 바뀌어 나가고 있습니다. 저 역시 지난 1월부터 XML 방식의 UI 개발에서 Jetpack Compose로 넘어와 개발하고 있..
안녕하세요. 성스러운기사 입니다. 최근 스택 본선 발표를 위해 프로토타입을 개발하던 와중,아이폰으로 빌드를 시도하지만 오류가 발생하였습니다. Could not locate device support files.This iPhone 7 Plus (Model 1661, 1784, 1785, 1786) is running iOS 12.0 (16A5288q), which may not be supported by this version of Xcode. 구글링하여 찾아보니Xcode가 연결된 아이폰의 운영체제를 지원하지 않는 경우 발생한다고 합니다. 저는 최근에 iOS 12 베타 업데이트를 진행하였습니다.그렇기 때문에 Xcode에서 iOS 12.0을 지원하지 못하고 오류가 발생했던 것 이였습니다ㅠㅠ 이를 해결하기..
무료 웹 음악 플레이어 Silire 개발일기 - 7 1. 검색시 아티스트 및 검색 완벽 구현2. 알송 가사 파싱(갯수, 목록, 가사 가져오기 성공, 태그 나눠야함)3. 모바일 검색 구현 및 버튼 클릭시 페이드 인아웃 효과 모바일 검색!
무료 웹 음악 플레이어 Silire 개발일기 - 6 1. 플레이리스트 아이템 width 퍼센트화2. 플레이리스트 제거 기능 구현3. hover jquery로 변경4. 차트 로딩화면 구현5. 버튼 클릭시 확대 구현6. PHP JS CSS 종류 나눔7. 메뉴 클릭시 메뉴 색상 변경 8. 모바일 css 지원9. 멜론 차트 파싱 오류 해결 모바일 구현!
무료 웹 음악 플레이어 Silire 개발일기 - 5 원하는 노래와 아티스트가 나오도록 검색 방식을 바꾸려고시도하고 있는데 개고생의 길이 열린듯ㅠㅠ 순수 PHP만으로는 curl 비동기 호출 불가능하는 바람에검색 속도도 느리고 뭔가 데이터가 안맞는다... nodeJs, 소켓 방식은 호스팅 때문에 급한데로 Rolling으로 처리하고 있는데,혹시 PHP curl 비동기 호출하실줄 아시는 분 있으면 도와주세요ㅠㅠㅠ