copy command : cp -r src_dir1 dest_dir2
cp -r src_dir1 dest_dir2
- ▶ 이전글/Linux
- · 2018. 1. 22.
"C에서 Android의 Activity 구현하기""app은 이제껏 우리가 만든 패턴들의 집합체 입니다."그렇습니다. 여태 우리는 완성된 application의 framework를 만들기 위해 계속해서 패턴들을 학습해 오고 있었습니다. 이런 패턴들의 총아인 app을 구현해 보도록 하겠습니다.Android Java API, C# API 등 자원이 풍부한 Application 플랫폼들은 한결 같이 화면 단위 컨트롤들을 가지고 있습니다. 예를 들어 Android 에선 Activity가 생성이 되면, 레이아웃을 통해 화면에 디스플레이도 할 수 있고 각종 메시지(버튼 및 터치 포함)도 받을 수 있도록 되어 있습니다. 하나의 application에서 Activity가 없다는 것은 상상 할 수 없을 것입니다. And..
cp -r src_dir1 dest_dir2
이전글에선 GitHub에 저장소를 만드는 것까지 진행했습니다. 이번에 Eclipse 부분을 보도록 하겠습니다. 먼저 테스트 코드를 작성합니다. 저는 아래와 같이 간단한 소스를 생성하였습니다. 이제 생성된 좌측의 program_1 폴더의 마우스 오른 버튼을 누르시고 [Team]>[Share Project...]를 누르고 아래 화면 처럼 세팅합니다. 이 설정은 현재 로컬 PC에 저장소 설정을 만드는 과정입니다. 이 설정이 만든 후 GitHub와 연동하게 됩니다. [Finish]를 누르면 아래 화면처럼 .git 폴더가 새로 생성됩니다. 그리고 아이콘 옆에 물음표(?)와 >가 생성됩니다. 여기에서 다시 program_1 폴더에 마우스 오른쪽을 클릭하여 [Team] > [Commit] 을 누르면 됩니다. 그리고 ..
형상관리라고 하는 소스관리 프로그램이 있습니다. 작성한 소스 코드를 어떻게 관리하고 계신가요? 프로그램은 한번에 완성된 코드를 작성 할 수 없기 때문에 많은 수정을 하게 됩니다. 이 과정을 코딩과 디버깅 과정이라고 하는데 상당한 많은 작업을 하게 됩니다. 하나의 프로그램이 완성되어도 여러번의 유지보수가 발생하기도하고 혹은 대규모의 수정 및 파생 프로그램이 발생할 수 있기 때문에 소스관리를 하는 프로그램이 필요합니다. 소스를 가장 쉽게 관리하는 방법은 큰 규모의 수정이 생길 때 마다 날자별로 폴더를 새로 만들어 이전것은 백업하고 새로 복사한 코드에서 수정하는 고전적인 방법이 있습니다. 이 방법은 현재 코드와 바로 이전 코드는 비교적 비교하기 쉽지만 더 오래된 코드와 비교하기는 어렵습니다. 또한 수정된 코드..
Eclipse 제가 정말 좋아하는 개발 IDE입니다. 비록 디버거와 연동은 되지 않지만 개발하기에 정말 편리한 툴입니다. 풍부한 확장성과 자동완성 등 개발자가 원하는 기능이 거의 다 들어있는 것 같습니다. 시간이 되면 저의 개발 환경과 비슷하게 꾸미는 과정도 알려드리도록 하겠습니다. 자잘한 기능까지 알려드리도록 하겠습니다.이번에는 기본 Theme가 좀 지겨우신 분들이 참조하면 좋은 Darkest Dark Theme 설치 방법을 알려드리도록 하겠습니다. 우선 Eclipse를 켭니다. 제껀 이렇게 생겼네요. Version: Oxygen.2 Release (4.7.2) 입니다.좌측의 Navigator 보이시죠? 원래는 Project Explorer 인데 저는 Navigator가 더 편하더군요. 정렬이라든가 아..
[네이버 지식백과]builder 패턴 (쉽게 배우는 소프트웨어 공학, 2015. 11. 30., 한빛아카데미(주)) Builder 패턴을 공부해 봅시다. 이해하기 좀 어려울 수도 있겠는데요, 각각의 구현은 다르지만 기능은 같은 객체들을 관리하는 관리자를 만드는 패턴입니다. 사용자 즉 main 함수에서는 객체를 만들 뿐 기능을 사용하기 위해 직접 호출하지 않고 관리자를 통해서만 일 처리를 합니다. 이번에는 Key(버튼) 처리하는 기능으로 예제를 만들어 봤습니다. 언제가 꼭 해보고 싶었던 예제인데요, firmware에서는 참 많이 쓰이는 기능입니다. Key 처리 기능은 하드웨어가 바뀌면서 프로젝트마다 바뀔 소지가 있습니다. 단순 1:1 GPIO를 사용할 수도 있고 ADC를 사용할수도 있습니다. 혹은 1:N ..
[네이버 지식백과] facade 패턴 (쉽게 배우는 소프트웨어 공학, 2015. 11. 30., 한빛아카데미(주)) 프로그램 디자인 패턴은 문법이 아닙니다. 따라서 하나의 패턴으로 프로그램 전체를 완성시킬 수는 없습니다. 그리고 완벽하게 룰을 지키는 패턴도 필요없구요. 상황에 따라 여러 패턴들을 조금씩 응용해서 사용할 뿐입니다. 너무 복잡한 패턴은 굳이 쓸 필요가 없습니다. 오히려 유지보수 혹은 한 프로젝트에 다수의 개발자가 존재할 경우 코드를 이해하지 못하는 경우가 발생할 수 있습니다 또한 인수인계 발생시에 왜 이런 패턴을 구현했는지 잘 설명해줘야 합니다. 안그러면 좋은 구조로 잘 설계된 프로그램이 타인에 의해 조금씩 붕괴되는 광경을 목격하실 겁니다. 보통 알고리즘을 사용할 때 복잡한 절차가 있게 마련..
RTOS조차도 없는 Firmware에서는 각각의 기능 프로세스의 처리 시간을 적당히 잘 분배 해야 합니다. 처리 시간이 긴 프로세스는 여러개로 쪼개야 하며, 특히 인터럽트 발생시 인터럽트 루틴에 긴 처리시간을 요구하는 코드를 넣으면 절대 안됩니다. 더욱이 간당간당한 처리시간을 요구한는 코드를 넣는 경우가 더욱 위험합니다. 왜냐하면 어쩔때는 잘 돌아가고 어쩔때는 에러를 발생시키는 경우가 발생할 수도 있으며 이러한 경우에는 디버깅이 상당히 힘들어 집니다.처음부터 아예 인터럽트 루틴에서는 단순히 데이를 적당한 자료구조에 적재해놓던가, 해당 플래크를 set하는 수준 혹은 메시지를 던져주는 수준에서 마무리하는 것이 가장 좋습니다. 만약 전체 시스템이 1초단위로 어떠한 처리가 끝나야 한다면, 각각의 프로세스들이 최..