OS  Log성 파일 관리 Shell

OS Log성 파일 관리 Shell



개발목적 : Log File은 어떤 System을 가더라도 존재하기 마련이다. 이러한 Log File들을 관리 없이 그대로 방치하게 된다면 System 성능에 무리를 주게 된다. 이러한 이슈를 해결하고자 자동으로 생성되는 Log들을 대상으로 통합적으로 관리할 수 있도록 Shell을 작성한다. 리눅스 명령어에 대한 전반적인 이해와 DB운영에 있어 이슈가 될 만한 부분들을 자동적으로 관리하기 위한 목적으로 작성한다.

개발환경 : Ubuntu, Bourne Shell

구현내용 :

관리의 용이함을 위한 Split, Compress, Delete 수행 주기를 일 단위로 입력받는다.

사용자는 파일 리스트만을 관리하므로 수정 혹은 삭제가 가능하도록 제작한다.

crontab을 이용해 일 단위로 서비스 점검 시간에 맞춰 수행하도록 설정한다.

file list 등록 화면

전체적인 흐름도

구성

구분

구현내용

파일 리스트

log file들의 filepattern, 삭제, 스플릿의 주기와 수행 여부를 입력 받아 list형식으로 받게 제작하였다.

스플릿

쌓이는 log 파일을 출력 리다이렉션을 이용해 새로운 파일로 작성하고 그 파일들을 파일 리스트의 정보에 따라 스플릿 하게 제작하였다.

압축

저장되고 있는 log 파일들을 더욱 효율적인 메모리 공간 사용을 위해 파일 리스트의 정보에 따라 압축하도록 제작하였다.

삭제

저장되고 있는 log 파일들을 파일 리스트의 정보에 따라 삭제하도록

제작하였다.

나의 의견

처음 배우고 처음 다뤄본 Linux Shell이었지만, 처음이라는 만큼 많이 시간과 애착을 들여 작성한 Shell입니다.

테스트 환경이기 때문에 log file을 테스트하기에 직접 Shell에서 발생하는 에러를 경험하기가 어려웠습니다.

또 처음 알고리즘을 만들고 제작하였지만, 추가되는 부분에 있어 엉키는 부분이 생겨 다시 알고리즘을 그리고

제작한 고난도 있었습니다. 덕분에 알고리즘의 중요성도 재차 느끼게 되었습니다. Shell을 다른 환경으로

들고 갔을 때, 작동이 되지 않았고 이식성에 대해 고려도 해봐야 한다고 생각하여 작성하였습니다.


'Study Note > My work' 카테고리의 다른 글

Rand() 함수를 이용하여 C언어 게임 만들기  (0) 2016.03.07
Motion Controller  (0) 2016.01.25
주차 예약 시스템  (0) 2016.01.25
Android Application을 이용한 LED 제어  (0) 2016.01.25
라인트레이서  (3) 2016.01.25

Rand() 함수를 이용하여 C언어 게임 만들기

Rand() 함수를 이용하여 C언어 게임 만들기



개발목적 : 절차적 프로그래밍을 이해하면서 동시에 조건문, 반복 문과 배열을 사용하여 주어진 조건(Rand() 함수 사용)에 따라 게임을 완성하고 C언어에 대한 완벽한 이해를 위하여 제작하였다.

개발환경 : Visualstudio2010, C언어

구현내용 :

Rand() 함수를 이용하여 제공되는 특수문자들을 Random으로 나열하도록 제작하였다.

짝을 맞출 시 그 자리에 그대로 남아있고, 틀리면 다시 “?”로 돌아오게끔 제작하였다.

Hint를 사용할 시 아직 공개되지 않은 부분만 보이도록 제작하였다.

게임 설명

진행 화면

 

나의 의견

C언어를 공부에 있어 따분한 예시들을 사용하는 것이 아니라 게임을 제작함으로써 흥미도가 굉장히 높았던 것 같습니다. 게임을 제작하게 되면 프로그램이 커지게 되고 소스 코드 안에 사용되는 구문들이 자연스레 많아지고 이중, 삼중으로 사용하여 단순히 이해하는 게 아니라 직접 사용해보고 원리도 쉽게 파악했던 것 같습니다.

프로그램을 제작하면서 처음 써보는 함수들도 있었고, 사용자 정의 함수를 만들어 사용하다 보니 많은 버그도 생겼었습니다. 버그 수정 과정이 대부분 많은 시간을 차지하였고 그 시간이 길었지만, 무언가 하나하나 완성되는 과정을 보고 지루하지 않았습니다. 프로그램을 제작할 때 성능을 고려하여 자료형 변수까지 고민해가며 제작하였고, 다음 프로그램을 제작할 때도 충분히 많은 고려를 해가며 제작해야겠다고 느꼈습니다.


