본문 바로가기

프로그래밍177

Git GitLab GitHub에 대해 알아보자 목차 Git GitLab GitHub 개요 Git 개념 버전 관리 시스템(VCS, Version Control System) 이란? 기존 버전 관리 시스템과의 차이점 Git 특징 분산 버전 관리 시스템 무결성 브랜치 생성과 머지의 자유로움 파일 관리의 세 가지 상태 GitHub GitLab GitHub vs GitLab Git GitLab GitHub 개요 프로젝트를 작업하게 되면서 수정하거나 기능 추가할 수록 점점 프로젝트가 꼬여 다시 이전 코드로 돌아가고 싶을 때, 또는 협업 프로젝트를 진행하면서 생기는 이슈들이 많다. 이런 것들을 관리하기 위해 만들어진 프로그램이 버전관리 프로그램이라고 하고 아직도 SI 쪽에서 많이 사용되는 SVN과 최근에 오픈소스 트랜드를 만들어 준 Git이 존재한다. 이러한 버.. 2023. 1. 12.
[Flutter] 지도 API 비교 및 사용 방법 목차 지도 API 소개 무료 지도 API 비교 Flutter에서 지도 API 사용법 지도 API 사이트 바로가기 지도 API 소개 TMAP API 주요 기능 목적지 통합 검색 출발 시간 / 도착 시간 예측 지오코딩 실시간 교통 정보 멀티터치를 통해 지도 보기 음성 목적지 검색 이동한 도로 찾기 등 비용 서비스에 적합한 합리적인 요금제 선택 가능 무료 / Lite (월 2,200,000원) / Premium (사용 건 별로 후불 청구) API 그룹 API 요금제 Free Lite Premium POI 검색 20,000 건/일 50,000 건/일 1.1 원/건 지오코딩 20,000 건/일 50,000 건/일 0.55 원/건 지오펜싱 1,000 건/일 10,000 건/일 5.5 원/건 교통정보 1,000 건/.. 2023. 1. 8.
Flutter 필수 패키지 - Flutter에서 가장 많이 사용하는 패키지 Flutter를 한 번이라도 사용해본 적이 있는 개발자라면, pub.dev 사이트를 알 것이다. pub.dev란 Flutter에서 사용 가능한 패키지들을 모아 놓은 공식 패키지 저장소이다. 이 저장소에 있는 패키지들 중 엄청 유용하고 편리하게 사용할 수 있는, Flutter 개발자들이 가장 많이 사용하고 선호하는 패키지들을 몇 가지 소개해보려한다. provider 상속 위젯을 더 쉽게 사용하고 재사용할 수 있도록 만들어진 Wrapper 패키지 이다. 리소스의 간단한 할당과 해제 지연 로딩 (lazy-loading) 클래스 새로 생성할 때의 감소되는 상용구 devtool 친화적 : Provider를 사용하면 Application State가 Flutter devtool에 표시됨 복잡성이 기하급수적으로 증가.. 2023. 1. 6.
플러터(Flutter)와 리액트(React) 중 어떤 플랫폼이 좋을까? 모바일 앱의 인기가 많아지면서 모바일 크로스 플랫폼 프레임워크가 인기를 얻고 있다. 그 중 제일 인기있는 리액트 네이티브 (React Native) 와 플러터 (Flutter) Flutter에 대해 정리해보려고 한다. 최근 몇 년 동안 많은 기업들이 네이티브 앱 개발에서 크로스 플랫폼 앱 개발로 많이 전환하고 있다. 그 이유는 시간과 비용을 절감할 수 있다는 큰 장점 때문이다. 그로 인해 크로스 플랫폼 모바일 개발 속도가 꾸준히 증가하고 있다. 네이티브앱 Android와 iOS 각 모바일 OS 기반의 API로 개발하는 앱을 말한다. Android 앱의 경우 Java와 Kotlin 및 Google Android SDK를 사용하고, iOS 앱의 경우 Swift와 Objective-C 및 Apple iOS S.. 2023. 1. 5.
[C/Keil RTX] I2C 통신 임베디드 소프트웨어 개발을 하다보면 알기 싫지만 알아야 하는 많은 것들이 있다. 하기 싫지만 해야 하는 것이므로 오늘도 난 열심히 한다. 😂 I2C란? I2C (Inter-Intergrated Circuit)는 2개의 선을 이용하는 직렬 통신 방식으로, 하나의 마스터와 여러 개의 슬레이브 장치가 통신하기 위한 프로토콜이다. 데이터 통신을 위한 선(SDA) 하나와 타이밍 동기화를 위한 선(SCL) 하나로 이루어져 있다. 이러한 특징 때문에 TWI (Two Wire Interface)라고도 불린다. 우선, I2C를 이해하기 위해서는 UART 통신과 SPI 통신을 알 필요가 있다. ※ UART 통신이란? (Universal Asyncronous Receiver/Transmitter) 비동기식 시리얼 통신으로 .. 2023. 1. 5.
[C/Keil RTX] CAN 통신 요즘 하고 있는 프로젝트에서 제일 많이 사용하는 통신이 CAN 통신이다. CAN 통신은 이 프로젝트를 통해 처음 접해 보기도 했고, 그렇게 세세하게 알아보지 못한 채 개발을 해서 오늘에서야 세부적으로 파헤쳐보려고 한다. CAN 통신 배경 Controller Arean Network의 약자로 차량 내에서 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격이다. 메시지 기반 프로토콜이며 최근에는 차량 뿐만 아니라 산업용 자동화기기나 의료용 장비, 엘리베이터 등에서도 종종 사용되고 있다. 각 제어기들 간의 통신을 위해 주로 사용되는 non-host 버스 방식의 메시지 기반 네트워크 프로토콜이다. CAN 통신이 개발되기 전까진 과거에는 모듈들이 통신하기 위해 UART 통신.. 2023. 1. 3.
[C/RL-ARM KEIL] event 처리 구현 CAN0_IRQHandler 로 들어온 응답을 __task 함수에서 처리하고 싶은데 마땅히 좋은 방법이 없어 찾다가 ARM Library에서 os_evt_set 이라는 함수를 발견했다. 냅다 갖다 써보기~! 예제에서 다뤄볼 RL-ARM 함수는 아래와 같다. isr_evt_set os_evt_set os_evt_clr os_evt_wait_and os_evt_wait_or os_evt_get 우선, 각 함수에 대해 알아보자 os_evt_set #include void os_evt_set ( U16 event_flags, /* Bit pattern of event flags to set */ OS_TID task ); /* The task that the events apply to */ U16 event_.. 2022. 12. 28.
WDT이란? Watchdog이란? 임베디드를 다루다보면 시스템 적인 문제로 또는 프로그램의 오류로 중단 상태에 빠지거나 무한 루프에 빠질 때가 있다. 이런 경우 스스로 살아날 수가 없고 계속 멈춰있기 때문에 다시 살릴 수 있는 방법을 찾아보다가 WDT (Watchdog) 라는 것을 알게 됐다. 와치독(워치독) / WDT / Watchdog 이란? 컴퓨터의 오작동을 탐지하고 복구하기 위해 쓰이는 전자 타이머라고 한다. 정상 작동 중의 컴퓨터는 시간이 경과하거나 타임아웃이 되는 것을 막기 위해 정기적으로 와치독 타이머를 재가동 시킨다. 즉, 일정 시간 동안 시스템을 감시하다가 시스템을 리셋하는 기능을 뜻한다. Watchdog 와치독은 집을 지킨다는 뜻을 내포하고 있는 단어의 조합이다. 개에게 밥을 주지 않는다면 그 밥을 주는 프로그램을 맡고.. 2022. 12. 28.
[Android] A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable 이슈 해결 기능 추가 작업 및 로그 추가를 하고 apk를 생성하려는데 정말 짜증나게도 위와 같은 에러가 나면서 생성이 안됐다. 그래서 구글링을 해본 결과... 1. 첫 번째 해결 방법 gradle.properties 파일에서 org.gradle.jvmargs=-Xmx2048M >> org.gradle.jvmargs=-Xmx2g 이렇게 사이즈를 늘려보라길래 했더니 정말 됐다! 근데 그것도 잠시뿐... 또 기능 추가 후 apk 생성하려하면 똑같은 에러가 떴다. 여기서 1차 빡침... 2. 두 번째 해결 방법 필요없는 코드를 지우고, 필요없는 파일들을 지워봤다. 근데 이것도........ 되긴 되는데 잠시 후 또 코드 한 줄 추가해도 에러뜬다 ㅠ.ㅠ 3. 세 번째 해결 방법 sdk 버전 높이기! build.gradle(.. 2022. 12. 22.
[Android] apk 빌드 에러 > The minSDK Version can not be specified in the AndroidManifest.xml file. apk를 생성하려고 하는데 다음과 같은 에러가 발생했다. Execution failed for task ':app:lintVitalRelease'. > Lint infrastructure error Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethod.. 2022. 12. 21.