전체 글 779

[ 정보처리기사 ] 01. 2020 정보처리기사 3회차 실기 대비 - 요구사항 확인

요구사항 확인 소프트웨어 개발 절차 요구사항 분석 - 설계 - 구현 - 테스트 - 유지보수 요구분석 도출된 요구사항들간의 상충을 해결하고 SW범위를 파악하며 SW가 환경과 어떻게 상호작용하는 지 분석하는 과정 외부사용자와의 인터페이스 및 내부시스템 구성 요소간의 인터페이스를 정확히 분석해 시스템을 계층적이고 구조적으로 표현 요구분석 기법 사용자 그룹 인터뷰, 이해관계자 설문조사, 문헌조사(개발팀은 업무 도메인 교육이나 튜토리얼에 참가한다) 프로토타이핑(기본적인 기능만 빠르게 구현), 사용자 스토리텔링(애자일 방법) 객체지향 개발 현실 세계를 프로그램에 반영 소프트웨어 재사용, 유지보수 향상 -> 소프트웨어 위기 해결 방안 관련 용어 : 객체 ,클래스, 메시지, 캡슐화, 정보은폐, 추상화, 상속성, 다형성..

[ 정보처리기사 ] 00. 2020 정보처리기사 3회차 실기 대비 - 요구사항 확인 ( 현행시스템 분석 )

요구사항 확인 - 현행시스템 분석 플랫폼 기차나 전철에서 승객들이 타고 내리는 승강장 다양한 종류의 시스템이나 서비스를 제공하기 위해 공통적이고 반복적으로 사용하는 기반 모듈 응용 소프트웨어 프로그램을 구동시키는 데 쓰이는 하드웨어와 소프트웨어의 결합 소프트웨어 개발과 운영을 쉽게 하고, 한번 만들어진 소프트웨어는 동일한 플랫폼에서는 언제, 어디서 실행시키더라도 손쉽게 구동이 될 수 있도록 만들어진 결합체 플랫폼의 기능 소프트웨어 개발 및 운영 비용 감소 동일 플랫폼 간 커뮤니티를 형성해 네트워크 효과 유발 소프트웨어 개발의 생산성 향상 플랫폼의 기능 특성 확인 방법 기능 테스트 : 현재 시스템의 플랫폼을 평가할 수 있는 기능 테스트 수행 사용자 인터뷰 : 현재 시스템 사용자를 대상으로 플랫폼 기능의 불..

[ Embedded ] 05. Sampling Rate와 나이퀴스트이론

Sampling Rate 소리는 공기 중의 떨림이다. 그 공기 중의 미세한 움직임을 우리의 귀는 우리의 뇌가 이해할 수 있는 형태로 바꿔주는 것이다. 즉, 하나의 형태의 요소가 다른 형태로 바뀌는 것이다. 마찬가지로 우리가 소리를 디지털화 시키기 위해선, 연속적인 아날로그 소리를 컴퓨터가 이해할 수 있는 디지털 언어로 바꿔주어야 한다. 이 과정에서 바로 Sampling 이 등장하게 된다. `샘플링 레이트(Sampling rate)` : 1초에 몇개의 샘플을 추출할 것인지 `Bit Depth` : 한 개의 샘플이 얼마만큼의 크기를 가지는지 => 잘개 쪼갤 수록 부드러운 곡선이 된다. => Sampling rate가 높을 수록 아날로그와 유사한 디지털 값(고음질)을 얻을 수 있다. 나이퀴스트 이론과 기본적인..

[ Embedded ] 04. 화질과 해상도, 채널에 관하여

화질 화질에 중요한 영향을 미치는 2가지 요소 프레임레이트(Frame rate) 카메라에서 촬영된 영상은 한 장 한 장의 이미지로 구성되어 있으며 각각의 이미지를 프레임이라고 합니다. 프레임을 나타내는 단위는 fps(frame per second)이고, 1초 동안 재생되는 이미지 수를 의미합니다. 예를 들어 24프레임이라고 하면 초당 24장의 이미지가 있다는 의미. 프레임이 높을수록 자연스러운 영상을 얻을 수 있지만, 데이터 크기가 커지는 단점이 있다! 비트레이트(Bit rate) 앞에서 다룬 프레임 레이트는 초당 이미지의 갯수라면 비트레이트는 bps(Bits Per Second)로 1초의 영상을 구성하는 데이터 크기라고 생각하면 된다. 아무래도 데이터 크기가 작은것 보다는 데이터 크기가 커진다면 화면을..

[ Embedded ] 03. 오디오코덱의 이해와 역사

