반응형

전체 글 247

Android - JSON 파싱 및 API 연동

안녕하세요, '소프트웨어 공장'에 오신 것을 환영합니다! 오늘은 안드로이드 애플리케이션 개발 시 자주 사용되는 "JSON 파싱 및 API 연동"에 대해 알아보려고 합니다. 네트워크를 통해 데이터를 주고받는 것은 현대 앱 개발에서 빠질 수 없는 부분입니다. 이번 포스팅에서는 간단한 예제와 함께 JSON 데이터를 Kotlin을 통해 어떻게 파싱하고 API와 연동하는지 살펴보겠습니다.1. JSON 파싱 및 API 연동의 개념JSON(JavaScript Object Notation)은 서버와 클라이언트 간의 데이터 전송을 위해 널리 사용되는 포맷입니다. API(Application Programming Interface)를 통해 서버로부터 데이터를 가져올 때, 주로 JSON 형식을 사용하여 데이터를 주고받습니다..

Android 2024.11.23

ECC (Elliptic Curve Cryptography) 비대칭키 암호화 알고리즘

비대칭키 암호화 알고리즘 중 하나인 ECC (Elliptic Curve Cryptography)는 공개키 암호 방식으로, 데이터의 보안을 유지하면서도 기존의 RSA 등보다 더 작은 키 크기에서 높은 보안성을 제공합니다. ECC는 주로 모바일 기기나 IoT 장비처럼 자원이 제한된 환경에서 효율적인 암호화를 제공하는 것으로 잘 알려져 있습니다.오늘은 ECC의 개념부터 ECC를 JAVA 및 Linux C 언어로 구현하는 예제를 함께 살펴보겠습니다.ECC란 무엇인가?ECC는 타원 곡선의 수학적 성질을 이용하여 공개키 암호화를 구현하는 알고리즘입니다. 기본적으로 타원 곡선 방정식은 다음과 같은 형태로 나타납니다:y^2 = x^3 + ax + b이 방정식에서 정의된 타원 곡선을 이용하여 키 쌍(공개키, 개인키)을 ..

STM32 Timer 활용 - PWM 생성 및 타이머 인터럽트 설정

STM32F429ZI의 타이머는 다양한 기능을 제공하여 마이크로컨트롤러의 타이밍 제어나 PWM 생성 등 다양한 작업을 수행할 수 있게 도와줍니다. 이번 포스팅에서는 타이머의 종류와 기본 개념을 다루고, PWM 생성, 타이머 인터럽트 설정 및 사용 방법에 대해 알아보겠습니다. 특히 GPIO 설정을 포함하여 타이머 기능을 사용하는 방법을 자세히 설명하고, 예제 소스 코드도 제공할 것입니다.1. STM32 타이머의 종류 및 기본 개념STM32F429ZI에는 다양한 타이머가 포함되어 있습니다. 주요 타이머는 다음과 같습니다:Advanced Control Timer (타이머 1, 8): 고급 PWM 기능과 다양한 타이밍 제어를 제공합니다.General Purpose Timer (타이머 2-5, 9-14): 기본적..

STM32 2024.11.22

Android REST API(Retrofit) 연동 - 네트워크 통신과 데이터 파싱

안녕하세요, 오늘은 안드로이드 애플리케이션에서 Retrofit 라이브러리를 사용하여 REST API와 통신하는 방법에 대해 알아보겠습니다. Retrofit은 Square에서 제공하는 HTTP 클라이언트 라이브러리로, 안드로이드에서 네트워크 작업을 손쉽게 처리할 수 있게 도와줍니다. Retrofit을 사용하면 서버와의 통신 및 JSON 형식의 데이터를 파싱하는 과정을 간단하게 구현할 수 있습니다. 이번 포스팅에서는 Retrofit을 사용하여 간단한 REST API 호출과 데이터 파싱을 다루는 방법을 예제를 통해 알아보겠습니다.1. Retrofit 라이브러리 설정1.1 Gradle 의존성 추가Retrofit을 사용하기 위해서는 먼저 앱 모듈의 build.gradle 파일에 Retrofit과 관련 라이브러리를..

Android 2024.11.22

RSA 비대칭키 암호화 알고리즘

비대칭키 암호화 알고리즘은 데이터를 안전하게 전달하기 위한 중요한 기술 중 하나입니다. 그 중에서도 가장 널리 알려진 알고리즘 중 하나가 바로 RSA (Rivest-Shamir-Adleman)입니다. 오늘은 RSA 알고리즘의 원리와 Java, Linux C 언어로 구현한 예제를 통해 RSA 암호화와 복호화를 알아보도록 하겠습니다.RSA 알고리즘 개요RSA 알고리즘은 공개키 암호화 방식의 대표적인 예입니다. RSA는 공개키와 비밀키 두 가지 키를 사용하여 데이터를 암호화하고 복호화합니다. 공개키는 누구나 알 수 있도록 공개되어 있으며, 비밀키는 수신자만 알고 있어야 합니다.RSA의 핵심 개념은 소인수분해의 어려움에 기반을 두고 있습니다. 두 개의 매우 큰 소수를 곱하여 만든 수는 그 소인수를 매우 어렵게 ..

