반응형

전체 글 39

Raspberry Pi - Sense Hat을 통한 진동감지 구현

라즈베리 파이에서 진동을 측정하기 위해서는 진동 센서 모듈이 필요하다. 대표적으로 SW-420 같은 센서를 사용하면 진동측정이 가능하다. 그러나 이번에는 라즈베리파이의 아스트로 파이(Astro Pi)프로젝트로 개발되어 판매되는 통합 센서모듈 Sense-Hat을 통해서 진동감지를 구현해 보려고 한다. Sense-Hat에는 온/습도 센서, 압력 센서, 가속도 센서, LED매트릭스, 조이스틱 등 다양한 센서가 Hat으로 통합되어 제공되는데 진동감지 구현을 위해서는 내장된 가속도계 센서(Accelerometer)를 활용하여 진동감지(측정)을 구현하려고 한다. 먼저 Sense Hat을 사용하기 위해서는 관련 라이브러리를 설치해야 한다. (샘플코드도 같이 설치된다) $ sudo apt install sense-ha..

Embedded 2023.03.25

[Raspberry Pi] apt update - Reading package lists...Error! 문제 해결법

Raspberry Pi의 운영체제 Linux 배포판(Raspberry Pi for Desktop 또는 라즈비안)을 설치후 시스템 라이브러리 업데이트를 위해 아래의 명령을 실행했는데 패키지 리스트 오류가 발생하였다. $ sudo apt update && sudo apt full-upgrade -y [결과] 원인은 apt 패키지 설치관리자의 List 가 오래되거나 패키지 다운로드 경로가 잘 못 기재되어 발생하는 오류였다. 해결책은 기존의 apt 패키지 리스트 정보를 삭제하고 다시 업데이트를 찾아서 최신 패키지 리스트로 갱신하면 오류가 해결되었다 [해결책] $ sudo rm -r /var/lib/apt/lists/* $ sudo apt clean && sudo apt update [결과] 패키지 리스트 에러 ..

IT issue 2023.03.25

Windows 원격 데스크탑 '사용자 계정 제한'오류 해결방법

Windows10 이상의 운영체제에서 원격 데스크탑(mstsc)를 사용하여 원격PC에 접근할때, 원격 계정의 암호가 설정되어있지 않으면, 원격 데스크탑에서 '사용자 계정 제한'오류가 발생한다 '사용자 계정 제한(예:사용 시간 제한) 때문에 로그인할 수 없습니다. 도움이 필요하면 시스템 관리자나 기술 지원 서비스에 문의하십시오.' 이 오류에 대한 Microsoft에서 제공한 해결방법은 '로컬 그룹정책'에서 '계정'파트의 '로그인 암호사용'부분을 "사용"에서 "사용안함"으로 변경하는 것이다.

IT issue 2022.08.02

[JS] showModalDialog is not defined

windows.showModalDialog() 오류 웹표준화 이전에 개발된 홈페이지의 게시판 프로그램에서 기존 인터넷익스플로러에서 발생하지 않던 오류가 크롬이나, 엣지등 최신 웹표준화를 지원하는 브라우저에서 Javascript 참조오류가 발생하는 경우가 있다 특히, 가장 많은 사례는 "showModalDialog" 미지원에 따른 오류로, IE4 이후에 도입되어 호환성을 위해서 타 브라우저에서도 사용되었다가, 부모자식창의 통신방식, 모바일 호환성, 보안 등 여러가지 이유로 최신 브라우저에서는 지원을 종류하고 있다. - Chrome의 경우 36버젼 이후 완전히 제거 [Link] https://groups.google.com/a/chromium.org/g/blink-dev/c/xh9fPX0ijqk/m/ixHZ..

JavaScript 2022.07.12

[C#] C# 대리자(delegate)의 발전

C# 1.0에서는 코드의 다른 위치에 정의된 메서드를 사용하여 명시적으로 초기화하는 방식으로 대리자의 인스턴스를 만들었습니다. C# 2.0에서는 대리자 호출에서 실행될 수 있는 이름 없는 인라인 문 블록을 작성하는 방법으로 무명 메서드의 개념을 소개했습니다. C# 3.0에서는 개념적으로 무명 메서드와 비슷하지만 더 간결하고 표현이 다양한 람다 식을 소개했습니다. 이러한 두 기능을 함께 익명 함수라고 합니다. 일반적으로 .NET Framework의 버전 3.5 이상을 대상으로 하는 애플리케이션은 람다식을 사용해야 합니다. 다음 예제에서는 C# 1.0에서 C# 3.0까지 대리자 만들기의 발전을 확인할 수 있습니다. class Test { delegate void TestDelegate(string s); s..

C# .NET 2022.07.03

[열공챌린지 1주차] Tableau 데이터 시각화 1주차

Tableau란? Tableau는 데이터를 사용해 문제를 해결하는 방식에 혁신을 가져온 시각적 분석 플랫폼으로, 사람과 조직이 데이터를 최대한 활용하도록 지원합니다. 사람과 조직이 더욱 데이터 기반으로 전환하도록 도와주는 Tableau 최신 비즈니스 인텔리전스 시장을 선도하는 솔루션인 Tableau의 분석 플랫폼을 통해 사람들은 더 쉽게 데이터를 탐색 및 관리하고, 비즈니스와 세상을 변화시킬 수 있는 인사이트를 더 빠르게 발견하고 공유할 수 있습니다. 사람들이 데이터를 보고 이해하도록 돕는다는 사명이 Tableau에서 하는 모든 것의 원동력입니다. 분석가, 데이터 과학자, 학생, 교사, 임원, 비즈니스 사용자 등 어떤 유형의 사용자든 Tableau의 제품이 사용자 우선 원칙에 따라 설계되는 것도 바로 이..

XE 오브젝트(Object) Not Found 이슈

PHP 7.2에서 Object 클래스를 사용할 수 없음. PHP 7부터 예약어로 지정됐고, 최근 PHP 7.2에서 변경으로 인해 사용이 제한 됨. PHP 7.2는 현재 RC6 단계이지만 이 변경 사항은 정식버전에도 반영될 것으로 보임 XE는 이러한 PHP 7.2의 변경사항에 맞춰 Object 클래스의 이름을 BaseObject로 변경합니다. 이로 인한 호환성 문제를 피하기 위해 PHP 7.2 미만에서는 여전히 Object 클래스를 사용할 수 있습니다 (class_alias()를 이용해 Object클래스를 유지합니다) 이는 PHP 7.2의 변경으로 인해 XE가 변경을 따라갈 수 밖에 없는 부분입니다. return new Object(...)과 같은 코드를 사용한 모듈, 애드온, 위젯 등은 이 변경사항을 반..

IT issue 2022.04.14

[C#] Winform 창닫기시 트레이 아이콘으로 최소화, 창 숨기기

using System; using System.Windows.Forms; namespace TraySample { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.FormClosing += Form1_FormClosing; this.notifyIcon1.DoubleClick += notifyIcon1_DoubleClick; this.ExitToolStripMenuItem.Click += ExitToolStripMenuItem_Click; } // 트레이의 종료 메뉴를 눌렀을때 void ExitToolStripMenuItem_Click(object sender, EventArgs e) { //트레이아이콘 없앰..

C# .NET 2021.10.29

[C#] 시작프로그램 등록코드

C# 컴퓨터가 시작될때 자동으로 시작하는 프로그램(시작프로그램,Startup)에 등록하는 코드 try { // 시작프로그램 등록하는 레지스트리 string runKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; RegistryKey strUpKey = Registry.LocalMachine.OpenSubKey(runKey); if (strUpKey.GetValue("StartupNanumtip") == null) { strUpKey.Close(); strUpKey = Registry.LocalMachine.OpenSubKey(runKey, true); // 시작프로그램 등록명과 exe경로를 레지스트리에 등록 strUpKey.SetValue("Startup..

C# .NET 2021.10.28

테이블 2개 조인해서 UPDATE 하기

Oracle에서 2개의 테이블을 조인해서 테이블의 컬럼을 일괄적으로 UPDATE 하고 싶을때 SET 절에서 SubQuery를 통해서 다른 테이블의 값을 조건을 통해서 반영할 수 있다. (예제) 단일 컬럼 UPDATE Table_1 A SET column_1 = (SELECT column_1 FROM Table_2 B WHERE A.KEY = B.KEY) ; (예제) 여러 컬럼 UPDATE Table_1 A SET column_1 = (SELECT column_a FROM Table_2 B WHERE A.KEY=B.KEY), column_2 = (SELECT column_b FROM Table_2 B WHERE A.KEY=B.KEY), column_3 = (SELECT column_c FROM Table_..

Oracle&DB 2021.05.21

GridControl Data Export to Excel

Devexpress GrindControl 데이터를 엑셀로 내보내기 /// /// 그리드 화면에 있는 데이터를 엑셀로 출력 /// /// 그리드 오브젝트 /// 파일명 public static void GetGridExportExcel(GridControl grid, string sFileName = "") { SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.Filter = "Excel (2010) (.xlsx)|*.xlsx|Excel (2003)(.xls)|*.xls"; saveDialog.FileName = sFileName + DateTime.Now.ToString("yyyy-MM-dd"); if (saveDialog.ShowDialog(..

DevExpress&UI 2020.11.26

사용자 계정현황 확인 및 비밀번호 만료일 설정(ORA-28001)

ORA-28001 오류 조치방법 - Oracle 사용자 계정목록 및 상태확인 select username, account_status, lock_date, expiry_date, created, profile from dba_users; - 사용자 비번변경(재설정) ALTER USER stdws IDENTIFIED BY stdws; - 패스워드 만료일(유효기간) 정책(설정값) 확인 SELECT * FROM DBA_PROFILES WHERE resource_type = 'PASSWORD'; - 계정 비밀번호 만료일 무제한으로 변경 ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED PASSWORD_G..

Oracle&DB 2020.11.21

Oracle 트랜잭션(Transaction) - 다건의 쿼리문, 대량데이터 처리

비지니스 로직이 적요된 프로그램에서 Oracle 데이터베이스로 여러건의 쿼리, 또는 대량의 데이터에 대해 삽입과 수정을 일괄로 처리해야하는 경우가 있다, 이때 데이터베이스 쿼리문을 처리중 중간에 에러가 발생하거나, 여러가지 변수로 문제가 발생할 수 있는데, 이때 롤백을 통해서 처리 이전으로 상태를 되돌려야 한다. 이런 경우 트랜잭션(Transaction)을 이용하여 손쉽게 관리코드를 구현 할 수 있다. Example OracleConnection con ; OracleCommand comm ; OracleTransaction oraTrans=null; //오라클 트랜젝션 con = new OracleConnection(); con.ConnectionString = " Data Source=DAUL;USE..

Oracle&DB 2020.10.09

C# Foreach Index, Value

Foreach 반복문에서 Index (반복횟수) 사용법 CASE #1. foreach(var item in somethingList) { // IndexOf 메소드를 활용하여 item의 순번을 통한 Index파악 int index = somethingList.IndexOf(item); } CASE #2. foreach (var item in testList.Select((value, index) => new { Value = value, Index = index })) { //Get the value through item.Value; string currentValue = item.Value; //Get the index through item.Index; int currentIndex = item.I..

C# .NET 2020.10.08
반응형