2024/10 26

안드로이드 앱 개발 개요 (Kotlin 기반)

1. 안드로이드 앱이란?안드로이드 앱은 모바일 기기에서 실행되는 애플리케이션으로, 주로 구글의 안드로이드 운영체제에서 동작합니다. 앱은 스마트폰, 태블릿 등 다양한 안드로이드 디바이스에서 사용할 수 있으며, 안드로이드는 세계에서 가장 널리 사용되는 모바일 운영체제 중 하나로, 그만큼 앱 개발의 잠재적인 사용자층이 큽니다​.2. 안드로이드의 역사와 최신 버전안드로이드 운영체제는 지속적으로 업데이트되고 있으며, 최신 버전은 **Android 14 (API 34)**와 **Android 15 (API 35)**입니다. 각 버전마다 새로운 기능과 보안 강화가 추가되며, 최근에는 악성 앱의 설치를 차단하기 위해 targetSdkVersion 값이 23 미만인 앱은 설치할 수 없게 되었습니다​.Android 14 ..

포인터와 구조체로 배우는 연결 리스트 기초

1. 연결 리스트 기본 구조연결 리스트는 노드(Node)라는 단위로 구성되며, 각 노드는 데이터와 다음 노드의 주소를 담고 있는 포인터로 구성됩니다. 연결 리스트는 첫 번째 노드부터 순차적으로 링크를 따라가면서 다음 노드로 이동할 수 있습니다. C언어에서는 구조체와 포인터를 활용하여 이러한 연결 구조를 쉽게 구현할 수 있습니다. 데이터를 동적으로 관리하는 자료구조각 노드는 데이터와 다음 노드를 가리키는 포인터(링크)로 구성[데이터, 링크]의 형태의 노드를 기본 단위로 연결데이터 필드(data field): 표현하려는 값을 저장링크 필드(link field): 다음 노드의 주소를 저장노드의 구조 정의: 자기참조구조 사용노드 생성: malloc()함수 사용노드 삭제: free()함수 사용typedef str..

아두이노 7: 피에조 스피커를 활용한 멜로디 연주

피에조 스피커는 전기적 신호를 소리로 변환하는 전자 부품으로, 다양한 크기와 전압에 맞춰 사용할 수 있습니다. 피에조 효과의 원리와, 피에조 스피커를 아두이노와 연결해 간단한 멜로디 연주를 하는 방법에 대해 알아보겠습니다.1. 피에조 스피커와 피에조 효과란? 피에조 효과: 특정 물질에 전기적 신호가 주어질 때 수축하거나 확장하는 특성으로, 스피커는 이 효과를 통해 공기를 진동시켜 소리를 발생시킵니다.작동 원리: 피에조 스피커 내부의 얇은 판이 전기 신호에 따라 진동하면서 소리를 만듭니다. 사람의 성대나 마이크와 유사하게 공기를 진동시키는 원리입니다.피에조 스피커: 전기적 신호를 이용해 소리를 내는 전자부품으로 동작하는 전압에 따라 크기가 작은 것부터 큰 것 까지 다양합니다. 2. 아두이노로 멜로디 연주하..

아두이노 6: 삼색 LED 색 변경하기(버튼, 자동)

삼색 LED LED(발광 다이오드)는 전기를 빛으로 바꾸는 소자로, 빨강(Red), 초록(Green), 파랑(Blue)의 삼색 LED는 이 세 가지 색의 조합으로 다양한 색상을 표현할 수 있습니다. 이는 우리가 일상에서 접하는 컴퓨터 모니터나 TV에서도 RGB 색 조합 방식을 사용해 색을 구현하는 것과 같은 원리입니다. 삼색 LED 구성과 기본 원리 삼색 LED는 RGB 핀을 조절해 다양한 색을 구현합니다. 다리 구성을 보면, 아노드 타입과 캐소드 타입으로 나뉘며, 이번 실습에서는 캐소드 타입을 사용합니다. 캐소드 타입은 GND(그라운드)에 연결하여 작동하며, 아두이노와 연결해 전압을 조절함으로써 색을 조합할 수 있습니다.캐소드: 그라운드 핀에 연결아노드: 전원 핀에 연결아노드(Anode) 타입인지 캐소..

아두이노 5 : PWM을 이용한 LED 제어 및 버튼 활용하기

1. PWM을 이용한 아날로그 출력의 이해PWM(Pulse Width Modulation)은 디지털 신호로 아날로그 출력을 흉내 내기 위한 기법입니다. 아두이노는 디지털 핀에서 0과 1의 두 가지 상태만 출력할 수 있기 때문에, 평균 전압을 제어하는 방식으로 아날로그 출력을 시뮬레이션합니다.듀티 사이클(Duty Cycle): PWM에서 단위 시간 동안 높은 전압(HIGH) 신호가 유지되는 비율입니다. 듀티 사이클이 높을수록 평균 전압이 증가하여 LED의 밝기가 밝아지거나 모터의 속도가 빨라지는 효과를 얻을 수 있습니다.사용 가능한 핀: 아두이노의 3, 5, 6, 9, 10, 11번 핀에는 틸트(~) 표시가 있으며, 이를 통해 PWM을 지원하는 핀임을 알 수 있습니다.PWM을 적용하는 방법: analogW..

