주어진 배열(N: 2n+1)에서 단 1개만 중복(쌍을 가지지 않는)되지 않는 요소라고 할때본 요소를 찾는 방법으로 일반적으로 정렬 (오름차순이던 내림차순이던) 후 linear 하게 순차적으로 요소를 비교 하여 값 추출 하는 방법을 생각 할 수 있습니다. func searchNonDuplicateElement(A : [Int]) -> Int { var sorted = A.sorted() var idx = 0 while (true) { if sorted.count - 1 != idx { if sorted[idx] == sorted[idx + 1] { idx += 2 } else { return sorted[idx] } } else { return sorted[idx] } }} 먼저 배열을 정렬 한 다음 순차..
JAVA로 만든 executable jar를 pkg로 만들어보자. * 준비물- appmaker2.app, executable jar, terminalURL : https://sourceforge.net/projects/jarappmaker/ (appmaker2.app) 1. appmaker2.app로 test.jar를 test.app로 변환2. 변환한 test.app 파일의 Contents -> MacOS -> launcher 를 텍스트 에디터로 연다.2.1 여기서 작업할 내용은 - 자바 설치 유무- 자바 버전 체크 osx(mac)에서는 JAVA가 설치되어 있지 않은 상태에서 terminal에서 java 명령어를 쓰면 OS 자체에서 JDK를 설치하라고 Oracle 사이트를 링크한다.JDK를 설치하면 자동..
Executable .jar를 만들고 리눅스에서 배포를 하고자 하니 ubuntu는 오른쪽 클릭하고 설정해주면 더블클릭 실행이 되는데,fedora에서는 이게 안먹히더라,사실 그냥 터미널에서 java -jar /path/.jar 하면 뭐 실행이야 되겠지만, 사람이라는게 귀찮은걸 싫어하다보니이렇게 실행하는 것도 컴플레인이 될 수 있더라. 구글링을 통해 .desktop 파일을 만들고 해당 파일을 더블 클릭하면 .jar파일을 실행 할 수 있는 방법을 찾았다. 텍스트 편집기를 열어@.desktop 형식으로 저장한다.그런 다음 아래와 같이 작성을 한다.[Desktop Entry] Encoding=UTF-8 Type=Application Exec=java -jar %f Icon=java Name=run-jar Comm..
컴퓨터 시스템 일부를 개선할 때 전체적으로 얼마만큼의 최대성능 향상이 있는지 계산하는데 사용.암달의 법칙에 따르면, 어떤 시스템을 개선하여 전체 작업 중 {\displaystyle P}%의 부분에서 {\displaystyle S}배의 성능이 향상되었을 때 전체 시스템에서 최대 성능 향상은 다음과 같다.{\displaystyle {\frac {1}{(1-P)+{\frac {P}{S}}}}} 병렬 컴퓨팅에서 멀티 프로세서를 사용할 때 프로그램의 성능향상은 프로그램의 순차적인 부분에 의해 제한된다. 예를 들면, 프로그램의 95%가 병렬화 할 수 있다면 이론적인 최대 성능 향상은 아무리 많은 프로세서를 사용하더라도 최대 20배로 제한된다. (출처 - https://ko.wikipedia.org/wiki/%EC%..
유니코드 - 컴퓨터에서 문자를 표현하기 위한 거대한 표 - 아스키 코드와 같이 문자를 숫자로 바꿔주는 표 - 프로토콜에 가깝다 비트와 바이트 - 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) - 코드 유닛 : 바이트 덩어리를 어떤 기준으로 잘라 코드포인트를 볼 것인지를 결정하는..
* 윈도우 라이브러리 파일 - ms windows os는 dll이라고 알려진 라이브러리를 지원 - 이것들은 복사본 하나만 메모리에 올라와도 여러 프로세스에서 사용될 수 있는 코드 라이브러리이다. [그림 1] 웹에서 구현되는 프로그램들의 실행 흐름을 보여주는 다이어그램 * kernel mode - 각종 프로토콜, 하드웨어 드라이버들이 있음* user mode - 실제로 사용자가 프로그램을 실행하는 윈도우 * ntdll.dll - 윈도우가 부팅되면서 커널메모리 영역을 사용할 수 있게끔 해주는 중요한 역할 * kernel32.dll - ntdll.dll과 kernel32.dll 은 한몸이라 볼 수 있음 - 모든 프로그램은 항상 ntdll.dll 파일과 kernel32.dll파일(이하 소개하는 DLL을 포함)을..
* 프로세스- OS로 부터 주소공간, 메모리, 파일등을 할당받는 실행의 단위.- 쉽게 말해, 우리가 어떤 프로그램을(롤, 워드, 엑셀과 같은) 실행 했을때 메모리에 올라가는 단위라 생각하자- 각각의 프로세스는 완벽히 독립적( Code, Data, Heap, Stack )이다. (워드를 여러 개 실행 했다고 생각해보자) * 스레드- 한 프로세스내에서 동작하는 여러 실행의 흐름.- 프로세스 내의 쓰레드들은 스택공간을 제외한 나머지 공간과 시스템 자원( Code, Data, Heap )을 공유한다. 스레드는 시스템자원(데이터 영역 메모리)를 공유하기 때문에, 실제로 전역변수를 사용하여 데이터를 공유할 수 있다. 또한 코드를 공유하기 때문에 같은 함수에 접근이 가능하다. 이러한 장점은 스레드간 충돌문제를 일으킬..
프로그램을 실행 시키면 운영체제는 우리가 실행시킨 프로그램을 위해 메모리 공간을 할당 해준다할당되는 메모리 공간은 크게 스택(Stack), 힙(Heap), 데이터(Data)영역으로 나뉘어 진다. 데이터 영역- 전역 변수와, Static 변수가 할당되는 영역- 프로그램의 시작과 동시에 할당, 프로그램이 종료되어야 메모리에서 소멸 스택 영역- 함수 호출시 생성되는 지역변수와 매개변수가 저장되는 영역- 함수 호출이 완료되면 사라짐 힙 영역- 필요에 의해 동적으로 메모리를 할당 할 때 사용- 할당해야 할 메모리의 크기를 프로그램이 실행되는 동안 결정해야 하는 경우(런 타임때) 유용하게 사용되는 공간 출처- http://dsnight.tistory.com/50
- Total
- Today
- Yesterday
- yss
- MEAN stack
- App Transport Security
- reactivex
- angular
- remote debug
- 윈도우 라이브러리
- ucrtbase.dll
- execute double click
- cipher
- Node.js
- executable jar
- TLS1.2
- rxswift
- 비대칭키
- iOS10
- AES
- HTTPS
- build set
- 전자서명
- Visual Studio
- node js
- full stack
- 암호화
- PCX
- 대칭키
- TypedArray
- JavaScript
- ATS
- Universal CRT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |