목록4학년/캡스톤 (Capstone) (14)
오래 못 할 짓 하지 않기

Redundant Array Of Inexpensive Disks📌 사용 목적 : 서버에 저장된 데이터가 손실되었을 때를 대비하여,Disk를 추가하는 방식을 통해 속도 / 안정성 / 가용성을 증대하는 방법 📌 장점1) 운용 가용성, 데이터 안정성2) 디스크 용량 증설 용이성3) 디스크 I/O 성능이 올라간다. 📌 종류1) Concatenate 방식2) Stripe 방식 (Proposed in our Project) Concatenate 여러 개의 Disk에 데이터를 적재하는 방식이다.그냥 물리적으로 두 개의 Disk를 사용한다. - 장점 : 1번 Disk에 공간이 모자란 경우에, 2번 Disk 공간을 사용할 수 있다. 공간이 2배. (당연함) - 단점 : 하나의 Disk에 ..

순회부호는 연집오류 검출및정정을 효율적으로 할 수 있다.> 부호기/복호기의 구현이 용이하고 오류 신드롬 계산을 쉽게 할 수 있기 때문에! 따라서 이는 BCH(Bose Chaudhuri), RS(Reed-Solomon) 부호를 이해하는 것에 도움이 된다. 1. 순회부호의 기본 정의 및 정리 (n,k) 선형 부호 C에있는 부호어를 '순회 시프트' 를 시켰을 때그 순회 시프트된 부호어가 다시 C내의 다른 부호어가 될 때, 이 선형부호를 순회 부호라고 한다.예를 들어 c0 = (0000000)은 순회 시프트를 시켰을 때 항상 자기 자신의 부호어 c0이 된다. c1 = (1101000) 을 순회 시프트 시키면 다음 관계가 성립한다. - c1^1 = c2 = 0110100 (한 칸 Shift)- c1^2 =..

유한체 = 갈로이스체 (Galois field) 라고 불린다.이는 순회부호 , BCH/RS부호 , PN(pseudo noise) 부호를 생성하고 구현하는 곳에 쓰인다. 1. 그룹ex) 집합 G = { 0, 1, 2, 3 } 의 mod4 덧셈을 정리해보자.그럼 아래 5가지 조건이 만족한다면 교환 그룹 또는 Abel군(Abelian Group) 이라고 한다.1. 닫힘 : (a+b) mod 4 is in { 0,1,2,3 }2. 결합법칙 : (a+b) +c = a+(b+C) mod4 3. 항등원 : a+0 = 0+a = a4. 역원 : a + a^(-1) = a + (4-a) = 0 mod 45. 교환법칙 : a+b = b+a 2. 체 (Field) 집합 F가 덧셈,곱셈에 대하여 다음 조건을 만족하면 체(..

선형 블록부호: 부호화 / 복호화를 매우 효과적으로 구현할 수 있음 (n,k) 선형 블록부호 C에서 임의의 두 개의 부호어 c1, c2 를 더하면(n,k) 선형 블록부호 내의 다른 부호어 c3이 된다.이런 특성을 만족할 때, 해당 부호를 (n,k) 선형 블록부호라고 한다. 즉, 선형 블록부호에서는 논리적인 연관성이 존재한다. 정말 쉽게 이해해보자면, 보내는 것에 대해 규칙을 만드는 것이다.[ 부호 생성 방식 ]00 → 000001 → 001110 → 110011 → 1111 아래처럼 한 비트를 두 번씩 찍어내면서 보낸다고 해보자.만약 송신은 1100 으로 했는데수신에서 1101 로 받았다면 마지막 비트가 잘못되었다는 것을 알 수 있다. 이에 우리는 해당 비트에 생긴 오류를 수정하여 원래 비트인 10으로 ..

초기 구상 현재 진행 1. 업로드할 파일을 정한다.. 2. Encryption 한다. 3. 그렇게 Encrypted File을 여러 Shard로 쪼갠다. 3-1) 데이터 Shard n개 + Parity Shard k개 로 쪼개서 , 총 n+k 개의 Shard가 만들어진다. 그렇게 만들어진 Shard를 연결된 Storage들에 Load Balancing을 고려하여 분산시키며 올린다. 올리는 과정에서 관련된 정보는 Data Map에 저장해둠으로써 어디에, 어떤 Shard가 저장됐는지 Tracking 한다. [ ↑ 업로드 // ↓ 다운로드 ] 4. 분산된 정보를 Data Map을 통해 받아오고, Shard들을 합친다. 5. 그렇게 합쳐진 Shard들은 2번 상태와 같으므로, 이를 Decrypt..

● 블록 부호:고정된 수의 비트를 갖는 단어의 집합 이러한 단어를 부호어 라고 한다. 위 그림과 같이길이 n인 블록부호가 있다면1) 길이 k 만큼은 정보가 담긴 info bits2) 나머지 n-k 만큼은 Parity bits 로 구성된다. 이런 블록 부호가 만들어지는 방법은 1. 정보원에서 원본 데이터 k 비트를 받아온다.2. 그 k비트를 부호기(Encoder) 에 넣는다.3. Encoder에서 Parity bits가 추가되면서 길이 n인 bits가 생성된다. 원본 메시지는 mParity가 붙은 결과의 길이는 n이 나온다.그리고 그렇게 Parity가 붙은 건 c로 표기한다. 원본 메시지와 부호 결과의 비율을 R(부효율) 이라고 하며이는 k / n 로 나타낸다. 이를 송신하는 경우에는 오류 벡터가 추..