스프링 순환 의존성이 발생하는 이유

순환 의존성 (Circular Dependency)순환 의존성(Circular Dependency)이란 두 개 이상의 빈(Bean) 또는 객체가 서로를 의존할 때 발생하는 문제를 말합니다. 예를 들어, A 객체가 B 객체를 의존하고 B 객체가 다시 A 객체를 의존하는 경우, 순환 의존성이 발생합니다. 이는 빈을 생성하는 시점에서 스프링이 의존성을 해결하지 못하고 무한 루프에 빠지게 되어 애플리케이션이 정상적으로 실행되지 않게 만들 수 있습니다.스프링은 대부분의 경우 순환 의존성을 해결할 수 있지만, 특정 상황에서는 순환 의존성이 해결되지 않을 수 있으며, 이러한 경우에는 코드 구조를 수정하거나 다른 방법으로 문제를 해결해야 합니다.순환 의존성의 예시아래는 ServiceA와 ServiceB 두 클래스가 서..

스프링 컨텍스트에 등록된 빈을 액세스하고 관리하는 방법

1. 구성 클래스에서 정의된 두 빈의 관계 구현  1) @Bean 애너테이션을 사용한 메서드 간의 직접 호출 2) @Bean 메서드의 매개변수를 통한 빈 와이어링 구성 클래스:@Configuration 애너테이션을 사용해 빈을 정의하는 클래스입니다.이 클래스는 @Bean 메서드를 통해 객체를 생성하고, 스프링 컨텍스트에 빈으로 등록합니다.의존성 주입:두 객체 간의 관계를 정의하고, 스프링 컨텍스트가 자동으로 의존성을 관리해 줍니다.예를 들어, Car가 Engine을 의존하는 경우, Car 빈에 Engine 빈을 주입할 수 있습니다. 1) @Bean 애너테이션을 사용한 메서드 간의 직접 호출 @Bean 애너테이션을 사용하여 스프링 구성 클래스에서 두 빈 간의 관계를 설정하는 방법은 스프링의 의존성 주입(D..

아두이노 4: 디지털과 아날로그 신호

1. 디지털 신호란?디지털 신호는 주로 0(OFF)와 1(ON), 두 가지 상태로만 표현됩니다. 아두이노에서는 이를 통해 장치의 작동을 제어할 수 있습니다.디지털 핀: 아두이노에는 0번부터 13번까지의 디지털 핀이 있습니다. 이 핀들은 디지털 신호를 입출력할 수 있으며, 특정 핀을 입력용으로 사용할지, 출력용으로 사용할지 설정해야 합니다.pinMode:  디지털 핀의 용도를 설정하는 명령어 매개변수: 핀의 이름, 입력 또는 출력INPUT: 0, 입력으로 설정OUTPUT: 1, 출력으로 설정pinMode(13, OUTPUT); // 13번 핀을 출력 모드로 설정2. 디지털 출력디지털 출력: 디지털 핀에서 전압을 출력하여 전자 기기를 제어하는 방식입니다. 예를 들어, LED를 제어할 때 전압을 0V에서 5..

아두이노 3: 아두이노 프로그래밍 기초

1. 변수를 이해하기변수는 컴퓨터 프로그램에서 데이터를 저장할 수 있는 그릇과 같습니다. 변수를 사용하면 숫자나 문자열 같은 데이터를 보관하고 필요할 때 그 값을 사용할 수 있습니다.정수형 변수(int): 소수점이 없는 숫자를 저장할 때 사용합니다.int a = 10; // a라는 이름의 변수에 10을 저장 문자열 변수(String): 문장이나 단어 데이터를 저장할 때 사용합니다.String name = "Hello!"; // 문자열 변수에 "Hello!"라는 값을 저장 참/거짓 변수(boolean): 참(true) 또는 거짓(false) 값을 저장하는 변수입니다.boolean isOn = true; // 참(true) 값을 저장  변수를 선언할 때는 원하는 데이터 타입과 변수 이름을 정한 뒤 값을..

아두이노 2: 아두이노 준비하기

1. 아두이노의 전기 원리 이해하기전기는 아두이노와 전자 부품들이 동작하는 핵심 요소입니다. 전기의 흐름은 물의 흐름과 비슷하게 생각할 수 있습니다. 물이 높은 곳에서 낮은 곳으로 흐르듯, 전기도 높은 전압에서 낮은 전압으로 흐릅니다.전압(Voltage): 전기의 위치 에너지를 나타내는 값으로, 전압이 높을수록 더 많은 전기를 흘려 보낼 수 있습니다. 아두이노 보드에는 5V와 3.3V 핀이 있습니다. 아두이노 UNO는 주로 5V를 사용하며, 아두이노 DUE와 ZERO 같은 모델은 3.3V를 사용합니다​.GND(그라운드): 전압이 0V인 부분으로, 전기가 흐르는 경로의 시작 또는 끝을 의미합니다. GND는 배터리의 마이너스 극과 같은 역할을 합니다.헤더 소켓: 아두이노 보드에 있는 핀들이 위치하는 부분을 ..