본문 바로가기

데이터9

파이썬(python) 강의 10장 - 객체와 변수(데이터) - 파이썬(python) 강의 10장- 객체와 변수(데이터) - 파이썬의 class를 사용하여 객체를 쓰게 되면 유용한 듯 보이지만 하나의 큰 문제를 발견할 수 있다. 그건 바로 하나의 class로 선언된 객체의 변수를 밖에서 마음껏 바꿀 수 있다는 것이다. 이게 왜 문제가 되는지 궁금할 수도 있다. 그래서 이에 대해 설명을 하고 이를 방지할 수 있는 방법을 설명하고자 한다. 변수는 매우 중요한 자료이다. 모듈을 사용하지 않고 class를 이용하여 객체를 만드는 이유 중 하나가 함수는 같은데 변수를 다양하게 사용하기 위해서 이다. 그러므로 변수는 객체를 구성하는 종류에서 매우 중요하다고 할 수 있다. 그런데 우리가 지정해주지 않았는데도 class 외부 즉 객체가 지정해주는 값 이외에 다른 임의의 값이 들어오.. 2017. 5. 29.
데이터 마이닝2 - 데이터 마이닝 분석 절차 - 데이터 마이닝2- 데이터 마이닝 분석 절차 - 데이터 마이닝 분석 철차에 대해서 알아보도록 하자. 데이터 마이닝 분석하기 위해서 먼저 적용 업무에 대한 정의가 필요하다. 어떠한 업무에 사용하기 위해서 데이터 마이닝을 사용하는지에 대해 먼저 판단을 만들어야 한다. 그 후 어떤 데이터를 사용할지를 선택해야한다. 원천 데이터를 선택하는 것이다. 데이터를 선택한 후 이 데이터로부터 우리가 직접적으로 사용하고자 하는 데이터를 끄집어 내야한다. 데이터 클리닝, 코딩, Enrichment 등을 통해 원천 데이터로부터 우리가 직접 사용하고자 하는 데이터를 가지고 나와야한다. 이 후 데이터 마이닝 툴을 선정한다. 데이터 마이닝을 하는 방법에는 여러 가지 방법이 있다고 했다. 이러한 통계적 다양한 방법들 중 우리 데이터에.. 2017. 5. 2.
버퍼 오버플로 & 포맷 스트링 공격 버퍼 오버플로 & 포맷 스트링 공격 버퍼 오버플로는 프로그램이 실행될 때 입력받는 값이 버퍼를 가득 채우다 못해 넘쳐흘러 버퍼 이후의 공간을 침범하는 현상을 말한다. 메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점이다. 데이터의 길이에 대한 불명확한 정의를 악용한 덮어쓰기로 인해 발생한다. 컴퓨터 보안과 프로그래밍에서 이는 프로세스가 데이터를 버퍼에 저장할 때 프로그래머가 지정한 곳 바깥에 저장하여 벗어난 데이터는 인접 메모리를 덮어 쓰게 되는데 손상 받은 데이터가 중요한 데이터일 경우 프로그램에 큰 영향을 미치게 된다. 버퍼 오버플로를 일으키는 기본적인 예시는 문자열에 할당된 메모리 용량보다 더 큰 공간을 할당했을 때이다. 예를 들면 8바이트 문자열을 넣을 수 있는 버퍼가 존재.. 2017. 4. 29.
운영체제 14장 - 메모리 관리(1) : 주기억장치(메인 메모리) 개요 - 운영체제 14장- 메모리 관리(1) : 주기억장치(메인 메모리) 개요 - 운영체제의 역할 중에 제일 큰 비중을 차지하는 부분이 프로세스 관리와 메모리 관리이다. 앞의 장들로 프로세스 관리에 대해서 배웠다. 이번 장부터는 메모리 관리에 대해서 학습을 할 것이다. 지금 메모리를 생각하면 반도체인 집적회로 메모리를 생각하게 된다. SRAM은 캐시 메모리에 사용되고 DRAM이 메인 메모리에 사용이 된다. 하지만 이전의 메모리는 한 칩 안에 넣는 것이 아니라 개별적으로 메모리를 가지고 있어서 하나의 메모리에 많은 용량을 넣을 수 없었다. 이러한 형태가 트랜지스터 메모리의 형태이다. 이보다 전의 형태는 진공관 메모리 형태로 크기는 크지만 데이터를 넣을 용량은 더 적은 메모리의 형태이다. 70년대에서는 8bit PC.. 2017. 4. 28.
컴퓨터 네트워크 16장 - 데이터 링크 계층 프로토콜의 기초 - 컴퓨터 네트워크 16장- 데이터 링크 계층 프로토콜의 기초 - 데이터 링크 계층에서 두 호스트가 통신하려면 일대일 형식의 점대점방식으로 연결해야한다. 이러한 형태는 직접 연결된 형태이므로 호스트 주소가 필요가 없다. 하지만 하나의 호스트가 다수의 호스트와 연결된 비대칭 형태인 멀티 드롭의 형태를 가질 경우 호스트 주소의 개념이 필요하게 된다. 여러 수신 호스트 중에서 프레임의 목적지 호스트를 지칭해줄 수 있는 도구가 필요하기 때문이다. 데이터 링크 계층에서 사용하는 데이터의 단위는 프레임이다. 프레임에는 3가지의 종류가 존재한다. 우선 정보 프레임(I 프레임 : Information Frame)은 상위 계층이 전송 요구한 데이터를 송신하는 용도로 사용된다. 순서번호, 송수신 호스트 정보 등이 포함되어 있.. 2017. 4. 22.
운영체제 11장 - 프로세스 관리(8) : 교착상태(Deadlock) - 운영체제 11장- 프로세스 관리(8) : 교착상태(Deadlock) - 프로세스는 실행을 위해 여러 자원을 필요로 한다. CPU, 메모리, 파일 등등 여러 자원을 사용하여 프로세스가 실행된다. 그런데 어떤 자원은 갖고 있으나 다른 자원을 갖지 못할 경우 대기 상태에 들어가서 기다려야한다. 자원은 한정되어 있는데 여러 프로세스가 같이 동작하는 상황이여서 이러한 상황이 발생하게 된다. 그러므로 운영체제는 이러한 자원을 프로세스들에게 잘 할당을 해주어야한다. 만약 잘 할당을 해주지 못하면 앞의 식사하는 철학자의 문제와 같이 모든 프로세스가 자원을 가지려고 대기하는 교착상태에 빠질 수 있다. 교착상태가 일어나는 필요조건은 4가지가 존재한다. 첫 번째는 상호배타(Mutual exclusion)이다. 상호배타는 동.. 2017. 4. 22.
운영체제 10장 - 프로세스 관리(7) : 읽기-쓰기 문제, 식사하는 철학자 문제 - 운영체제 10장- 프로세스 관리(7) : 읽기-쓰기 문제, 식사하는 철학자 문제 - 읽기 쓰기 문제는 공통 데이터베이스에 접근하는 문제를 다룬다. 서버에 데이터베이스가 존재하는데 다른 로컬 컴퓨터들이 데이터에 접근을 할 수 있다. 접근하는 사용자 중에는 Reader와 Writer가 존재한다. Reader는 데이터를 읽기만 하는 사용자이고 Writer는 데이터를 읽고 수정할 수 있는 사용자를 의미한다. 데이터베이스를 사용자들이 모두 공통 사용하므로 임계구역이라고 생각할 수 있다. 우리는 앞의 임계구역 문제를 해결하기 위해 동기화를 사용하였는데 상호배타를 만족시키기 만들어 한 번에 한 개의 프로세스만 접근이 가능하게 만들었다. 임계구역에 데이터를 접근하는 사용자에 접근 권한을 두어 동시에 접근을 할 수 없게.. 2017. 4. 22.
사물인터넷(IoT) 사물인터넷(IoT) 사물인터넷(IoT)은 Internet of Things의 약자로 사물에 센서를 부착해 실시간으로 데이터를 인터넷으로 주고받는 기술이나 환경을 일컫는다. 여기에서 주고받는다는 개념에 인간의 조작 없이 라는 부분이 포함되어 있다. 인간과 사물, 서비스 세 가지 분산된 환경 요소에 대해 인간의 명시적 개입 없이 상호 협력적으로 센싱, 네트워킹, 정보 처리 등 지능적 관계를 형성하는 사물 공간 연결망이다. 이 용어는 1999년 MIT의 오토아이디센터의 케빈 애시턴이 RFID와 센서 등을 활용하여 사물에 탑재된 인터넷이 발달할 것이라고 예측한 데서 비롯되었다고 할 수 있다. 사물인터넷 개념은 흔히 M2M으로 Machine to Machine이라고 불리기도 하지만 M2M과 IoT 개념은 살짝 다.. 2017. 4. 21.
컴퓨터 네트워크 15장 - 토큰 버스 및 토큰 링 - 컴퓨터 네트워크 15장- 토큰 버스 및 토큰 링 - 토큰 버스LLC 계층에서 내려온 LLC 프레임을 물리 계층을 통해 수신 호스트에 전달하려면 토큰 버스 프로토콜에서 정의한 프레임에 맞게 토큰 버스 프레임을 만들어야 한다. 토큰 버스의 프레임 구조는 MAC 헤더(토큰 버스 헤더)와 LLC 프레임(토큰 버스 데이터), MAC 트레일러(토큰 버스 트레일러)로 구성되어 있다. 토큰 버스 프레임 구조는 앞 장에서 소개한 CSMA/CD 프레임 구조와 거의 비슷하나 데이터 프레임과 토큰 프레임을 구분하기 위한 프레임 제어가 포함되어 있다. MAC 헤더를 구성하는 요소로는 수신 호스트가 송신 호스트의 클록 동기를 맞추기 위한 용도인 프리엠블(Preamble)이 먼저 나온다. 다음으로는 프레임의 시작 위치를 구분시켜주.. 2017. 4. 20.