반응형

2024/12 96

Tiger 해시 알고리즘

오늘은 해시 알고리즘 중에서도 뛰어난 속도와 비교적 짧은 해시 크기를 가진 Tiger 해시 알고리즘에 대해 알아보겠습니다. Tiger 해시는 1995년 Ross Anderson과 Eli Biham이 개발한 암호화 해시 함수로, 주로 데이터 무결성 검증 및 디지털 서명 등 다양한 보안 용도로 사용됩니다. 이 포스트에서는 Tiger 알고리즘의 기본 개념을 이해하고, Java와 Linux C 언어로 간단히 구현해보도록 하겠습니다.Tiger 해시 알고리즘 개요Tiger 해시는 비교적 단순한 구조를 가지고 있으며, 설계 당시 CPU의 성능을 최대한 활용하도록 고안되었습니다. 192비트의 출력을 가지며, 입력 데이터의 크기에 상관없이 고정된 크기의 해시 값을 생성합니다. 이를 통해 데이터의 무결성을 확인하거나, 데..

Git 기본 명령어 가이드

Git은 버전 관리 시스템으로, 많은 소프트웨어 개발자들이 사용하는 필수 도구입니다. 이번 글에서는 Git의 기본 명령어와 함께 로컬 저장소 생성, 원격 저장소 복제, 변경 사항 추적, 커밋 등의 과정을 다루어 보겠습니다. 이를 통해 Git의 핵심적인 사용법을 이해하고 버전 관리를 시작하는 데 도움이 되길 바랍니다.로컬 저장소 생성 (git init)로컬 저장소는 프로젝트의 파일들을 버전 관리하기 위한 기본 단위입니다. 새로운 프로젝트를 Git으로 관리하고 싶다면, 로컬 저장소를 생성하여 시작할 수 있습니다. 이때 사용하는 명령어가 바로 git init입니다.$ git init위 명령어를 실행하면 현재 디렉터리가 Git 저장소로 초기화됩니다. 이 명령어는 .git이라는 숨김 폴더를 생성하며, 이 폴더는 ..

git 2024.12.05

Android - Logcat과 디버깅 도구 활용하기

안드로이드 애플리케이션을 개발하다 보면 버그가 발생하는 것은 피할 수 없는 일입니다. 하지만 다행히도 Android Studio에는 강력한 도구들이 내장되어 있어, 효율적으로 버그를 추적하고 문제를 해결할 수 있습니다. 오늘 포스팅에서는 Android 디버깅에 필수적인 Logcat과 디버깅 도구들을 활용하여 버그를 추적하고 해결하는 방법에 대해 설명하겠습니다. 예제 코드와 함께 실전에서 어떻게 사용하는지 알아보겠습니다.Logcat이란?Logcat은 Android에서 로그 메시지를 출력하고 볼 수 있는 콘솔 도구입니다. 앱이 동작하는 동안 발생하는 로그를 볼 수 있어, 버그가 발생했을 때 문제의 원인을 찾는 데 큰 도움이 됩니다. Logcat은 Android Studio 내에 내장되어 있어 쉽게 사용할 수..

Android 2024.12.05

BLAKE2 해시 알고리즘 - JAVA와 Linux C 구현 예제

1. BLAKE2 해시 알고리즘 소개BLAKE2는 빠르면서도 안전한 해시 알고리즘으로, MD5와 SHA 계열 알고리즘보다 더 높은 속도와 보안을 제공합니다. BLAKE2는 기본적으로 두 가지 변형을 갖고 있습니다: BLAKE2b와 BLAKE2s. BLAKE2b는 64비트 아키텍처에 적합하며, BLAKE2s는 32비트 아키텍처에 적합합니다.해시 알고리즘은 주로 데이터 무결성 검증, 비밀번호 저장, 고유 식별자 생성 등에 사용됩니다. BLAKE2는 이러한 목적에 있어 높은 성능을 제공하면서도 충돌 방지 특성이 좋아 암호학적 응용 프로그램에 널리 사용됩니다.이번 포스트에서는 BLAKE2 해시 알고리즘을 JAVA와 Linux C 언어로 구현하는 예제를 소개합니다. 이를 통해 해시 알고리즘이 어떻게 작동하는지 이..

Git 소개 및 사용법 - 버전 관리의 시작

Git이란 무엇인가?Git은 소프트웨어 개발 과정에서 코드의 변경 사항을 관리하기 위한 분산 버전 관리 시스템입니다. 개발자가 서로 협력하면서 코드 변경 이력을 추적하고, 필요에 따라 이전 버전으로 되돌리거나 변경사항을 비교하는 등 여러 가지 편리한 기능을 제공합니다. 이러한 기능 덕분에, 코드의 신뢰성과 협업의 효율성을 높일 수 있습니다. 개발자는 Git을 통해 코드의 각기 다른 버전들을 안전하게 관리하고, 여러 사람이 동시에 작업하는 경우에도 충돌을 최소화하면서 함께 작업할 수 있습니다.Git과 버전 관리 시스템의 필요성소프트웨어 개발 프로젝트에서는 다양한 기능을 추가하거나 기존 기능을 수정하는 과정에서 수많은 코드 변경이 이루어집니다. 이러한 변경 사항을 기록하고 관리하는 것이 중요한 이유는 다음과..

git 2024.12.04