AUDIO CODEC의 이해와 역사 오디오 코덱 : 오디오의 디지털 데이터 스트림을 부호화하거나 복호화하는 컴퓨터 프로그램이나 장치. 소프트웨어에서 오디오코덱은 주어진 오디오 파일이나 스트리밍 미디어 오디오 코딩 포맷에 따라 디지털 오디오 데이터를 압축하고 압축 해제를 하는 알고리즘을 구현하는 컴퓨터 프로그램이다. 알고리즘의 목적은 고품질의 오디오 신호를 품질을 유지하면서 최소한의 수의 비트로 표현하는 것이다. 이로써 저장된 오디오 파일의 전송에 요구되는 스토리지 공간과 대역을 효율적으로 줄일 수 있다. 대부분의 코덱들은 하나 이상의 멀티미디어 플레이어와 라이브러리형태로 구현된다. 하드웨어에서 오디오 코덱은 아날로그 신호를 디지털 신호로 인코딩하고 디지털 신호를 아날로그로 디코딩하는 단일장치를 말한다. ..

[ Embedded ] 02. WDT(워치독 타이머)란?

워치독 타이머(WDT) Watchdog Timer 1. 고신뢰성 시스템을 위한, 워치독 타이머 가. WDT의 개념 비정상, 무한루프 등에 빠진 경우 시스템 통제가 불가능한 상황에서 자동으로 시스템을 리셋하는 하드웨어 기능 타임아웃이 되기 전 S/W명령으로 그 값을 clear시켜주지 않으면 MCU를 reset시켜 시스템을 정상적으로 동작하고 있는지 감시하고 지속적인 오동작을 방지 신뢰성 향상 기술 나. WDT의 필요성 제어 실패 방지 메커니즘 필요 불필요한 반복 또는 제어 실패를 방지하는 메커니즘 필요 예상치 못한 실패 안전모드 필요 시스템 일부가 예상 못한 제어 실패 시 안전모드로 전환 필요 2. WDT 개념도 및 구성요소 가. WDT 구성도 나. WDT 구성요소 Clock : HW 디바이스를 동작시키는..

[ Embedded ] 01. 메모리와 프로세스에 관하여

메모리 RAM 컴퓨터를 종료하면 데이터가 날아가는 휘발성 메모리 하드 디스크나 CD와는 달리 속도가 매우 빠르다.(데이터에 랜덤하게 접근할 수 있음) 컴퓨터는 대부분의 데이터들은 메모리에 보관해 놓고 작업을 한다. 틈틈이 하드디스크에 저장! ROM 컴퓨터를 종료해도 데이터가 날아가지 않는 비휘발성 메모리 ex) CD-ROM, DVD-ROM, 하드디스크 => (데이터에 순차적으로 접근한다) 컴퓨터의 한 개의 메모리 소자는 0 혹은 1의 값을 보관할 수 있다. 이 이진수 한 자리를 가리켜 비트(Bit)라고 한다. 따라서, 1개의 비트는 0 또는 1의 값을 보관할 수 있다. 8bit = 1byte 8bit(1byte)로 나타낼 수 있는 최대의 수는 0 ~ 0xFF. 0부터 255로 총 256개의 수를 나타내게..

[ Embedded ] 00. 임베디드의 이해(LINUX 기반)

** 무엇을 배워야 임베디드 리눅스 개발을 잘할 수 있을까? ** 좁게 보면 임베디드 리눅스 개발자가 알아야할 지식은 다음과 같다. 리눅스 디바이스 드라이버 리눅스 커널 CPU 아키텍쳐 SoC 조금 넓게 보면 다응 내용도 알면 좋다. 유저 공간 HAL(Hardware Abstraction Layer) 코드 구현 빌드 스크립트 구현 테스트용 디바이스 드라이버 구현 git과 형상관리 임베디드 리눅스 개발을 시작하면 바로 디바이스 드라이버를 맡는 경우가 많다. 물론 프로세스나 개발 회사 규모에 따라 드라이버 개발 범위가 다르다. 제품을 이루는 디바이스 드라이버의 특정 분야를 맡을 수도 있고 어떤 경우 한 명의 임베디드 개발자가 임베디드 리눅스를 채임지는 경우도 있다. 디바이스 드라이버..

[ 기타 ] IT 프로젝트에 관하여

19-12-24 프로젝트 관리 수주업의 개념 사업기획 및 발주 - 제안 - 계약 및 협상 - 프로젝트 수행 fresales IT 이익률?? 보통 5%이내?! 보통기업은 최소 20%는맞춰야 한다. 1. 컨설팅 프로젝트 기업의 중장기 IT 전략 수립 => 3~5년 중장기 IT 투자계획 Masterplan SP(Strategy Planning) 컨설팅 회사에 의뢰?! why? => 내부적으로 말고 외부적으로 전체적으로 검토하기 위해 ​ (경쟁사 등등) => 객관적인 시각 수주.. 인력감소... 현대차노조... 스마트팩토리못하게막아... 2. SI사업 SI 대부분 신규 시스템,기술 기술을 연계하고 통합(난이도 上) 업무강도 上 성장을 하고. 도전적. 배움의 즐거움. => Career path..