STM32 GPIO 기본 개념과 구조, LED 제어

안녕하세요, '소프트웨어 공장' 블로그에 오신 것을 환영합니다. 오늘은 STM32F429ZI의 GPIO 기본 개념과 구조를 살펴보고, 이를 활용하여 간단한 LED 제어를 하는 방법에 대해 소개하려고 합니다. 특히, GPIO 설정 방법에 대해 자세히 설명하고, STM32CubeIDE를 활용한 전체 코드 예제도 함께 다루어 보겠습니다.STM32의 GPIO는 다양한 주변 장치와의 연결을 통해 기능을 확장할 수 있도록 해주는 중요한 기능입니다. 오늘의 글을 통해 GPIO의 구조와 동작 방식을 이해하고, 실제로 간단한 LED를 제어하는 프로젝트를 진행해 보세요.1. GPIO란 무엇인가?GPIO(General Purpose Input/Output)는 말 그대로 범용 입출력 핀입니다. STM32F429ZI와 같은 마..

STM32 2024.11.21

STM32 시리즈

STM32 시리즈란?STM32는 STMicroelectronics에서 개발한 마이크로컨트롤러(MCU) 제품군입니다. ARM Cortex-M 코어를 기반으로 하여 고성능과 전력 효율성을 갖춘 다양한 시리즈를 제공하며, IoT(사물 인터넷), 산업용 제어, 웨어러블 기기, 오디오 및 멀티미디어 등 광범위한 분야에서 사용되고 있습니다. STM32 시리즈는 크게 성능과 용도에 따라 다양한 라인업으로 나누어지며, 각 제품군은 각각의 고유한 특성을 가지고 있습니다.STM32 제품군은 다음과 같이 구분할 수 있습니다:STM32F 시리즈: 가장 널리 사용되는 범용 MCU로서 높은 성능을 제공하며, 가격 대비 성능이 뛰어납니다.STM32L 시리즈: 저전력 제품군으로, 배터리 수명을 중요시하는 애플리케이션에 적합합니다.S..

STM32 2024.11.21

Android - Room 라이브러리로 SQLite 데이터베이스 구축 및 CRUD 구현하기

안드로이드 애플리케이션을 개발하다 보면 데이터의 영속성을 유지하기 위해 데이터베이스를 사용해야 하는 경우가 많습니다. 안드로이드에서는 대표적으로 SQLite 데이터베이스를 사용할 수 있지만, SQLite API를 직접 사용하는 것은 불편하고 에러가 발생하기 쉽습니다. 이를 좀 더 편리하게 사용할 수 있도록 구글에서 제공하는 Room 라이브러리를 활용하면 좋습니다. 이번 포스팅에서는 Room을 이용해 SQLite 데이터베이스를 구축하고, CRUD (Create, Read, Update, Delete) 작업을 구현하는 방법을 예제를 통해 소개하겠습니다.Room 라이브러리란?Room은 안드로이드 Jetpack 라이브러리의 일부로, SQLite 데이터베이스에 접근하기 위한 추상화 계층을 제공합니다. Room을 ..

Android 2024.11.21

ChaCha20 대칭키 암호화 알고리즘

오늘은 대칭키 암호화 알고리즘 중 하나인 ChaCha20에 대해 알아보겠습니다. ChaCha20은 보안성과 성능이 뛰어나 많은 현대 시스템에서 널리 사용되고 있는 암호화 알고리즘입니다. 이 포스팅에서는 ChaCha20의 기본 개념, 작동 방식, 그리고 Java와 Linux C 언어를 사용해 실제로 구현하는 방법을 소개하겠습니다.ChaCha20란?ChaCha20은 Daniel J. Bernstein에 의해 개발된 스트림 암호로, 보안성, 성능, 그리고 간단한 구조를 제공합니다. 이 알고리즘은 Google의 TLS 및 다른 여러 프로토콜에서 사용되고 있으며, 특히 모바일 기기에서 높은 성능을 보이는 것으로 잘 알려져 있습니다. ChaCha20은 AES(Advanced Encryption Standard)의 ..

Android Contents Provider 활용

이번 포스팅에서는 Android 애플리케이션에서 Contents Provider를 만들어서 활용하는 방법에 대해 알아보겠습니다. Contents Provider는 애플리케이션 간에 데이터를 공유할 수 있도록 돕는 중요한 구성 요소 중 하나입니다. 이 글에서는 간단한 Contacts 정보 저장소를 구현해보고, 이를 애플리케이션에서 활용하는 과정을 Kotlin 예제와 함께 설명합니다.Contents Provider란?Contents Provider는 Android의 주요 데이터 저장 메커니즘 중 하나로, 애플리케이션 간에 데이터를 안전하게 공유할 수 있게 해주는 기능입니다. 예를 들어, 기본 연락처 애플리케이션에서 연락처 정보를 다른 애플리케이션에서도 사용할 수 있게 하는 방식이 그 예입니다. Content..

Android 2024.11.20
반응형