본문 바로가기

Computer Science

(46)
[Lecture 0 - II] Java Equals() & Generics #equals() in the Class Object Object 클래스는 두 개체가 동일한 개체인 경우에만 true를 반환하는 public equals() 메서드를 구현한다 x.equals(y) == true iff x and y are (references to) the same object 일부 하위 클래스의 경우, 특히 equality comparison의 개념이 실질적으로 의미가 없는 유형에 적합하다 #Identity vs Equality identity: 동일한 것의 관계. x와 y가 동일한 객체인 경우에만 x는 y와 동일하다. Java에서는 == 연산자에 의해 테스트된다. equality: 동일한 값를 갖는 관계 x는 x와 y가 어떤 유용한 의미에서 동등한 함량을 갖는 경우에만 y와 같다. ..
[Lecture 0 - I] Java File I/O #File Class 파일 및 디렉터리 경로 이름의 추상 표현 File(String pathname) 유용한 method들: boolean exists() boolean createNewFile() boolean delete() long length() 텍스트 파일의 데이터 읽기/쓰기에 유용한 클래스와 방법을 알아보자. 텍스트 파일은 모든 데이터 값이 일련의 문자(ASCII 또는 유니코드와 같은 일반적인 체계에서 인코딩됨)로 표현되는 파일이다. 이진 파일은 모든 데이터 값이 기계 메모리에서 이를 나타내는 데 사용되는 동일한 비트 패턴으로 표현되는 파일이다. #FileWriter 클래스 텍스트 파일에 순차적으로 쓰기 위해서는 일반적으로 FileWriter 클래스로 충분하다 FileWriter(String ..
[Lecture 24] Virtualization #"가상 시스템"의 정의 하드웨어가 아닌 소프트웨어로 구현된 시스템 컴퓨터처럼 작동하는 독립적인 환경 컴퓨팅 디바이스(명령어 세트 등)에 대한 추상적인 사양 (언어 기반) 가상 시스템 명령 집합은 일반적으로 기존 아키텍처와 유사하지 않다 Java VM, .Net CLR 등등 virtual machine monitors (VMM) 실제 아키텍처에서 완전히 또는 부분적으로 가져온 명령 집합 #Java Bytecode 예제 Compiled from "h.java" public class h { public h(); Code: 0: aload_0 1: invokespecial #8 // Method java/lang/Object."":()V 4: return public static void main(java...
[Lecture 23] 클라우드, VM과 컨테이너 #클라우드 컴퓨팅 클라우드 컴퓨팅이란 서버, 스토리지 등의 IT 리소스를 인터넷을 통해 실시간 제공하고 사용한 만큼 비용을 지불하는 방식의 컴퓨팅을 말한다. 쉽게 말해 정보처리를 자신의 컴퓨터가 아닌 인터넷으로 연결된 다른 컴퓨터로 처리하는 기술을 말한다. 빅데이터를 처리하기 위해서는 다수의 서버를 통한 분산처리가 필수적이다. 분산처리는 클라우드의 핵심 기술이므로 빅데이터와 클라우드는 밀접한 관계를 맺고 있다. 빅데이터 선도 기업인 구글과 아마존이 클라우드 서비스를 주도하고 있는 이유도 여기에 있다. “X as a service” 예: SaaS (software as a service) Infrastructure as a Service 사용자가 커널에서 애플리케이션에 이르기까지 소프트웨어를 관리 클라우드..
[Lecture 20] TCP/IP 소켓 프로그래밍 #개요이번 포스트에서는 다음과 같은 네트워크 개념들을 알아보자IPv4/IPv6를 비롯한 TCP/IP전송 계층 프로토콜: TCP와 UDP포트 사용TCP/UDP에서의 디멀티플렉싱 / Demultiplexing (역다중화)IPv4 addressing(주소 지정) & 라우팅subnet / 서브넷(부분망) 및 CIDR 포함프로토콜 독립성BSD 소켓 APIDNS 네임 확인을 위한 유틸리티 함수 포함TCP/IPhttps://terms.naver.com/entry.naver?docId=1168072&ref=y&cid=40942&categoryId=32851#Transport and Network Layer*Transport Layer (전송 계층) 프로토콜: TCP (Transmission Control Protoco..
[Lecture 19] Networking / 네트워킹 #PART I: The Internet 인터넷이란 전 세계의 컴퓨터가 서로 연결되어 정보를 교환할 수 있는, 하나의 거대한 컴퓨터 통신망을 말한다. 수십억 개의 연결된 컴퓨팅 장치 hosts = end systems 인터넷의 "엣지"에서 네트워크 앱 실행 패킷 교환 / Packet switches forward packet / 전달 패킷(데이터 모음) 라우터, 스위치 통신 회선 / Communication links 광섬유, 구리, 라디오, 위성으로 구성됨 전송 속도: 대역폭 네트워크 장치, 라우터, 링크 모음: 보통 어느 한 조직에서 관리 인터넷: 네트워크의 네트워크 상호 연결된 ISP(Internet Service Provider)들 프로토콜은 어디에나 존재한다 메시지 보내기, 받기 제어 예: HTT..
[Lecture 18] Virtual Memory / 가상 메모리: Principles and Mechanisms #컴퓨터 구조 리뷰 Virtual memory/가상 메모리에 대해 보기 앞서 기본 컴퓨터 구조 개념을 다시 한번 살펴보자. Virtual address / 가상 주소: 링커, printf("%p\n", ptr) 등등과 같이 사용자 프로그램에서 사용하는 주소 범위: 0~2^ addresswidth Physical address / 물리 주소 내부적으로 메모리 주소를 지정하는 데 사용되는 주소. 사용자에게 보이지 않음 범위: 0~X (여기서 X는 컴퓨터의 메모리이다) Page / 페이지 Virtual page: 인접한 가상 주소 범위 Physical page (frame): 인접한 물리적 주소 범위 MMU (Memory management unit) 페이지 테이블에서 찾은 정보를 기반으로 가상 페이지를 물리..
[Lecture 19] Virtual Memory: Hardware and Performance #Physical Memory Addressing 오늘날 자동차, 엘리베이터 및 디지털 사진 프레임과 같은 장치에 내장된 마이크로 컨트롤러와 같은 "간단한" 시스템에 사용된다 #단점 초기 시스템들에서는 Physical Memory Addressing을 사용했다 각 프로그램은 DRAM에서 전체 메모리 공간을 유지했었다 한 번에 "활성"할 수 있는 프로그램의 수를 제한했다 프로그램 메모리 공간의 절대 크기를 DRAM 크기로 제한했다 주소 보호에 대한 자연스러운 지원이 제공되지 않았음 프로그램이 실행되는 모든 시간 동안 그 프로그램은 instruction의 작은 부분에만 접근할 가능성이 클 것이다 그 프로그램은 데이터의 작은 부분에만 액세스할 가능성이 클 것이다 #Virtual Memory / 가상 메모리 가..