IT/[ 기타 ] 2020.08.12

[ Android ] 10. 싱글쓰레드와 멀티쓰레드(Handler, AysncTask)

Thread(쓰레드) 각각의 프로세스들은 서로 관여할 수 없다. 지금까지 배운 것 하나의 프로세스에서는 하나의 실행흐름만 처리할 수 있었다. 하나의 프로세스에서 여러 개의 실행흐름을 동시에 관리하는 것 => 멀티쓰레드 프로그래밍 여러 공유데이터에 관한 스케쥴링이 필요하다.(게임하기, 채팅하기, 쪽지, 음악듣기, 인쇄하기, .... ) > 쓰레드 프로그래밍을 구현하세요 1부터 100까지 출력하는 DigitThread A부터 Z까지 출력하는 AlphaThread ThreadExam01의 main메소드에서 DigitThread와 AlphaThread를 동시에 실행해보자. class DigitThread extends Thread{ public DigitThread() { } public void run() {..

[ Andorid ] 09. OnMapReadyCallBack으로 Google Map 이용해보기

구글맵 location 설정하기 SupporMapFragment로 부터 지도객체를 추출해야 지도에 여러 가지 작업을 처리할 수 있는데구글맵은 카메라로 지도를 비추고 있는 형태가 모델링 되어있기 때문에 이 위치를 찾는데 시간이 걸린다. => 따라서 내부에서 자동으로 전달될 수 있도록 작업해야한다.(ver.2로 바뀌면서 적용된 내용) FragmentManager를 이용해서 SupportMapFragment를 find OnMapReadyCallback을 구현하고 onMapReady메소드를 오버라이딩 SupportMapFragment객체에 getMapAsync메소드를 이용해서 1번에서 구현한 onMapReadyCallback 객체를 연결 맵이 준비되었을 때 자동으로 onMapReady메소드가 호출되면서 매개변수..

[ Android ] 08. drawer를 이용해 Recycler View 구현하기

TabLayout & design gradle(app) 라이브러리 다운로드 implementation 'com.android.support:design:28.0.0' menu의 리소스화 package multi.android.material_design_pro.exam; public class FragmentExam01 extends AppCompatActivity { private final List mFragmentList = new ArrayList(); private final List mFragmentTitleList = new ArrayList(); ViewPager examPager; ExamPagerAdapter adapter = new ExamPagerAdapter(getS..

[ Android ] 07. 부분 화면전환을 위한 Fragment

Fragment 메모리를 적게 사용하면서 화면 전환을 실행시키는 기법 화면은 액티비티인데 그 화면 안의 고정되어있는 부분에 그 영역에 교체되어서 들어가게 하는 역할? 자세한 내용이 궁금하다면 Github 참조. 20-04-14 화 Fragment 안드로이드에겐 Back stack이 있어서 새로운 프래그먼트가 들어오면 기존에 있던 액티비티들은 Back Stack으로 들어간다. 여기서 뒤로버튼을 누르면?(액티비티 종료) => 백스택에 맨 위에 있던 액티비티가 올라와 화면에 뿌려진다 - lifecycle => lifecycle 확인을 위해 오버라이딩 해야 하는 메소드. ( + onDestroy() ) addTobackStack 사용할 때의 lifecycle ViewPager - baisc view.ver - ..

[ Android ] 06. 안드로이드에서 Map(지도) 이용하기

Map, Location, Tab, ViewPage, Fragment https://console.developers.google.com/ Map dependencies에 필요한 라이브러리를 등록 implementation 'com.google.android.gms:play-services-maps:17.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0' layout에 fragment 추가 Manifest에 인터넷 설정과 메타데이터 추가하기. - 발급받은 API-Key Location ㅇㅇㅇㅇ

[ Android ] 05. 안드로이드의 FileSystem

FileSystem 앱별로 내부저장소가 패키지별로 따로 관리가 되고 있고, 아무도 접근하지 못하는 공간. 패키지가 지워지면 자동으로 지워진다~ 외부저장소인데 패키지 이름과 똑같이만들면 삭제될 때 같이 저장된다. 똑같이 외부저장소 똑같이 외부저장소 내부저장소 이 앱만 사용하기 때문에 권한체크 안해도 됨 외부저장소 외부저장소는 다른 것들을 같이 건드리지 못하도록 권한체크 필수 사용자로 하여금 권한을 줄건지 말건지 설정해야 함 데이터를 지워도 외부저장소에는 데이터가 남아있다. // 외부저장소 권한 설정 // 이전버전 저장소 권한 설정 // 외부저장소/임의의디렉토리 생성 // => 앱을 삭제해도 데이터는 남아있다. String dirPath = external.getAbsolutePath()+"/myApp"; ..