'Study Note > My work' 카테고리의 다른 글

OS 내 Log성 파일 관리 Shell  (0) 2016.03.07
Motion Controller  (0) 2016.01.25
주차 예약 시스템  (0) 2016.01.25
Android Application을 이용한 LED 제어  (0) 2016.01.25
라인트레이서  (3) 2016.01.25

Motion Controller 

졸업작품 < Motion Controller >

개발목적 : 가까운 미래에 '마이너리티 리포트'와 같은 SF 영화에서처럼 손가락을 움직여 컴퓨터 화면 위의 다양한 이미지와 데이터를 불러내고 작업하는 시대가 펼쳐질 것으로 전망되어, 이를 구현시키면서 ATmega8, Gyro, Flex 센서 및 Bluetooth 통신을 이해하고, CodeVisionAVR을 활용한 임베디드 능력을 향상시킨다.

개발환경 : Atmega8, Bluetooth통신, Gyro센서, Flex 센서, Windows 8, CodeVisionAVR,

Visualstudio2010, MFC C++, C언어

구현내용 :

손가락의 굽힘으로 여러 가지 패턴을 생성한다.

굽힘 패턴과 더불어 Gyro 센서의 움직임을 이용해 가공된 신호를 생성한다.

가공된 신호를 Bluetooth 통신을 통해 컴퓨터에서 받고 Win8의 마우스 및 기능을 구현한다.

활용기술

구분

구현내용

Flex Sensor

굽힘에 따라 저항이 증가하며 전압 분배 법칙을 이용한 회로를 통해 ADC 변환을 수행하여 각 손가락의 0 혹은 1의 패턴을 생성한다.

Gyro Sensor

(MPU-6050)

각속도와 가속도에 따라 변화하는 센서 값을 내장된 LPF를 거쳐 센서 값을 가공한 후 I2C 통신을 통해 MCU에 전달하고 손목의 움직임과 움직임의 크기를 감지한다.

Bluetooth

(HC-06)

wireless 화를 위한 통신 모듈로 rx, tx 포트를 사용한 slave 장비와 컴퓨터 usb dongle로 구성한 Master 장비 간의 통신을 가능하게 한다.

MFC

소켓을 생성해주고 Bluetooth를 통해 전달해 오는 데이터 값들을 가공하여 Windows 내 행동을 수행하도록 Windows에서 제공하는 함수를 이용해 마우스와 키보드를 제어하도록 한다.

 

나의 의견

우선 처음 사용했던 낯선 parts 들에 대한 이해와 구현을 하는 부분에 있어 가장 큰 어려움이 있었습니다.

parts 들에 대한 부족한 사전 지식은 datasheet를 보며 공부하였지만, datasheet를 보고 구현하기엔 많은 어려움이 있었습니다. 그 덕에 전공서적을 더 많이 찾아보고 더 부족한 내용은 인터넷을 활용해 검색해보았으며, 검색하는 과정에 있어 이쪽 분야의 넓은 견문과 지식을 쌓았습니다. 이 프로젝트를 진행하면서 빨리할 수도 있을 것 같았지만 많은 시간을 공들여 완성하였습니다. 그 결과로 제게 돌아온 지식과 성취감은 정말 말로 이룰 수 없이 좋았고, 그 많은 시간을 보낸 것에 대해 한 치의 후회도 없었습니다. 지금까지 얻어온 지식들과 열의로 무언가를 해내고 싶은 열망이 생겼습니다.

 

'Study Note > My work' 카테고리의 다른 글

OS 내 Log성 파일 관리 Shell  (0) 2016.03.07
Rand() 함수를 이용하여 C언어 게임 만들기  (0) 2016.03.07
주차 예약 시스템  (0) 2016.01.25
Android Application을 이용한 LED 제어  (0) 2016.01.25
라인트레이서  (3) 2016.01.25

주차 예약 시스템

기간 : 2014. 06 ~ 2014. 08

아이디어

주차를 함에 있어서 매번 자리를 찾아 돌아다녀야 하는 상황을 개선하고자 주차장의 빈자리를 미리 파악을 하거나 예약을 하여 불필요한 상황 발생하지 않도록 함

기대효과

스마트폰의 어플리케이션을 통하여 쉽게 주차공간 확보

개선방안

출입이 자유롭게 무인으로 관리 할 수 있도록 하며 자동으로 주차장까지 안내하는 LED를 사용하며, 현재 상용에서 사용되는 삼성Pay등을 이용해 자동 결제까지 되는 완벽한 무인주차장으로 완성

활동내용

1. 지그비와 TCP/IP통신을 이용한 프로그램

2. 적외선 센서를 통한 차량인식 

3. 주차관리서버 구축

 

'Study Note > My work' 카테고리의 다른 글