정보 송수신 계통은 아래와 같다. [ 부호기 → [ 변조기 → ( 추가적인 동작 및 노이즈 추가) → 복조기 ] → 복호기 ] 위 결과로 나오는 게 b의 언저리 값이다. * 변조기와 복조기는 서로 Invertible한 관계* 부호기와 복호기도 서로 Invertible 관계 복조기까지 거친 데이터를 복호기에 넣으면복호기에서 오류 검출 및 정정 과정까지 거친다. 부호기와 복호기 사이에 있는 걸 BSC(Binary Symmetry Channel ) 라고 한다. ● BSC의 효과- 천이 확률을 0.5보다 낮게 한다.천이 : 1이 전송되어 0이 되거나, 그 반대인 경우.BCH/RS 부호 혹은 Hamming 부호처럼 간단한 복호 알고리듬이 많이 있다.하지만 이런 것과 완벽히 다른 형태의 부호가 콘볼루션 ..

https://github.com/klauspost/reedsolomon GitHub - klauspost/reedsolomon: Reed-Solomon Erasure Coding in GoReed-Solomon Erasure Coding in Go. Contribute to klauspost/reedsolomon development by creating an account on GitHub.github.com 위 코드에 있는 RS 를 사용했다. [ 테스트 ] 1. 이걸 Encoding 해서 여러 조각(w/parity)으로 나누고2. 한 조각을 지워서3. 다시 복구해본다. 1. 여러 조각으로 나누고 ( 개수 지정 가능함 ) 이렇게 여러 조각으로 만들고, 원본 파일을 지운다. 2. 한 조각..

파일 시스템 관련된 기능은 version/cmd.go에 있다.이 안에 있는 run func에서는 입력받은 명령어를 처리하는 중에Error가 발생했는지 확인하는 용도. CopyMoveDelete [ Copy ]Init > arguments가 제대로 들어왔는지 확인> arguments에 있는 값들을 fsrc ,name / fdst 로 담아둔다.> 현재 받은 인자들과 copy 명령어를 통해 Run을 돌린다. > case1) 만약 srcFile 이름이 없다면, 이는 Dir이란 뜻이므로, 현재 들어온 이름의 dir을 복사한다. > case2) 파일이 있다면, file을 복사한다. case1 : [ case2 ] : 현재 인자들을 가지고 moveOrCopyFile로 들어간다. ( In ..
package mainimport ( "encoding/csv" "fmt" "log" "net/http" "os" "strconv" "github.com/PuerkitoBio/goquery")var baseURL string = "https://www.saramin.co.kr/zf_user/search/recruit?search_area=main&search_done=y&search_optional_item=n&searchType=search&searchword=python&recruitPage="type extractedJob struct { id string title string location string jobsector string}func main() { var jobs..