* 이 글은 김익한 교수님의 강의를 듣고 쓴 글입니다. 공부(工夫)는 장인 공의 지아비 부로서 장인인 사람을 의미한다. 한 분야의 장인이 되는 것이 공부라고 할 수 있겠다. 공부의 방법으로는 학습이 있는데, 이것은 배우고 익히는 것이다. 배우고 익히는 것으로는 인지적 학습과 경험적 학습으로 나뉜다. 인지적 학습으로는 책이나 강의를 통한 방법이고, 경험적 학습은 실제적인 경험을 통한 방법이다.시험을 보고 나서 다 잊어버리는 공부, 이해만 하고 넘어가는 공부는 진짜 공부가 아니다. 실제적으로 내 머릿속에 인지되는 것이 지속되어야 하며(인지적 학습), 이해 뿐만이 아니라 그것을 익혀서 경험으로 구현하여 머릿속에 자리 잡아야 한다(경험적 학습). 그것이 진짜 공부다.공부법을 구체적으로 보자. 먼저 인지적인 학..
PCM(펄스부호변조) 이란?PCM(펄스부호변조, Pulse Code Modulation)은 아날로그 신호를 디지털 신호로 변환하는 가장 기본적이고 널리 사용되는 기술 중 하나입니다. 이 기술은 전화 통신, 오디오 및 비디오 녹음, CD 및 DVD 등 다양한 응용 분야에서 사용됩니다. PCM은 아날로그 신호를 디지털 신호로 변환하는 과정에서 다음의 세 가지 주요 단계를 거칩니다. 1. 샘플링(Sampling): 아날로그 신호를 일정한 시간 간격으로 측정하여 샘플을 추출합니다. 샘플링 주파수(또는 샘플링 레이트)는 1초 동안 추출하는 샘플의 개수를 의미하며, 일반적으로 헤르츠(Hz) 단위로 측정됩니다. 예를 들어, CD 오디오는 44.1kHz의 샘플링 주파수를 사용합니다. 이는 1초에 44,100개의 샘플을..
보통 배터리를 직렬로 연결한다, 병렬로 연결한다, 하면 다음과 같이 연결을 합니다. - 직렬 연결 직렬로 연결된 배터리의 전압을 모두 합쳐서 전압이 증가하고배터리의 용량(Ah)은 변하지 않습니다.한 개의 배터리가 소모되면 전체 회로가 작동하지 않는 단점이 있습니다. - 병렬 연결 1.5V 3개 배터리를 병렬 연결하면 전압은 1.5V로 동일하고배터리의 용량이 합쳐집니다.장시간 동안 일정한 전압으로 더 많은 전류를 공급할 수 있습니다. 그렇다면 직렬, 병렬 연결에서배터리의 극성을 거꾸로 바꾸어 연결하게 되면 어떻게 될까요? - 극성을 바꾼 직렬 연결 극성이 반대로 된 배터리는 다른 배터리의 전압을 상쇄하게 됩니다.전체 전압이 급격히 감소하거나 0V가 될 수 있습니다. - 극성을 바꾼 병렬 ..
통상적인 무선 주파수 대역은 다음과 같습니다. 이름약어주파수파장Very Low FrequencyVLF (초장파)3kHz ~ 30kHz100km ~ 10kmLow FrequencyLF (장파)30kHz ~ 300kHz10km ~ 1kmMedium FrequencyMF (중파)300kHz ~ 3MHz1km ~ 0.1kmHigh FrequencyHF (단파)3MHz ~ 30MHz100m ~ 10mVery High FrequencyVHF (초단파)30MHz ~ 300MHz10m ~ 1mUltra High FrequencyUHF (극초단파)300MHz ~ 3GHz1m ~ 0.1mSuper High FrequencySHF (센티미터파)3GHz ~ 30GHz10cm ~ 1cmExtremely High Frequenc..
HAM에 대해서 거의 모를 때'2M 밴드에서 교신한다'라는 말이 무슨 뜻인지 몰랐습니다;;매우 기초적이고 기본적인 내용인데; 한 번 정리를 해보고자 합니다. 이 부분을 알기 위해서는 먼저 파동에 대한 개념을 이해해야 합니다. 파동에 대한 개념 파동은 물리학에서 에너지가 주기성을 갖고 이동하는 현상입니다.물결, 소리를 보면 물과 공기라는 매질을 통해서 에너지가 이동하게 됩니다.전자기파도 파동의 일종입니다. (매질이 없습니다 옛날엔 에테르..)(+ 전자기파는 빛입니다. 보통 가시광선 대역의 전자기파를 빛이라고 표현합니다) 파동을 파도(물결)로 가정한다면파장은 파도와 파도 사이의 거리라고 생각하면 쉽습니다.주기는 파도가 한 번 올라왔다 내려가는 데 걸리는 시간이라 보면 됩니다. 그렇다면 주파수는 무엇일까요?..
인프런 안드로이드 강좌([왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린)를 다 듣고 이전에 작업하다 중단한 어플을 다시 개발하기 시작하였습니다. 처음 만든 어플이기에 여러 기능을 넣자 하는 욕심은 부리지 않았습니다.제가 배운 선에서 할 수 있는 정도로만 하기로 목표를 잡고열흘 정도 일 마치고 부담 없이 진행하였습니다. 언어는 코틀린을 사용하였고,열매의 상태를 저장하고 불러오는 데이터베이스는파이어베이스를 사용하였습니다. (실시간 데이터베이스)또한, 각 익명의 사용자로 인증하는 과정도 파이어베이스를 이용하였습니다. 전반적으로 ChatGPT의 도움을 많이 받았습니다.강의에서 배웠던 내용들을 조합하고 대충 얼개를 생각해서 코드를 작성한 후,ChatGPT와 작업을 같이 하였습니다. (저..
* 이 글은 인프런 강의 을 보고 정리한 글입니다. 목표 시작일과 종료일을 계산하여 D-day를 나타내자.시작일과 종료일을 선택할 때 DatePickerDialog를 사용한다. activity_main.xml 배경사진을 drawable 폴더에 넣고,중앙에 위치되는 D-day 사각형, 버튼의 사각형 모양 또한 drawable 폴더 xml 파일로 미리 지정해준다. themes.xml 이때, 버튼의 검정색이 적용이 안 될 수가 있으므로themes.xml 파일을 수정해준다.또한 화면에서 타이틀이 나오지 않도록 지정한다. MainActivity DatePickerDialog를 사용하여 시작일과 종료일 버튼을 눌렀을 때 날짜를 선택할 수 있게 ..
* 이 글은 인프런 강의 을 보고 정리한 글입니다. 세부목표 (4) 북마크 기능을 만들기 위해ViewActivity에 TextView(저장)를 만들고저장을 눌렀을 때 ContentsModel 데이터 클래스 형태로 파이어베이스의 실시간 데이터베이스에 저장한다.BookmarkActivity를 생성하여 MainActivity에서 북마크를 눌렀을 때리사이클러뷰로 저장된 북마크를 보여준다. 북마크 저장하기activity_view.xml 윗부분에 margin을 주고 저장 TextView를 만든다. 파이어베이스 실시간 데이터베이스 사용 북마크를 위해 실시간 데이터베이스를 이용하여 저장을 한다.실시간 데이터베이스를 사용하는 방법은 다음 링크에 소개되어 있다.https://ds3qej.tist..
* 이 글은 인프런 강의 을 보고 정리한 글입니다. 세부목표 (3) Firebase 프로젝트를 생성한다.SplashActivity에서 로그인을 이미 하였으면 MainActivity로, 로그인을 안 했다면 JoinActivity로 넘어간다.JoinActivity에서 이메일과 비번을 입력하여 회원가입을 한다.회원가입 버튼을 누르면 MainActivity로 넘어간다. 파이어베이스 프로젝트 생성, 인증 설정 파이어베이스 프로젝트 생성과 인증에 관련된 법은 다음 링크 글에서 이미 소개를 하였다. https://ds3qej.tistory.com/49 파이어베이스 인증과 실시간 데이터베이스 사용하기 (1)* 이 글은 인프런 강의 을 보고 정리한 글입니다. 목표 파이어베이스의 인증(비회원 로그인), 실시간 데이터베이..
* 이 글은 인프런 강의 을 보고 정리한 글입니다. 세부 목표 (2) 리사이클러뷰 어댑터(RVAdapter)에서 item을 클릭하였을 때 이벤트를 처리하도록 만들고MainActivity에서 RVAdpater에서 만든 이벤트 처리 인터페이스를 이용하여item을 클릭하면 ViewActivity로 이동하도록 한다.ViewActivity에서는 WebView를 이용하여item을 클릭하면 intent에서 같이 putExtra된 url 주소로 이동하도록 한다. RVAdapter item이 클릭하였을 때의 이벤트를 처리하기 위하여ItemClick이라는 인터페이스를 만들고 그 안에 onClick 함수를 만든다.클릭이 null이 아닐 때(클릭했을 때) 클릭 리스너가 작동하도록 설정한다. class RVAdapter(va..
* 이 글은 인프런 강의 을 보고 정리한 글입니다. 목표 맛집 사이트(https://www.siksinhot.com/)에서가게들의 페이지(url), 이미지, 이름을 RecyclerView를 이용하여 레이아웃을 설정하자.여기서 Glide와 WebView를 사용하고,Firebase를 이용하여 이메일과 비번으로 인증을 하도록 한다.그리고 또, 실시간 데이터베이스를 사용하여 북마크 기능을 만든다. 세부 목표 (1) Splash 화면이 3초 동안 나오도록 한다.리사이클러뷰를 위해 아이템들의 모양, 어댑터를 만든다.가게들의 페이지(url), 이미지, 가게이름을 담는 데이터 클래스를 만든다.가게 이미지는 Glide를 이용하여 인터넷 이미지 주소를 통해 업로드 하도록 한다.MainActivity에서 데이터 클래스 자..
2월 초부터 안드로이드 앱에 대해 관심이 생기면서올해는 나만의 앱을 하나 만들어보자! 라는 결심을 하게 되었습니다. 학부 과정에서 잠깐 안드로이드 개발 과목을 수강한 적이 있으나.. 지금과 매우 다르더군요.(그때가 아마 2017, 2018년 즈음;)게다가 기억도 가물가물해서 처음부터 다시 배워야 하는 수준이었습니다;; 먼저, 나름 만들고 싶은 앱에 대해 아이디어를 적어보았습니다. 그러고 나서 처음엔 안드로이드 공식 사이트의 튜토리얼 조금, 블로그 글을 보고,또한, ChatGPT에 의존하여 만드려고 했습니다. 그러나.. 드는 생각은, 아이디어는 누구나 낼 수 있다.하지만 구현은 어렵고 아무나 할 수 있는 게 아니구나..라는 현실의 벽이었습니다.한 달 정도 모든 과정이 답답해서 중단하였습니다. 그러다안..
* 이 글은 를 읽고 쓴 글입니다. 몸이 없는 인공지능, 몸이 있는 로봇 HAL은 몸이 없다.에 나오는 HAL은 인공지능 컴퓨터이다.(자신의 판단에 따라 디스커버리 호에 있는 승무원들을 차례로 죽인다) 2016년 이세돌 9단과 바둑을 두었던 알파고도 몸이 없는 인공지능 바둑 프로그램이고,2022년에 발표된 Chat GPT 또한 몸이 없는 인공지능 챗봇이다. 이들은 인간의 지능을 모방하였지만 인간의 육체는 모방하지 않았다. 반면에 로봇은 몸이 있다. 양감이 있다.곤충을 닮은 로봇부터 시작해서 포유류, 인간을 닮은 로봇(휴머노이드)까지 로봇은 생체를 모방하기도 한다. 로봇이 몸을 가져야 하는 이유는 무엇일까.그것들의 몸이 세상 안에 있다는 것은, 그리고 그것을 스스로 자각한다는 것은 어떤 의미일까...
* 이 글은 인프런 강의 을 보고 정리한 글입니다. 4. activity_main.xml 리스트뷰와 쓰기 아이콘을 위치시킨다. 5. custom_dialog.xml 쓰기 아이콘을 눌렀을 때 나오는 다이얼로그 창을 만든다. 6. 파이어베이스 실시간 데이터베이스 사용 파이어베이스 프로젝트에서 실시간 데이터베이스(Realtime Database)를 클릭한다. 데이터베이스 만들기를 클릭 데이터베이스 위치는 미국으로 한다. 실습이므로 테스트 모드로 시작한다. 실시간 데이터베이스가 생성되었다. 파이어베이스 실시간 데이터베이스에 대한 공식 문서를 확인한다. https://firebase.google.com/docs/databas..
* 이 글은 인프런 강의 을 보고 정리한 글입니다. 목표 파이어베이스의 인증(비회원 로그인), 실시간 데이터베이스를 사용하여나만의 운동 메모장을 만들어보자. 1. 파이어베이스 프로젝트 생성 파이어베이스 콘솔에 접속한다.https://console.firebase.google.com 로그인 - Google 계정이메일 또는 휴대전화accounts.google.com 프로젝트를 만든다. 프로젝트 이름 지정 계속 진행 계정을 선택한다. 계정이 없다면 새 계정을 만들면 된다. 프로젝트 생성 중 2. 앱 추가 안드로이드를 추가하여 시작한다. 안드로이드 앱의 패키지 이름을 적고서 앱을 등록한다. google-services.json을 다운로드하여안드로이드 프로젝트의 app 폴더에 붙..