OS 내 Log성 파일 관리 Shell  (0) 2016.03.07
Rand() 함수를 이용하여 C언어 게임 만들기  (0) 2016.03.07
Motion Controller  (0) 2016.01.25
Android Application을 이용한 LED 제어  (0) 2016.01.25
라인트레이서  (3) 2016.01.25

Android Application을 이용한 LED 제어

Android Application 음성인식을 이용한 PIC LED제어



개발목적 : 편리함을 추구하는 사람들이 늘어나면서 홈네트워크 시장은 나날이 발전하고 있었으며, 스마트폰을 이용해 집의 내부를 제어하는 제품들도 많이 늘어나고 있다. 이런 트렌드에 맞춰 PIC 칩과 안드로이드 어플을 제작해 LED를 제어하는 제품을 제작하였다.

개발환경 : PIC, MPLAP, Hightech C Compiler, Java, Android Eclipse, Bluetooth 통신

구현내용 :

스마트폰의 어플을 제작하여 버튼을 누르거나 음성인식으로 불 꺼혹은 불 켜LED를 제어한다.

USART통신으로 받은 데이터로 LEDOn혹은 Off되도록 제어한다.

활동내용 :

하드웨어 및 소프트웨어를 이용한 임베디드 시스템

PIC & 무선통신의 기초적인 학습

Java를 이용해 Bluetooth & Android 음성인식 프로그램 개발

안드로이드 알고리즘

안드로이드 음성인식 소스코드





 

나의 의견

연구실에 들어와 처음 수행했던 프로젝트로 아는 것도 별로 없고 평소 사용해보던 MCU도 아니라 수행하는데 많은 어려움이 있었습니다. 특히 PIC 칩이 접근하는데 있어 어셈블리어에 대한 자료를 보게 되었고 그 부분을 접근하려다 보니 큰 어려움이 있었습니다. 계속하다 안돼서 당근이의 AVR 갖고 놀기라는 카페의 도움을 받고 C로 해결할 수 있단 정보를 알았습니다. 또 하나의 어려움은 안드로이드 어플 작성이었습니다. java라는 언어는 배워 본 적이 없어 안드로이드 어플 제작이 힘들었습니다. 하지만 인터넷에 많은 정보가 있었고, 오픈 소스들이 많이 제공되어 있어 java 언어를 몰라도 제작할 수 있었습니다

 

 

 

'Study Note > My work' 카테고리의 다른 글

OS 내 Log성 파일 관리 Shell  (0) 2016.03.07
Rand() 함수를 이용하여 C언어 게임 만들기  (0) 2016.03.07
Motion Controller  (0) 2016.01.25
주차 예약 시스템  (0) 2016.01.25
라인트레이서  (3) 2016.01.25

라인트레이서

라인트레이서

개발목적 : 기본적인 적외선센서, 서브모터에 대한 이해와 Atmega128의 기본적인 사용법에 대해 이론을 더욱 강화시키고 공부해온 정보를 취합시켜 결과물을 도출해내기 위해 제작하였습니다.

개발환경 : Atmega128, CodeVisionAVR, C언어

구현내용 :

라인트레이서 경로를 따라 양쪽 적외선센서의 결과 값을 이용해 경로를 파악합니다.

적외선센서 값에 따라 양쪽 모터속도를 제어해 경로를 이탈하지 않도록 제어합니다.

활동내용 :

ATmega128를 이용한 모터구동

적외선 센서를 통한 흰색라인 인식

CodeVision Program tool로 설계

간단한 축소 경로 제작

나의 의견

인터넷에도 많은 정보가 있듯 가장 기본적이지만 기본을 다지기 위해 학술동아리에 처음 들어와 완성한 작품으로 기반을 다지는데 많은 도움이 되었습니다. 과거 ebs에서 로봇파워라는 각 팀이 로봇을 만들어와 서로 대전하는 프로그램을 즐겨 봤는데 우리도 파괴하는 로봇은 아니지만 동아리 동기들끼리 각자 만들어 테스트하자고 하였습니다. 서로 기능 테스트를 하며 서로 안 되거나 모르는 부분을 도와가며 완성하였습니다. 이런 작품을 만드는데 서로의 경쟁력과 흥미를 유발해 모두가 열심히 했던 기억이 납니다. 앞으로의 모든 프로젝트 등을 이런 마음을 가지고 수행할 수 있다고 생각합니다.


 

'Study Note > My work' 카테고리의 다른 글

OS 내 Log성 파일 관리 Shell  (0) 2016.03.07
Rand() 함수를 이용하여 C언어 게임 만들기  (0) 2016.03.07
Motion Controller  (0) 2016.01.25
주차 예약 시스템  (0) 2016.01.25
Android Application을 이용한 LED 제어  (0) 2016.01.25

+ Recent posts