본문 바로가기

이론

(10)
우선 인수 평가 / 정상 순서 평가 https://bluesunshine.tistory.com/147 프로그래밍 기본 요소 문(Statements) : 어떠한 작업을 수행하는 코드 블럭 조건문, 반복문, 반환문 등 표현식 문장 : 표현식 + 세미콜론(;) 표현식(Expressions) : 하나 이상의 원시 표현식으로 구성 / 값을 계산하거나 판별하 bluesunshine.tistory.com 아래에서 사용하는 함수의 원본 전개 - 정상 순서 평가 sum_of_squares(5 + 1, 5 * 2) square(5 + 1) + square(5 * 2) (5 + 1) * (5 + 1) + (5 * 2) * (5 * 2) 축약 6 * 6 + 10 * 10 36 + 100 136 정상 순서 평가 먼저 완전히 전개한 후 축약하는 평가방법 인수 우선..
프로그래밍 기본 요소 문(Statements) : 어떠한 작업을 수행하는 코드 블럭 조건문, 반복문, 반환문 등 표현식 문장 : 표현식 + 세미콜론(;) 표현식(Expressions) : 하나 이상의 원시 표현식으로 구성 / 값을 계산하거나 판별하는 코드 블럭 / 값을 평가하는 것 486, true, 1+2 등 반환문 / 반환 표현식 차이 function add(a, b) { let result = a + b; return result; // 반환문 - 평가가 아닌 반환만 함 } function add(a, b) { return a + b; // 반환 표현식 } 복합 표현식 연산자들에 해당하는 원시 함수를 해당 수들에 적용하는 연산자로 조합된 수(값)..? 137 + 349 486 조합 다른 표현식을 구성요소로 담고 있는 표..
멀티 스레딩와 비동기 차이 멀티 스레딩 스레드를 늘려서 작업을 병렬처리하는 것 비동기 이전 작업이 완료될 때까지 기다리지 않고 다음 작업을 계속 실행하게 하는 비차단 방식으로 작업하는것 조합 단일 스레드 / 동기 단일 스레드 / 비동기 멀티스레드 / 동기 멀티스레드 / 비동기 차이점 멀티 스레딩은 프로그램에서 병렬처리를 구현하는 기술이고 비동기는 한 작업이 진행되는 동안 다른 작업을 계속 실행할 수 잇도록 허용하는 방식 참고 https://lucky516.tistory.com/207 https://jayhyun-hwang.github.io/2021/09/02/The-Difference-Between-Asynchronous-And-Multi-Threading/ https://jcchu.medium.com/%EB%8F%99%EA%B8..
프로그램 / 프로세스 / 스레드 / 소프트웨어 프로그램 컴퓨터에 어떤 일을 수행하는 순서와 방법을 지시하는 명령어의 집합체 프로세스 하나의 프로그램이 CPU에 적재되어 실행되는 것 CPU를 차지하면서 수행하는 주체 - 프로그램 한개의 인스턴스 (실행되고 있는 프로그램) 프로그램은 하나이며 프로세스는 여러개 일 수 있음 스레드 (Thread) 프로세스 내에서 실행되는 흐름의 단위 프로세스의 특정한 수행 경로 프로세스가 할당 받은 자원을 실행하는 단위 스택만 따로 할당 받고 코드 / 데이터 / 힙은 영역을 공유 스택과 레지스터는 별도 / 힙, 메모리는 공유 가능 한 스레드가 프로세스 자원을 변경하면 다른 스레드들도 변경된 자원을 인지 가능 소프트웨어 하드웨어의 동작을 지시 / 제어하는 역할 프로그램 및 프로그램과 관련된 문서들 (프로그램 + 문서) 참고..
.a .so / .dll .lib 확장자 정적 라이브러리 - *.a (Archive) 동적 라이브러리에 비해 실행 속도가 빠르고 배포에 제약이 없음 해당 라이브러리를 필요로 하는 경우 같은 정적 라이브러리가 링크됨 → 배포 파일들의 사이즈가 커짐 → 디스크 공간/메모리 차지 많이 함 유닉스 시스템의 경우 필요로 할때마다 메모리에 로딩하는 demand paging 사용 → 정적 라이브러리 / 공유 라이브러리 메모리 사용률 차이 크지 않음 라이브러리 로직 변경 시 재 컴파일 후 재실행 동적 라이브러리 - *.so (Share Object) 라이브러리를 여러 프로그램이 사용될 때 라이브러리 코드 영역을 공유 각각의 프로그램 사이즈가 작아짐 실행 속도가 느리고 컴파일 시 사용된 버전의 라이브러리가 없거나 버전이 다르면 동작하지 않음 하나만 로딩해서 여..
시스템 콜 정의 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스 보통 C와 C++과 같은 고급 언어로 작성된 프로그램은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법 커널 운영체제의 주요 구성 요소 프로세스를 잇는 핵심 인터페이스 두 가지 관리 리소스 사이에서 최대한 효과적으로 통신 OS 내에 위치하고 컴퓨터 유형에 관계 없이 하드웨어의 모든 주요 기능을 제어 메모리 관리 / 프로세스 관리 / 장치 드라이버 : 하드웨어와 프로세스 사이 중재, 인터프리터 / 시스템 호출 및 보안 시스템 콜 운영체제는 사용자모드 / 커널모드 분리 커널이 관련된 것은 커널 모드로 전환 후에 해당 작업을 수행할 권한이 생김 커널 영..
사용자 패스워드를 전송 / 보관하는 방법 암호화 / 복호화 / 단방향 / 양방향 / 단방향 해시 함수 / 다이제스트 등 암호화 수학적 과정을 통해 어떤 정보를 의미없는 문자의 나열로 바꾸는 것 다른 이들이 직접 그 의미를 알지 못하도록 하는 작업 암호화 키 암호화 또는 복호화하기 위해 이용하는 전자적 정보 복호화 암호화 되어있는 데이터를 해독하는 작업 단방향 암호화 단방향 해시 함수를 이용하여 복호화가 불가능하게 암호화한 방식 어떠한 방법을 쓰더라도 원래의 평문으로 되돌릴 수 없음 입력한 데이터를 다시 암호화하여 저장된 데이터와 일치하는지 비교하여 인증 양방향 암호화 복호화가 가능한 암호화 방식 단방향 해시 함수 입력한 값을 문자화 숫자를 임의로 나열한 일정한 길이의 다이제스트 형태로 변환 시켜주는 함수 종류 : SHA, MD, HAS, WHI..
Base64 인코딩 인코딩 / 디코딩 인코딩 정보 또는 데이터를 암호화 / 부호화 보안 / 정보의 형태, 형식의 표준화 / 처리속도 향상 / 저장공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식 디코딩 암호화 / 부호화를 해제 정의 및 특징 이진법으로 만들어져 있는 데이터를 아스키 문자(공통 문자)로 변환시키는 인코딩 기법 000000 - 111111까지 2진수로 2의 64 제곱까지 나타낼 수 있음 아스키 문자로 표현할 수 있는 가장 큰 진법 인코딩을 하면 데이터가 약 33% 늘어남 이해가 안됬었는데 (jpg → 인코딩 → 문자열) 과정을 생각해서 이해됨 바이너리 데이터는 문자가 될 수도 어떠한 파일이 될 수도 있음 인코딩 과정 문자열 → ASCII 문자 → 6비트로 나눔 → base64 인코딩 ASCII 코드..