분류 전체보기 94

[시스템 프로그래밍] 파일 정보 검색(1) - inode 정보 검색

[시스템 프로그래밍] 파일 정보 검색(1) - inode 정보 검색 inode에는 파일에 관한 자세한 정보가 저장되어 있습니다. inode는 index-node의 줄임말로, 각 파일마다 고유한 inode값을 가지고 있으며, 파일 형식, 소유자, 그룹, 권한 모드 등 해당 파일에 대한 정보를 가지고 있습니다. 파일 시스템 내의 파일은 inode 값을 통해 식별이 가능합니다. 아래의 그림은 inode의 파일 모드에 관한 그림입니다. 총 16비트의 flag를 가지며, 각 비트에 해당하는 값은 아래와 같습니다. inode는 파일 모드 뿐 만 아니라, 링크 수, 소유자 ID, 그룹 ID, 파일 크기, 파일 주소, 마지막 접근, 마지막 수정, inode 수정 시간 등의 정보를 담고 있습니다. inode의 정보는 s..

[Design Pattern] 데코레이터 패턴 - Decorator Pattern

[Design Pattern] 데코레이터 패턴 - Decorator Pattern 이번 포스팅에서는 구조 패턴중 한 개인 데코레이터 패턴에 대해 알아보도록 하겠습니다. 다음의 교재를 참고했음을 미리 밝힙니다. 데코레이터 패턴은 다음과 같은 특징을 갖습니다. 기능을 계속해서 추가할 수 있는 패턴 기능을 실행중에 동적으로 변경, 확장할 수 있는 패턴 한 객체를 여러개의 데코레이터로 장식할 수 있다. 객체를 언제든지 감쌀 수 있기 때문에 실행중에 필요한 데코레이터를 마음대로 적용할 수 있다. 데코레이터 패턴의 Class diagram은 다음과 같습니다. 위의 Class diagram을 기반으로 Coffee house의 예시로 설명하겠습니다. 우선, 초창기의 Coffee house의 주문 시스템 클래스가 다음과..

[시스템 프로그래밍] Low-level File IO(3) - File access methods

[시스템 프로그래밍] Low-level File IO(3) - File access methods 파일 접근 방법에는 순차 접근(Sequential access)와 직접 접근(Directed access)가 있습니다. 순차접근은 fgetc() 와 같은 함수를 사용하여 File을 bytes 단위로 순서대로 접근하는 방법이고, 직접 접근은 lseek(), seek()와 같은 함수를 통해 원하는 위치로 직접 접근하는 방법입니다. 이번 포스팅에서는 직접 접근에 대해 알아보도록 하겠습니다. 1. $lseek()$ $ man -s 2 lseek lseek(int fd, off_t offset, int whence); fd(file descriptor) : 대상 file descriptor offset : 이동시킬 ..

[Design Pattern] 옵저버 패턴 - Python

[Design Pattern] 옵저버 패턴 - Python 옵저버 패턴은 가장 단순한 행위 패턴입니다. 행위 패턴은 이름 그대로 객체의 역할에 초점을 두고, 더 큰 기능을 구현하기 위한 객체 간의 상호작용을 중요시합니다. 객체끼리 상호작용을 하지만 느슨하게 결합되어 있습니다. (loose coupling) 옵저버 패턴에서 객체(Subject)는 자식(Observer)의 목록을 저장하며 Subject가 Observer에 정의된 메소드를 호줄할 때마다 옵저버에 알림을 줍니다. 유튜브 구독 + 알림설정을 예시로 들어보겠습니다. 유튜브를 구독과 알림설정을 하게 되면 유튜버가 영상을 게시했을 때 알림설정을 한 모든 구독자에게 새 게시물 알림이 전송됩니다. 여기에서 유튜브가 객체(Subject)에 해당되고, 구독자..

[시스템 프로그래밍] Low-level File IO(2) - Read, Write

[시스템 프로그래밍] Low-level File IO(2) - Read, Write 이전 포스팅에서 File Open and Close와 그에 필요한 Parameters를 알아보았습니다. 이번 포스팅에서는 파일 읽고 쓰기에 대해 작성하겠습니다. 1. 파일 읽기 $ man -s 2 read 파일 읽기와 관련된 함수인 read 입니다. 파라미터로는 fildes, *buf, nbyte가 있습니다. fildes : file descriptor, 파일을 생성할 때 할당되는 file descriptor 입니다. 어떤 파일인지 알기 위한 인자(File ID)라고 생각하셔도 괜찮을 것으로 보입니다. buf : buffer, 읽은 내용을 저장할 buffer의 시작 주소입니다. nbyte : 파일에서 읽을 byte의 수 ..

[시스템 프로그래밍] Low-level File IO(1) - Open, Close

[시스템 프로그래밍] Low-level File IO(1) - Open, Close 파일 입출력 방법은 Low-Level File IO (System call)와 High-Level File IO (Buddered IO)로 나뉩니다. High-Level File IO는 File pointer를 사용하는 반면, Low-Level File IO는 File descriptor를 사용하여 입출력합니다. 이번 포스팅에서는 Low-Level File IO에 대해 알아보겠습니다. 1. File open and close 1-1 Open $ man -s 2 open man 명령어를 통해 open을 살펴보면 위와 같은 내용을 확인할 수 있습니다. 우선 "open"이라는 System call을 사용하기 위해서는 위에 보이..

[Design Pattern] Observer pattern, 옵저버 패턴 - JAVA

[Design Pattern] Observer pattern, 옵저버 패턴 옵저버 패턴은 객체의 상태 변화를 관찰하는 관찰자(옵저버)들의 목록을 객체에 등록하여 상태 변화가 있을 떄마다 메서드를 통해 목록의 옵저버에게 통지하는 디자인 패턴이다. - Wikipedia 옵저버 패턴은 객체의 상태변화를 감지하는 옵저버가 객체의 상태변화가 있을 때 그와 연관된 객체들에게 알림을 보내는 디자인 패턴으로 행위 패턴에 포함됩니다. Subject는 Observer를 등록, 해제와 변경이 있을 경우 Observer에게 알리는 기능을 합니다. Observer는 updating interface를 가지고 있으며 Subject에서 변화가 있을 때 알림을 수신합니다. 모든 observers는 Observer 인터페이스를 imp..

[ViT] Vision Transformer란?

[ViT] Vision Transformer란? CNN등장 이후, 지난 20여년간 Computer Vision 분야에서는 CNN기반 모델(AlexNet, VGGNet, ResNet, DenseNet, NasNet, EfficientNet 등)이 사용되었습니다. CNN기반 모델이 대부분의 SOTA성능을 갖던 중 작년, 2021년에 Vision Transformer가 등장하며 ImageNet기준 1, 2위를 차지하였습니다. 이번 포스팅에서는 Vision Transformer에 대해 다루어 보도록 하겠습니다. 1. Attention Intuition 다음과 같이 $1\times1$ Convolution Filter를 통과한 이미지 Feature가 있을 때, Attention을 통하여 어느 부분이 중요한지, 중..

[딥러닝]/[ViT] 2022.08.27
반응형