4차산업혁명의 일꾼/컴퓨터과학 34

알고리즘 기초 정리

알고리즘은 시간복잡도 빅오를 상수,로그,선형,선형로그,이차시간,지수시간,팩토리얼보고 공간복잡도를 메모리양으로 생각한다. 시간과 공간 효율성은 자료구조를 알고나서 좀더 생각해보자. 자료구조는 배열,연결리스트,스택,큐,힙(PriorityQueue- 완전이진트리),트리,그래프,해시 등이 있다.배열과 리스트는.. [] 와 index로 넘어가고스택은 LIFO로 호출에 좋고, 큐는 FIFO로 순서적인 계산대를 생각하면 되었고,힙은 최댓값, 최솟값을 구하는데 좋다. 마지막을 제외한 모든 노드에서 자식들이 꽉 채워진 이진트리이다.(중복허용)트리와 그래프는 비선형 자료구조이며 노드와 간선으로 구성된다. 그리고 둘다 특정순회방법(DFS, BFS) 등을 사용하여 노드를 방문할 수 있다. 차이점이라면 트리는 계층구조(root..

컴퓨터를 운영하는 시스템 소프트웨어 운영체제

1. 운영체제의 구성과 유형컴퓨터의 시스템 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모음커널 : 응용 프로그램과 하드웨어 수준의 처리 사이의 가교 역할마이크로 커널 : 메모리 관리, 멀티태스킹, 프로세스간 통신(IPC) 등 최소한의 요소만 커널내에 남김 일체형 커널 : 커낼 내부 요소들이 서로 효율적으로 상호작용(UNIX, LINUX)일괄처리(batch) , 시분할(대화형), 실시간(증권시스템), 분산 처리프로세스는 메모리에 code 프로그램이 data(static,heap, stack)를 PCB(제어) 하도록 하는 것이다.윈도우는 자식 프로세스는 새로운 프로그램을 생성하나, UNIX,Linux는 자식프로세스는 부모 프로세스와는 다른 프로그램을 실행하는 방식으로 작동..

컴퓨터를 보호하고 정보를 지키자~! 컴퓨터 보안~!

1. 컴퓨터의 기본적인 보안개념을 살펴보자컴퓨터 보안은 정보를 여러가지 위협으로 부터 보호하기 위한 정책 및 기법이다.정보가 저장 전달 될 때 허락되지 않은 접근, 수정, 훼손, 유출 등을 하므로, 정보보호의 목표는 접근에 관한 기밀성, 수정에 관한 무결성, 사용에 관한 가용성 확보이다.해커는 컴퓨터의 세세한 부분까지 적극적으로 탐구하고 활용성을 극대화하기 위해 연구하는 것을 즐기는 사람을 말한다.요즘 보안에 위협되는 수법으로 파밍(PC에 악성코드를 설치해 주소를 올바르게 입력해도 사기 사이트로 접속)과 스미싱(문자메세지로 악성코드 심은 url 보내 스마트폰으로 소액결제 유도) 등이 있다.2. 보안을 위해 암호가 중요하니 혼돈과 확산원칙의 암호를 알아보자 두 사람이 안전하지 않은 채널을 통해 정보를 주고..

정보를 공유하고 교류하는 컴퓨팅 정보통신망~!

1. 컴퓨터 통신망과 데이터 통신 요소 서비스를 제공하는 서버 컴퓨터와 서비스를 사용하는 클라이언트 컴퓨터가 있다.통신망의 역할로는 전송(DTE), 신호변환(), 제어(DCE)가 있다. 컴퓨터 통신망은 기본적으로  전송시 data는 반송파 신호를 쓰는데 변조 및 복조를 하며, 전송코드(ASCII , Unicode, BCD) , 전송방향(단반향,반이중,전이중), 전송모드(병렬,직렬), 전송동기가 있다. 2. 통신요소통신선로(점대점, 멀티드롭, 점선)전송매체(꼬임선-STP,UTP, 동축-근거리, 광섬유-장거리, 무선통신)네트워크형태( 성형, 버스형, 환형, 그물형, 계층형)네트워크 장치(리피터, 허브, 브릿지-lan,mac, 라우터-ip, 게이트웨이-응용)네트워크 소프트웨어3. 전송기술데이터 교환(회선-통신..

컴퓨터 보안 기초 정리

컴퓨터를 쓰면서 부터 늘 보안에 관해 생각해 봤습니다. 알약으로 대두되는 한국의 대표적인 보안 프로그램이 있지만, 메일 등을 통한 여러가지 랜섬웨어 등, 악의적인 크래커들이 보안망을 뚫고 들어가서 데이터를 갈취해가는 것들을 종종 뉴스에서 많이 봐왔기 때문입니다. 데이터 보호는 정책이나 기법으로 보호가 가능하네요ㅕ 메트릭스나 이런 데 봐도 다 컴퓨터 시스템에 침투해서 여라기지 일들이 펼쳐지는데... 해킹이라는 것의 기본개념을 알고 싶습니다. 아직까지는 털려도 크게 문제가 되지 않는 개인서버를 운영하고 있지만 그래도 컴퓨터 보안과 정보보호에 대해 알고 있어야 할 것 같습니다. 정보보호의 핵심목표는 기밀성,무결성,가용성이 있네요~! 정보가 데이터 통신에 있어서 접근,수정,훼손,유출이 되지 않게 하는것이 이 과..

운영체제와 커널

운영체제가 무엇인가? 운영체제의 주요 구성요소에는 프로세스 관리자, 메모리 관리자, 장치관리자, 파일 관리자가 있다. 운영체제의 대표적인 유형으로는 일괄처리 운영체제, 시분할 운영체제, 실시간 운영체제, 분산 운영체제가 있다. 운영체제가 주로, 프로세스와 메모리 관리를 하고 있었고, 장치와 파일등을 관리할 거라고 암묵적으로 생각하고 있었다. 다만 어떤 식으로 하느냐는 일괄처리/시분할/실시간/분산 처리 방식으로 한다는 것도 어렴풋이 기억이 있다. 응용프로그램이 없다면 하드웨어를 잘 알아야 한다라... 그냥 dos 시대 정도부터 봐왔는데 cli 정도를 잘해야 한다는 것 같네요~! 이게 리눅스의 커널같은 것 같은데요 커널에서는 하드웨어를 직접제어할 수있는 CPU명령어를 사용할수 있는 모드인데... git 으로..

정보통신망 기본용어와 구조

정보란 국어사전에 따르면 “관찰이나 측정을 통하여 수집한 자료를 실제 문제에 도움이 될 수 있도록 정리한 지식 또는 그 자료”라고 정의하고 있다. 현대 정보 사회를 살아가는 인간에게는 자기가 필요한 정보를 어떻게 정확하고 신속하게 얻을 수 있는가가 매우 중요하다. 이번 장에서는 정보통신망의 기본적인 용어를 이해하고, 통신망의 구조에 대해서 학습하고자 한다. 정보라는 것은 관찰이나 측정을 통해 실제 문제에 도움이 되는 지식이라 정의 할 수 있다. 나에게 필요한 정보를 어떻게 정확하고 신속하게 얻을수 있는가? 정보통신망의 용어과 구조를 이해해보자 주요용어 컴퓨터 통신망 : 자원과 정보를 공유할 수 있게 해 주기 위해 통신 채널들로 상호 연결된 컴퓨터들과 기타 하드웨어 및 소프트웨어 구성 요소들의 집합체 분산..

HTML5 프로그래밍 정리 1~3강

캔버스 개요 캔버스 → 자바스크립트 코드를 이용해서 웹 브라우저에 비트맵 방식으로 그림을 그리는 기능 캔버스 작업을 위한 기본 과정 - body 요소 내에서 canvas 요소를 사용해서 그림이 그려질 사각형 영역을 지정 미지원 브라우저를 위한 내용 - script 요소 내에서 자바스크립트 코드로 해당 영역에 실제 그림을 그린다. 리스트 표현 리스트 관련 요소 → ul, ol, li, dl, dt, dd ul → 순서 없는 리스트 → 기호 종류: none, disc(기본), circle, square ol → 순서 있는 리스트 - 속성 → type(기호 유형), start(시작할 항목 번호), reversed(역순) li → ul/ol에서 공통으로 사용되는 하위 요소로서 리스트의 각 항목 표현. 들어쓰기...

HTML5 프로그래밍과 typora 그리고 git(readme.md)

typora 라는 툴을 보면 아이에 markdown 파일만을 전용으로 다룬다. git에서 자기 첫 페이지 꾸미는 것도 markdown 파일로 한다. html5 이 쉽다고 html가지고 가지고 놀리는 사람도 있는데 사실 html5가 없으면 web은 동작하지 않는다. 그냥 웹 기본기 프로그래밍인데 희안하게 방송통신대에 과목이 있다. 그래서 그냥 쉽겠거니 하고 신청을 해보았다. 사실 알고 보면 html5는 수학이니 로직이니 이런게 복잡하지 않아서 우습게 보는 사람도 있는 것 같은데... 희안하게 이 마크업 랭기지 전용툴도 있다는 것을 알았다... 이 마크다운 문법은 git에서 써본 경험으로는 문서용이다. 그렇다. 어짜피 산출물이 나오고 비 개발자와 소통할 때 필요한게 마크업이고 그것을 좀더 word 말고 개발..

방송통신대 컴퓨터과학과 올해를 넘기면서

개발을 하다보니 개발을 좀더 깊이 있게 알고 싶어졌고, 전문가가 되고 싶어졌다. 늘상하는 웹개발도 쉬운건 아니었지만 보다 포괄적이고 넓게 알고 싶었다. 그래서 방송통신대에 3학년에 편입했고 이제 1년 반이 넘어간다. 처음에는 C++, JSP프로그래밍,자료구조,컴퓨터과학,프로그래밍언어론을 배웠다. 객체지향의 언어 자바에 있던 관계로 얕게 나마 C++부터 손대보게 되었는데 생각대로 어려웠지만 절차지향이 뭔지 확실히 알게 되었고 소문으로만 듣던 포인터를 써보면서 나름 메모리 관리를 신경안쓰고 편하게 관리를 한편이라는 것을 여실히 알았다. 컴퓨터과학은 정보처리기사랑 비슷해서 정보처리기사를 답습한 느낌이었다. [4차산업혁명 정보화시대]정보처리기사를 따고 .. : 네이버블로그 (naver.com) 진리 탐구일지 :..

클라우드 컴퓨팅의 미래

엣지 컴퓨팅은 프론트 엔드, 니어 엔드, 파 엔드 계층으로 구성된다. SASE는 엣지 계층의 WAN에 여러 가지 네트워크 보안 요소를 통합한 네트워크 아키텍처이다. 포그 컴퓨팅은 IT 리소스를 파 엔드와 프론트 엔드 계층 사이에 배치하여 중간 단계에서 데이터를 처리하는 방식이다. 더 고성능의 컴퓨팅 리소스가 필요할 경우 점차적으로 엣지, 포그, 클라우드 계층으로 데이터를 전송한다. 포그 컴퓨팅 환경에서는 인공지능 기반 EDR 보안 기술 등이 이용된다.

리눅스의 시작과 종료

리눅스가 시작되면 BIOS가 부트 로더에 Boot device가 돌아가고 GRUB에서 kernel / initramfs 가 실행된다. systemd 프로세스는 커널이 실행시키는 첫번째 사용자 프로세스이고 모든 사용자 프로세스의 최상위 조상 프로세스로 PID가 1이다. 나머지 부팅과정 즉, 시스템 초기화 작업을 실행해서 초기화 데몬이라고도 한다. 사용자환경을 준비하는데 파일시스템의 마운트, 시스템 운영을 위한 서비스 프로그램의 실행등을 한다. 서비스들의 병렬 시작을 하고 온디맨드를 활성화하며 서비스 간 의존성 해결을 한다. 이후 계속 수행되며 시스템 운영을 관리하고 셧다운까지 처리한다. 시스템 상태를 모니터링하고 데몬을 관리하며 사용자 프로세스를 정리하고 로그아웃처리와 로그인 서비스의 제공 등을 한다. s..

멀티미디어 환경/데이터/압축

환경 디지털 미디어 장비 : 캡처, 프레젠테이션, 프로세싱 장비로 구성 아날로그 미디어 장비 : 소스, 싱크, 필터 장비로 구성 미디(MIDI) : 전자악기와 컴퓨터간의 상호 정보교환을 위한 규약 메타 데이터(meta data): 데이터에 관한 데이터로서, 정보자원을 설명하는 요소들의 집합 종합정보통신망(ISDN) : 단일 통신망으로 음성, 문자, 영상 등 다양한 서비스를 종합적으로 제공하는 통신망 광대역 종합정보통신망(B-ISDN): ISDN보다 고속전송을 지원하는 종합정보통신망 초고속인터넷망: 디지털 가입자 회선방식을 사용하는 초고속 인터넷망으로, SDSL, ADSL, VDSL 방식이 있음 IMT-2000: 국제 전기통신연합(ITU)이 정의한 3세대 이동통신의 국제 표준 IMT-2020: 국제 전기통..

골동품이 생각나는 멀티미디어와 진행되어야할 프로젝트

멀티미디어가 처리될수 있는 PC를 MPC라고 한다. 멀티미디어는 텍스트(txt),사운드(mg3),이미지(img,jpeg,png),그래픽GUI,비디오(mp4),애니메이션 등의 여러 미디어들을 이용하여 표현되는 정보를 가리킨다. HCI기술은 컴퓨터를 보다 쉽게 이용할 수 있는 기술이다. 이 기술은 멀티미디어 데이터의 입력, 처리,제어를 상호 대화 형태의 조작이 가능하도록 함으로써 인간과 컴퓨터간의 상호작용을 쉽고 편리하게 개선하는데 목적이 있다. 멀티미디어의 특성은 정보의 디지털화, 정보의 통합, 정보의 상호작용, 정보의 공유 등이라고 할 수 있다. 하이퍼미디어 기술(HTML , XML , DHTML 등) 멀티미디어 정보의 호환을 위한 표준화( JEPG, MPEG, XML ,SMIL, SVG 등) 모바일 멀..

자연세계를 이해하기 위하여

※ 수학의 정의 수학은 토지측량, 천문관찰의 도구로 활용되고, 그리스(BC400) 에서 유클리드 기하학이 유명해서 신전에 기하학을 모르면 들어오지 말라고 할정도 였다. 그 뒤 17C 뉴턴,라이프니츠에의해 미적분학이 발전 했다. 18C 수학자 스위스의 오일러는 논문 500편을 썼다. 오일러가 한붓그리기로 추상화해서 다리 한번만 건너면서 모두 건너는 것이 불가능함을 증명했다. 홀수점의 개수가 0,2개 여야만 한다고 했다. 다리건너기 문제를 한붓그리기로 추상화하고 , 그 다음에 홀수점의 갯수가 0,2개 여야만 한붓그리기가 가능함을 증명했다. 이것은 그래프와 네트워크에 응용되었다. 지구 둘레를 구하기 위해, 지구의 중심부의 7.2도를 추상화시켜 925km 정도 된다는 것을 문제화한 후, 이를 수학적 원리로 해결..

오픈소스 진영의 리눅스 소개 미국의 대학들(버클리,MIT,하버드)에 대한 끄적임

UNIX는 다중사용자, 다중작업을 지원하는 신뢰성 높은 운영체제이다. 리눅스는 UNIX의 무료 공개버전이다. C언어로 작성되고 시분할운영체제이다. [ 오픈소스와 라이선스] GPL 라이선스 가져가면 전체 소스 오픈해야한다. (독점소프트웨어와 같이 사용못한다.) LGPL은 주로 오픈소스 라이브러리에 적용됨, 소스코드의 공개범위는 다르게정의되어 (전체/파일/모듈 단위 등에 적용된다.) BSD, Apache, MIT라이선스는 배포시 소스코드의 비공개가 허용됨(Permissive 라이선스라고함) [리눅스 배포판] 리눅스커널은 1991년 처음 개발되었고, 1994년 커널1.05이고 최신안정버전은 6.4 주요 리눅스 배포판의 종류는 ※ Debian계열 ( GNU의 공식후원, 1994년 ) : Debian, Ubunt..

우아한테크코스 - 프로세스 스케줄링

(2) [10분 테코톡] 레오, 하디의 Process Scheduling - YouTube CPU는 어떤 기준으로 프로세스를 선택하나? CPU Scheduling - 비선점 알고리즘(FCFS), 선점알고리즘( ) SJF - 대기 큐에 있는 프로세스 중에서 처리 시간이 가장 짧은 프로세스부터 cpu에 할당하는 비선점형 scheduling기법 HRN(highest response ration next) - 대기시간과 처리시간을 고려하여 cpu를 할당하는 비선점형 scheduling 기법

니콜라스- 개발자라면 무조건 알고리즘 공부를 해야할까?

(1) 개발자라면 "무조건" 알고리즘 공부를 해야할까? - YouTube 1. 초보자일때는 불필요 할 수 있다. 2. 코드 최적화를 위해 어느정도 중간이상 개발자에게 필요하다.~! 알고리즘은 프로세스 최적화 문제 데이터구조는 데이터를 정리하고 이는 속도에 영향을 준다. linkedlist, list 배열이 데이터구조중에 제일 쉽다~! (1) 어? 재밌네? 정렬 알고리즘, 한방에 이해하기! - YouTube 정렬알고리즘 버블 vs 선택 vs 삽입 버블정렬 -> 이해하기 쉬우나 좋은 알고리즘은 아님 (왼쪽이 크면 스왑 , 오른쪽이 크면 넘어감) n*(n-1) 선택정렬 (n-1) 이 나올수 있지만 최악의 경우 아래와 같이 나올수 있음 => 정렬되지 않은 배열에서 작은 아이템을 찾아 앞으로 보낸다. 삽입정렬은 ..