본문 바로가기

전체 글184

파이썬(python) 강의 2장 - 변수 - 파이썬(python) 강의 2장- 변수 - 변수는 데이터를 담는 그릇과 같다고 비유할 수 있다. 변수라는 그릇을 이해하기 위해 우선 메모리 구조에 대해 살펴보자. 메모리의 구조는 비트 단위로 나뉘어져 있고 8비트 단위로 하나의 주소를 갖는 구조이다. 비트는 0과 1로만 이루어진 가장 작은 단위이다. 이러한 주소 형태에 우리가 정하는 변수 이름이 주소의 이름으로 지정되며 그 주소 안에 우리가 원하는 데이터 값이 들어가게 되는 것이다. 만약 메모리에 어떠한 주소 번지에 num으로 변수의 이름을 선정해놓으면 우리는 이 주소를 num이라는 이름을 통해 접근할 수 있게 된다. 또한 변수는 얼마만큼의 메모리 크기를 차지하는지에 대한 정보도 갖고 있다. 그릇도 밥그릇, 국그릇, 반찬그릇으로 나눌 수 있듯이 변수 또한.. 2017. 4. 17.
컴퓨터 네트워크 11장 - 오류 제어 및 흐름 제어 - 컴퓨터 네트워크 11장- 오류 제어 및 흐름 제어 - 오류 제어는 호스트 간의 데이터 전송이 일어날 때 데이터의 오류에 관련된 제어를 하는 역할을 한다. 데이터 링크 계층 프로토콜에서 주로 기능을 수행한다. 다음의 질문들을 통해 오류 제어에 대해 알아보자. ∙송신 측은 수신 측이 정상적으로 수신하였다는 사실을 어떻게 알 수 있겠는가? 이는 응답 메커니즘에 의해 알 수 있다. 긍정 응답을 할 경우 제대로 받았다는 것을 알 수 있다. ∙전송한 데이터가 중간에 손실된 경우는 어떻게 알 수 있는가? 이와 같은 경우에 수신 측에서 이를 판단할 방법은 없다. 그렇다면 송신 측에서 이를 판단해야한다. 송신 측에서 타이머를 설정하여 주어진 시간 동안에 긍정 응답이 오지 않을 경우 손실로 판단하는 것이다. 긍정 응답 회.. 2017. 4. 17.
컴퓨터 네트워크 10장 - 데이터 전송 방식 - 컴퓨터 네트워크 10장- 데이터 전송 방식 - 네트워크는 독립적으로 실행되는 호스트들을 연결해 하나의 통신망을 구성하는 것이다. 이로 인해 크게 3가지의 효과를 얻을 수 있다. 자원 공유, 병렬 처리에 의한 성능 향상, 중복 저장으로 인한 신뢰성 향상으로 될 수 있다. 네트워크를 이용하면 컴퓨터 하드웨어 외에 물리적, 논리적 정보 공유를 할 수 있고 시스템이 수행할 작업을 분할해 동시에 처리함으로써 처리 시간을 단축시키는 효과를 얻을 수 있다. 또한 유용한 정보를 여러 시스템에 중복 저장하여 하드디스크 손상과 같은 데이터 손실에 대한 복구가 가능하다. 한 시스템에서 다른 시스템으로 데이터를 보내는 과정을 데이터 전달이라고 한다. 데이터 전달에는 두 가지 과정이 존재하는데 교환과 전송이다. 교환은 둘 이상.. 2017. 4. 17.
운영체제 6장 - 프로세스 관리(3) : 쓰레드 및 프로세스 동기화 - 운영체제 6장- 프로세스 관리(3) : 쓰레드 및 프로세스 동기화 - 쓰레드라고 하는 것은 프로그램 내부에 흐르는 맥, 흐름이라고 한다. 우리가 상위 언어 예를 들어 자바나 C로 프로그램을 작성할 때 메인 함수를 통해 각종 표현식이 돌아 프로그램이 끝이 나는 것을 “맥이 흐른다.”라고 한다. 기본적으로는 한 프로그램에 맥이 하나 흐른다. 하지만 한 프로그램에 2개 이상의 맥이 흐를 수 있는데 이것을 다중 쓰레드라고 한다. 하지만 다중 쓰레드는 실제로 맥이 빠른 시간 간격으로 스위칭을 진행하는 것이 여러 가지 맥이 동시에 진행되는 것이 아니다. 시간 간격이 매우 짧아 동시에 맥이 흐르는 것처럼 보이는 것이다. 현재 대부분의 프로그램은 다중 쓰레드이다. 예를 들어 웹 브라우저를 들면 화면을 출력을 시켜주는 .. 2017. 4. 17.
C++ 강의 5장 - 함수 오버로딩 및 디폴트 값 - C++ 강의 5장- 함수 오버로딩 및 디폴트 값 - 처음부터 예시를 가지고 시작을 해보자. 앞 장에서 사용했던 Add()라는 함수를 계속해서 사용할 것이다. 우리는 두 개의 파라미터를 넣어서 더한 값을 출력하는 Add()라는 함수를 정의했었다. 그리고 우리는 하나의 파라미터를 넣을 경우 그 값에 1을 더한 값을 출력하는 함수를 만들고 싶다. 그리고 우리는 이 함수의 이름도 Add()를 사용하고 싶다. 실제로 C라는 프로그래밍 언어를 사용할 경우 같은 이름의 함수를 사용하는 것을 허용하지 않는다. 바로 에러 메시지를 보내준다.하지만 C++에서는 함수의 이름이 같아도 받는 인자 즉 파라미터의 개수가 다르면 다름을 인정해준다. 융통성이 있는 친구이다. 함수호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의.. 2017. 4. 16.
IT 브랜드 가치 순위 : 1위~5위 (2017년 기준) IT 브랜드 가치 순위 : 1위~5위 (2017년 기준) 브랜드파이낸스를 토대로 세계에서 가장 가치 있는 기업이 선정되었다. 그 중 1위에서 5위까지 선정된 자료이다. 브랜드의 가치는 수치화되는데 그 값은 파워지수(BSI), 충성도, 이름값(예상 매출)을 곱한 값으로 표현된다. 1. 구글이번 브랜드파이낸스 결과에 가장 큰 관심사는 바로 구글과 애플의 싸움이었다. 계속해서 애플이 1위를 유지하고 있었는데 2017년 기준으로 구글이 애플이 꺾고 1위를 차지하였다. 브랜드 가치가 우리나라 돈으로 환산하면 약 125조원에 달한다. 전년도 대비 24%이상의 성장을 하였다. 특히 광고 분야에서 엄청난 매출 성장을 이루었다. 구글은 유튜브, 안드로이드, 크롬 등과 같이 다양한 하위 브랜드들을 가지고 있어 안정적인 매.. 2017. 4. 16.
운영체제 5장 - 프로세스 관리(2) : 스케줄링 - 운영체제 5장- 프로세스 관리(2) : 스케줄링 - 앞장에서 설명한 스케줄링의 종류가 3가지가 있었다. 하지만 그 중 CPU 스케줄링이 가장 중요하다고 할 수 있다. 이 점은 컴퓨터의 성능과 바로 직결되는 문제를 안고 있기 때문이다. 따라서 CPU 스케줄링이 어떻게 진행되는지에 대해 학습해 보고자 한다. CPU 스케줄링은 크게 두 가지의 특징으로 나눌 수 있다.선점하는 방식(Preemptive)과 비선점하는 방식(non-preemptive)이다. 선점하는 방식은 하나의 프로세스가 CPU를 할당받아 작업을 수행하고 있는 도중에 다른 프로세스가 새치기를 할 수 있는 방식을 말한다. 따라서 선점하는 방식을 사용하면 언제든지 CPU가 다른 프로세스에 할당될 수 있다. 하지만 비선점하는 방식을 사용하면 하나의 프.. 2017. 4. 16.
운영체제 4장 - 프로세스 관리(1) - 운영체제 4장- 프로세스 관리(1) - 운영체제가 하는 역할은 매우 많다. 하지만 프로세스 관리는 그 역할 중 가장 중요한 역할이라고 할 수 있다. 그러면 프로세스에 대해 먼저 알아보자. 프로세스는 실행 중인 프로그램이다. 하드디스크에 있는 프로그램이 메인 메모리로 적재되어 있을 때 프로세스라고 부른다. 프로세스는 다섯 가지의 상태 중 하나의 상태에 존재한다. 메인 메모리에 올라오는 상태인 new, CPU 할당을 받는 것을 기다리는 ready, CPU가 할당되어 작업을 수행 중인 running, I/O와 같은 CPU 외의 할당을 받아 기다리는 waiting, 이러한 모든 작업이 끝날 경우 terminated라는 상태에 존재하게 된다. 이러한 상태를 나타내기 위해서는 프로세스에 대한 모든 정보가 저장되어 .. 2017. 4. 16.
운영체제 3장 - 이중 모드 및 하드웨어 보호 - 운영체제 3장- 이중 모드 및 하드웨어 보호 - 컴퓨터를 사용하는 환경은 다양하다. 특정 사람이 특정 컴퓨터만 사용하는 경우도 있겠지만 한 컴퓨터를 여러 사람이 동시에 사용하거나 한 사람이 여러 개의 프로그램을 동시에 실행하는 경우 한 사람의 고의 또는 실수로 다른 프로그램 전체가 영향을 받을 수 있는 환경이 만들어진다. 예를 들면 많은 사용자들이 같은 컴퓨터를 사용하고 있는데 특정 사람의 stop(컴퓨터 강제 종료) 명령어 실행하는 프로그램을 갑자기 실행시키면 모든 사용자가 하던 작업이 종료되어 큰 영향을 끼칠 수 있다. 이런 문제가 발생하지 않기 위한 보호 장치가 바로 이중 모드이다. 이중 모드는 사용자 모드와 관리자 모드로 두 가지의 모드를 가지고 있어서 이중 모드이다. 사용자 모드는 단순한 사용자.. 2017. 4. 16.
랜섬웨어 랜섬웨어 랜섬웨어는 몸값을 의미하는 Ransom과 소프트웨어(Software)의 합성어로 사용자의 동의 없이 컴퓨터에 불법으로 설치되어 사용자의 파일을 인질로 잡아 금전적인 요구를 하는 악성 프로그램을 말한다. 시스템을 잠그거나 데이터를 암호화해 사용을 할 수 없게 만든다. 랜섬웨어는 2005년부터 본격적으로 알려지기 시작해, 2013년 들어 전 세계적으로 퍼져나갔다. 랜섬웨어의 공격을 받은 공공기관, 기업, 개인 PC 등이 매년 늘고 있는 추세이다. 또한 랜섬웨어는 꼭 컴퓨터에서만 발생하는 것이 아니라 모바일 환경에서도 발생할 수 있다. 한국에서는 2016년을 기점으로 대폭 성장하여 2017년 가장 조심해야할 바이러스로 꼽힌다. 랜섬웨어는 보안이 취약한 사이트, 가짜 이메일, 구글 애드센스, 그 외 광.. 2017. 4. 16.