컴퓨터 시스템 일부를 개선할 때 전체적으로 얼마만큼의 최대성능 향상이 있는지 계산하는데 사용.암달의 법칙에 따르면, 어떤 시스템을 개선하여 전체 작업 중 {\displaystyle P}%의 부분에서 {\displaystyle S}배의 성능이 향상되었을 때 전체 시스템에서 최대 성능 향상은 다음과 같다.{\displaystyle {\frac {1}{(1-P)+{\frac {P}{S}}}}} 병렬 컴퓨팅에서 멀티 프로세서를 사용할 때 프로그램의 성능향상은 프로그램의 순차적인 부분에 의해 제한된다. 예를 들면, 프로그램의 95%가 병렬화 할 수 있다면 이론적인 최대 성능 향상은 아무리 많은 프로세서를 사용하더라도 최대 20배로 제한된다. (출처 - https://ko.wikipedia.org/wiki/%EC%..
애플에서 iOS9 에 ATS 개념을 설명하면서 HTTPS의 사용을 권장했다(HTTP 쓰지말라는 말)iOS10에 들어스면서 이젠 강압적으로 ATS를 사용하지 않은 앱은 앱스토어 배포를 리젝한다고 공표를 했다.따라서 HTTP는 물론이고, HTTPS 일지라도 TLS 1.2 아래 버전이면 ATS 정책에 의거 통신을 할 수 없게 된다.(출처 - http://nopdin.tistory.com/1818) 하지만, 어떠한 이유로 인해 써야만 하는 상황이 올 수 밖에없다. HTTP 통신을 아예 하지 못하는 것은 아니다.HTTP통신을 하는 방법 중 하나는, NSAllowsArbitraryLoadsInWebContent를 YES로 하고 WKWebView를 사용하여 HTTP 통신을 하거나,info.plist에서 App Tra..
고급 암호화 표준이라고 불리는 AES는 미국 표준기술 연구소에서 제정한 암호화 방식이다.레인달(Rijndael) 알고리즘에 기반된 암호화 방식으로 128, 192, 256비트 의 키길이로 처리할 수 있고 무료 배포가 가능하여 채택되었다. AES암호화에 사용되는 알고리즘들은 아래와 같이 4가지가 있다. (이들을 묶어 레인달 알고리즘이라 한다.)- Substitution Box (일명 s-box) : 바이트들을 s-box에 있는 바이트들과 바꾸는 알고리즘, 이는 입력데이터를 지정된 숫자로 바꿔 암호를 깨기 어렵게 만드는 기법이다.- ShiftRows : 바이트의 행을 Shift하는 알고리즘- MixColumns : 특수한 공식으로 바이트값들을 바꾸는 알고리즘- AddRoundKey : XOR 연산자를 사용하..
유니코드 - 컴퓨터에서 문자를 표현하기 위한 거대한 표 - 아스키 코드와 같이 문자를 숫자로 바꿔주는 표 - 프로토콜에 가깝다 비트와 바이트 - 1비트는 [], 2비트는 [][], 3비트 [][][] - 1바이트 = 8 비트 [][][][][][][][] - 16진법 두자리 숫자는 1바이트에 해당, (예 : 0xC3FF ( C, 3, F, F) 는 2바이트 , 0x10FFFF (1, 0, F, F, F, F) 3바이트) )용어 - 코드포인트 : 문자에 부여한 고유한 숫자값 - 평면 : 적당한 범위로 나눠서 코드포인트를 관리하는 범위 (예 : 0평면(0x0000 ~ 0xFFFF) 1평면(0x10000 ~ 0x1FFFF) - 코드 유닛 : 바이트 덩어리를 어떤 기준으로 잘라 코드포인트를 볼 것인지를 결정하는..
Universal CRT14년 6월 ms에서 기존CRT의 논리파트를 VCRuntime과 Stable로 나누었는데, VCRuntime은 프로세스 시작과 예외처리와 같은 것을 지원하며, stable은 CRT의 순수한 라이브러리를 지원하도록 설계했다. 여기서 stable은 또 AppCRT와 DesktopCRT로 나뉜다. ms가 이렇게 CRT구조를 나눈 이유는 in-place 서비스를 제공하기 위해서 나눴다고 했는데 15년 말에 ms가 두개로 나눈 stable 파트를 다시 하나의 라이브러리로 바꾸었는데 이게 바로 Universal CRT가 되겠다. (이 또한 in-place 서비스 제공을 위함이라 함)Universal CRT는 기존 CRT와 다르게 Visual C++의 일부가 아닌 WindowsKits의 일부로..
* remote debug - 비주얼 스튜디오를 사용하여 원격으로 디버깅을 함 - 원격 PC에 비주얼 스튜디오가 없어도 디버깅이 가능함 로컬 pc : 디버깅을 하는 pc (visual studio 가 설치된 pc)원격 pc : 디버깅을 당하는(?) pc * 순서 1. 원격 PC의 IP 획득 2. 원격 PC의 C:/Remote 경로에(사실 경로는 아무데나 상관없다) 폴더를 만들어줌 3. 원격 PC의 C:/Remote 경로에 로컬 PC의 C:\Program Files\Microsoft Visual Studio(version)\Common7\IDE\Remote Debugger 폴더를 복사 (상식적으로 visual studio 가 안깔린 pc에 깔린pc의 분비물이라도 들어가야 뭐라도 할거 아닌가) 4. 원격 P..
* 윈도우 라이브러리 파일 - ms windows os는 dll이라고 알려진 라이브러리를 지원 - 이것들은 복사본 하나만 메모리에 올라와도 여러 프로세스에서 사용될 수 있는 코드 라이브러리이다. [그림 1] 웹에서 구현되는 프로그램들의 실행 흐름을 보여주는 다이어그램 * kernel mode - 각종 프로토콜, 하드웨어 드라이버들이 있음* user mode - 실제로 사용자가 프로그램을 실행하는 윈도우 * ntdll.dll - 윈도우가 부팅되면서 커널메모리 영역을 사용할 수 있게끔 해주는 중요한 역할 * kernel32.dll - ntdll.dll과 kernel32.dll 은 한몸이라 볼 수 있음 - 모든 프로그램은 항상 ntdll.dll 파일과 kernel32.dll파일(이하 소개하는 DLL을 포함)을..
* node-forge - Javascript를 사용하여 TLS를 구축한 프레임워크 * client example var someBytes = 32; var key = forge.random.getBytesSync(16); var iv = forge.random.getBytesSync(16); var cipher = forge.cipher.createCipher('AES-CBC', key); cipher.start({ iv: iv }); cipher.update(forge.util.createBuffer(someBytes)); cipher.finish(); var encrypted = cipher.output; console.log('encrypted : ' + encrypted.toHex()); var..
* Cyptographic Hash - Message Digest. - 대표적 암호화 해쉬 알고리즘 : MD5(output 128 bit == 16byte), SHA-1(output 16 bit == 20byte) - 크기와 해쉬 값이 같다면 같은 파일이라는 것을 알 수 있다. * Encryption & Decryption - 암호화, 복호화 - 무엇을 변경하는 것을 Encryption, 원상태로 복원하는것을 Decryption * Symmetric Key Algorithm - 대칭키 (하나의 키)를 Encryption, Decryption에 사용 - 속도가 빠른편 - 대표적 알고리즘 : 3DES, AES * Asymmetric Key Algorithm - 비대칭키 ( Private Key, Public..
* MT - Multi Thread - CRT 라이브러리를 정적 라이브러리로 링크하는 것 - CRT 라이브러리를 실행파일(EXE, DLL)에 포함시키겠다는 의미로 생각하면된다. - 실행파일에 CRT라이브러리를 넣기 때문에 파일 사이즈가 커진다. - MT는 모든 실행파일(DLL, EXE)에 각각의 파일들이 사용하는 힙메모리가 생성된다 ( n개의 DLL파일에 n개의 독립적인 CRT 힙메모리) * MD - Multi Thread DLL - CRT 라이브러리를 DLL로 제공하겠다는 것 - MT에 비해 파일 사이즈가 작음 - CRT DLL이 없는 환경에서는 사용 불가 - MD는 모든 실행파일(DLL, EXE) 이 사용하는 하나의 힙메모리가 생성된다 ( n개의 DLL파일에 1개의 공통 CRT 힙메모리) 출처 : h..
- Total
- Today
- Yesterday
- JavaScript
- iOS10
- angular
- 대칭키
- cipher
- Node.js
- remote debug
- 윈도우 라이브러리
- 비대칭키
- Visual Studio
- AES
- rxswift
- TLS1.2
- node js
- 암호화
- yss
- App Transport Security
- ucrtbase.dll
- TypedArray
- Universal CRT
- PCX
- 전자서명
- build set
- execute double click
- ATS
- MEAN stack
- full stack
- HTTPS
- reactivex
- executable jar
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |