본문 바로가기

전체 글

(291)
[코틀린] 자바&코틀린 라이브러리 검색 코틀린에 사용할 라이브러리를 다운로드하여야 하는데, 자바나 코틀린이나 사용해 본 적이 거의 없어서 삽질을 했다. npm 사이트처럼 라이브러리 정보가 모여 있는 사이트가 있는지 찾다가 대략 2개 정도의 사이트를 알게 되었다. https://repo1.maven.org/maven2/org/ Central Repository: org repo1.maven.org 파일이 저장되어 있는 저장소 그 자체로 보인다. 참고로 org 폴더 이전으로 나가면 대부분의 파일이 2005년을 기점으로 업데이트가 멈춰 있다. 2005년을 기점으로 org 폴더에만 업데이트 하기로 한게 아닐까 생각된다. spring 등을 ctrl + f로 검색하면 jar 파일이나 POM 같은 것을 얻을 수 있다. 근데 이렇게 검색하는 것은 리눅스에서..
[컴퓨터구조] I/O 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. External Devices 외부 기기는 외부 환경과 컴퓨터 사이에서 데이터를 전달할 때 사용되며, I/O 모듈의 링크를 통해 컴퓨터와 연결된다. 링크는 control, status, data을 외부 기기와 I/O 모듈 사이에서 교환하는 데 사용된다. Control: 디바이스가 수행할 기능. INPUT, READ, OUTPUT, WRITE 등 Status: 디바이스의 상태를 나타내는 정보. READY, NOT-READY 등 Data: I/O 모듈과 교환하는 비트 모음 이러한 외부 기기의 종류는 크게 3가지로 나눌 수 있다. Human Readable: 컴퓨터를 사용하는 유저와 소통하는데 사용. 프린터, 모니터 등 Machi..
[컴퓨터구조] External Memory(2) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Disk Array Disk Array는 가격이 저렴한 디스크 여러개를 하나의 큰 논리적 디스크처럼 사용하는 방식이다. 데이터는 여러개의 디스크에 분산되어 저장되며, 각 디스크는 독립적으로 I/O 작업이 가능하므로 전반적인 처리 속도가 빨라지는 장점이 존재한다. 위 표에 따르면 Disk Array 방식을 이용하는 경우 차지하는 공간, 파워, 전송율, 초당 처리율 및 가격 면에서 하나의 성능이 뛰어난 디스크를 사용하는 것에 비해 더 좋다는 것을 알 수 있다. 그러나 단순히 데이터를 분산하여 저장하기만 하는 방식은 하나의 디스크만 망가지더라도 연관된 모든 디스크가 영향을 받아 전체 데이터는 사용할 수 없게 되므로 위 그림 기준 ..
SSD 구매시 고려할 점 이번 학기에는 컴퓨터 구조라는 과목을 듣고 있다. 자연스럽게 컴퓨터 부품에 관심이 생기게 되었는데, 많은 부품 중 현재 내 노트북에서 유일하게 비어 있는 SSD 슬롯에 눈이 돌아가서 하나 구매하기로 했다. 그런데, SSD 하나를 구매하려고 해도 생각보다 옵션이 많아서 대충 정리해보기로 했다. SSD 구매 시 고려할만한 점은 대략 다음과 같았다. 메모리 타입(SLC, MLC, TLC ...): 유저 수준에서 고려할 사항은 아니고, 가능한 한 용량이 큰걸 사자. 인터페이스(SATA, PCIe_): PCIe 버전이 속도가 빠르다. 어느 인터페이스에 SSD를 연결할지 알고 사자. DRAM 탑재 여부: DRAM이 있는 경우 속도가 빠를 가능성이 높다. 메모리 타입 SSD는 플래시 메모리에 기반을 두고 있다. 플래..
[컴퓨터구조] External Memory(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Magnetic Disk 디스크는 substrate라고 불리는 자성이 없는 판 위에 자성을 가진 물질을 코팅한 원형 플래터를 의미한다. 흔히 우리가 HDD라고 부르는 것이 마그네틱 디스크이며, 과거에는 알루미늄이나 알루미늄 합금 판을 이용했으나 최근에는 substrate로 유리를 사용한다고 한다. 유리로 substrate을 구성하는 경우의 장점 자화 물질을 판에 골고루 입혀서 디스크 신뢰성이 높아진다. 표면에 발생하는 결함을 줄여 R/W 에러 감소 헤더의 높이를 더 낮출 수 있어서 더 많은 데이터 삽입 가능 -> 가격 감소 간단한 동작 방식 하드 디스크는 자성을 이용하여 데이터를 읽고 쓴다. 전자기 유도 현상에 의해 자기장이..
[컴퓨터구조] Internal Memory(2) 현재 글은 이 글과 이어진다. Error Correction 메모리와 같은 반도체 장치들은 에러가 발생할 가능성을 가진다. 전송 과정에서 전자가 손실되는 경우 해당 에러를 수정하거나 최소한 에러가 발생했다는 사실을 알려야만 데이터를 유효한 상태로 유지할 수 있다. (하드웨어 공정에서 불순물로 결함이 발생하는 경우 최소한 어디서 결함이 발생하는지를 알아야 해당 영역의 메모리를 우회, 다른 영역에 연결하여 메모리 폐기율을 낮출 수 있을 것이다.) 에러는 2가지로 나뉜다. Hardware Failure: 영구적으로 발생하는 물리적 결함으로, 과전류 등 사용 환경에서의 문제, 제작 공정에서 발생한 결함 및 여러 번의 WRITE 동작에 의한 마모에 의해 발생할 수 있다. 메모리 셀이 특정한 값으로 고정되고 바뀌지..
[컴퓨터구조] Internal Memory(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. 셀 우리가 메모리라고 부르는 "반도체" 기반 메모리들의 기본 단위는 셀이다. 셀은 1비트 데이터를 담는 가장 작은 저장 공간으로, 메모리의 종류와 공정에 따라 실제 구현은 다를 수 있으나 공통적인 특징이 있다. 0과 1로 표현될 수 있는 안정적인 상태를 (물리적으로) 가진다. 상태를 설정하기 위해 최소 1번 이상 내용을 쓸 수 있다. 현재 상태를 읽을 수 있다. 메모리의 특성에 따라 다를 수 있다고는 해도 각 셀은 이진수를 표현하기 때문에 최소한 이진수의 구성 요소인 0과 1을 구분하기 위한 물리적 상태가 요구된다. 각 상태의 특징이 전혀 없다면 0과 1을 구분하는 것은 불가능할 것이다. 메모리에 쓰는 동작은 메모리의 특성에..
[Kotlin] 상속 코틀린의 open, final 키워드는 클래스 상속 및 메서드/프로퍼티 오버라이딩을 결정하는 데 사용된다. open : 상속 / 오버라이딩 가능 final : 상속 / 오버라이딩 불가 클래스와 프로퍼티에 어떤 키워드도 설정하지 않는 경우 기본 값은 public final 로, 외부에 개방되지만 상속 및 오버라이딩은 불가능한 상태가 된다. 보통 프로그래밍 언어들은 기본적으로 상속을 허용하는데, 코틀린은 기본값으로 상속을 허용하지 않는다는 점이 특징적이다. Any class 코틀린의 모든 클래스는 Any 클래스를 조상으로 가진다. C#이나 Java의 Object 클래스와 매우 유사하다. https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/ Any - Kotl..