Android - 안정적인 앱 개발을 위한 단위 테스트와 UI 테스트 작성법

안녕하세요, '소프트웨어 공장' 블로그에 오신 것을 환영합니다! 오늘은 안드로이드 애플리케이션을 안정적으로 개발하기 위한 중요한 기술 중 하나인 단위 테스트(Unit Test)와 UI 테스트(UI Test) 작성법에 대해 이야기해 보겠습니다. 안정적인 앱 개발을 위해서는 철저한 테스트가 필수입니다. 이번 포스팅에서는 단위 테스트와 UI 테스트가 왜 중요한지, 그리고 실제로 Kotlin을 사용해 어떻게 작성할 수 있는지 알아보겠습니다.단위 테스트란 무엇인가요?단위 테스트(Unit Test)는 코드의 특정 모듈이나 함수와 같은 작은 단위를 테스트하는 것입니다. 이렇게 하면 코드가 예상대로 동작하는지, 각 단위가 올바른 출력을 반환하는지를 검증할 수 있습니다. 단위 테스트는 개발 주기 중에 코드 품질을 높이는..

Android 2024.12.04

Whirlpool 해시 알고리즘

안녕하세요, '소프트웨어 공장' 블로그를 방문해주셔서 감사합니다! 오늘은 해시 알고리즘 중 하나인 Whirlpool에 대해서 깊이 있게 다뤄보려 합니다. Whirlpool은 매우 강력하고 안전한 해시 알고리즘으로, 다양한 보안 분야에서 사용될 수 있습니다. 이번 포스팅에서는 Whirlpool 알고리즘의 개념과 함께, JAVA 및 Linux C 언어로 구현한 예제를 보여드리겠습니다.Whirlpool 해시 알고리즘이란?Whirlpool은 2000년에 Vincent Rijmen과 Paulo S. L. M. Barreto에 의해 개발된 암호화 해시 함수입니다. 이 알고리즘은 메시지를 고정된 크기인 512비트의 해시 값으로 변환합니다. Whirlpool은 특히 보안성이 매우 뛰어나며, 그 구조는 AES(Advan..

Android - 애니메이션 및 제스처 사용자 경험 극대화

안녕하세요! 이번 포스팅에서는 안드로이드 애플리케이션에서 사용자 경험을 극대화하기 위해 애니메이션 및 제스처를 추가하는 방법에 대해 알아보겠습니다. 사용자에게 시각적으로 매력적이고 직관적인 인터페이스를 제공하기 위해 애니메이션과 제스처는 매우 중요한 요소입니다. 이번 포스팅에서는 Kotlin을 사용하여 실제로 애니메이션과 제스처를 애플리케이션에 적용하는 예제를 살펴보겠습니다.1. 애니메이션을 통한 시각적 개선애니메이션은 사용자가 애플리케이션과 상호 작용할 때 중요한 시각적 피드백을 제공합니다. 예를 들어, 버튼을 클릭했을 때 버튼이 살짝 커지거나 줄어드는 애니메이션을 추가하면 사용자는 자신의 액션이 제대로 인식되었음을 쉽게 알 수 있습니다.1.1 ViewPropertyAnimator를 사용한 간단한 애니..

Android 2024.12.03

STM32 저전력 모드 활용하기

안녕하세요, 여러분! 오늘은 STM32F429ZI를 이용해 저전력 모드의 활용 방법에 대해 알아보려고 합니다. STM32 마이크로컨트롤러는 다양한 저전력 모드를 지원하여, 배터리 소모를 줄이고 효율적인 전력 관리를 가능하게 합니다. 이를 통해 전력 효율성을 극대화하는 방법을 배워 보겠습니다. 이번 포스팅에서는 전력 관리 기능, 저전력 모드의 종류, 설정 방법, 그리고 간단한 예제를 통해 저전력 모드를 어떻게 활용할 수 있는지 알아보겠습니다.STM32F429ZI의 전력 관리 기능STM32 마이크로컨트롤러는 다양한 전력 관리 기능을 제공하여 여러 상황에서 전력 소비를 최소화할 수 있도록 설계되었습니다. 주요 전력 관리 기능은 다음과 같습니다.Sleep Mode: 코어 클럭을 정지하여 전력 소비를 줄이지만, ..

STM32 2024.12.03

RIPEMD-160 해시 알고리즘

안녕하세요, 소프트웨어 공장 블로그 방문자 여러분! 오늘은 해시 알고리즘의 하나인 RIPEMD-160에 대해 자세히 알아보겠습니다. 이 알고리즘은 데이터의 무결성을 보장하기 위해 사용되는 중요한 해시 함수입니다. RIPEMD-160을 이해하고 실제로 Java와 Linux C 언어로 구현해 보는 시간을 가져봅시다.RIPEMD-160이란?RIPEMD-160은 1996년에 COSIC 연구소에서 개발된 해시 함수로, 주로 데이터 무결성을 보장하기 위해 사용됩니다. 주로 SHA-1과 유사한 보안 수준을 가지지만, 설계 방식에서 차별화된 점이 있어 독립적인 보안성을 보장합니다. 해시 함수는 입력 데이터를 고정된 크기의 값으로 변환하는 함수인데, RIPEMD-160은 160비트 길이의 해시 값을 생성합니다.RIPEM..

반응형