본문 바로가기

CS

(18)
기술 표준의 중요성 표준 이란? 측정이나 참조 혹은 판단을 위한 근거, 기준, 목표 등을 의미함. ex) 세계 측정의 날(5/20) : 1875년 5월 20일 길이의 단위인 '미터'를 세계에서 공통으로 사용하는 단위, 즉 세계 표준으로 인정한 날. 기술 표준 이란? 기술적인 시스템의 규범이나 요구사항. 어떤 기술적 산물이 어떻게 만들어지고 작동하도록 되어 있는지 명확하고 상세하게 기술한 것. ex) 소프트웨어 - 정보교환용 부호 체계 : 아스키 코드, 유니코드 같은 문자 집합 - 데이터 암호화의 표준 : DES, AES - 네트워크를 통해 정보를 교환하기 위한 프로토콜 : HTTP, HTTPS 기술 표준의 중요성 장점 : 상호 운영성을 보장하고 공개 경쟁을 이루어지도록 한다 세계 표준의 자동차는 전기차 -> 자동차 충전소 ..
작문과 비슷한 프로그래밍 1. C언어 1973년 데니스 리치(노키아 벨 연구소) - 시스템 프로그래밍 용도로 성공적인 언어. (어셈블러, 컴파일러, 텍스트 편집기, 운영체제 등) 2. C++ - 규모가 매우 큰 프로그램의 복잡성 관리를 도울 의도로 설계된 언어들 중 대표적인 언어C++이다. 1979년 비야네 스트롭스트룹(노키아 벨 연구소) - C는 C++프로그램에서도 유효하지만 '유효하지 않은 것도 있다인데 C++은 C에서 진화한 언어로 같은 결과를 다양한 방법으로 작성할 수 있기 때문에 유효하지 않은 부분도 있는 것입니다. - 흔히 알고 있는 맥, 파어이폭스, 크롬, 엣지, 리눅스 유닉스 운영체제 등이 오늘날 컴퓨터에서 사용하는 주요 프로그램인 C와 C++로 작성되었다. - 그리고, 인터넷이 확장되고, 프로세서 성능이 좋아짐에..
고수준 언어에서 프로그램 실행까지 -고수준 언어- 사람이 표현하는 방식에 가까운 용어로 계산과정 작성 가능. 작성된 코드는 번역기 프로그램을 통해 대상 프로세서의 어셈블리 언어로 된 명령어로 변환된 다음, 어셈블러에 의해 비트로 변환되어 메모리에 로드되고 실행. 여기서 번역기 프로그램은 보통 컴파일러. 컴파일러 : 고급 언어로 작성된 프로그램을 번역해서 기계어로 된 프로그램을 만들어주는 번역기. 우리가 아는 C, C++, Java, Javascript, Python 등등의 프로그래밍 언어 ex) A = B + C 고수준 언어에서는 이 식을 'B와 C라는 메모리 위치에서 값을 가져와 더한 다음 A라는 메모리 위치에 결과를 저장하라'. '='는 같다의 의미가 아닌 '대체하다', '저장하다', '위치하다'라는 뜻. 장점 : - 고수준 언어는 ..
10개 도시를 최단 거리로 여행하는 법(지수, 다항 시간 알고리즘) -지수 알고리즘 -다항 시간 알고리즘 알고리즘 대표적인 두가지 기준은 시간과 공간에 의한 복잡도이다. 외에 다른 복잡도를 갖는 알고리즘도 있는데 지수시간(Exponential-Time)과 다항시간(Polynomial-Time)이 있다. 지수시간(Exponential-Time) 알고리즘 반복문의 수행 횟수가 2^N의 지수식으로 표현 -> 지수 시간 알고리즘 지수 시간은 가장 큰 수행 시간 중 하나. - 일의 양이 빠르게 늘어남. - 한 개의 항목이 추가되면 수행해야 할 일의 양이 2배2^N의 비율로 증가. logN(이진 탐색)에서는 항목의 수를 2배로 늘려도 일의 단계는 1개만 늘어나 한편으론 지수 시간 알고리즘은 logN(이진 탐색) 알고리즘과 정반대라고 볼 수 있음. - 모든 가능한 경우를 하나씩 시도..
20. 10억 개 전화번호에서 이름 찾기 : 이진 검색 이진검색 : 알고리즘인데 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색(검색)하는 방법. 단점 : 배열 내부의 데이터가 정렬되어 있어야 사용 가능한 알고리즘. But, 검색이 반복될 때마다 목표값을 찾을 확률이 두배가 되므로 속도 빠름. 이진검색 성능 : 한번 비교가 이루어질 때마다, 범위는 1/2로 감소. 데이터의 집합 크기를 n으로 두고, 반복 횟수를 k로 가정시 수식은 아래와 같다. 데이터 집합의 크기 n을 2로 몇 번을 나누어야 1이 되는가의 식이다. 데이터 집합의 크기가 1024라면 10번의 탐색으로 데이터를 찾아낼 수 있다. (2의 10제곱 = 1024) 선형탐색 : 이진탐색 선형 탐색 : 리스트의 처음부터 끝까지 순서대로 하나씩 탐색을 진행함. 이진 탐색 : 정렬된 리스..
알고리즘과 초콜릿 케이크 레시피 알고리즘 : 알고리즘(영어: algorithm), 셈법은 수학과 컴퓨터과학, 언어학 또는 엮인 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차이며, 계산을 실행하기 위한 단계적 절차를 의미하기도 하는데 즉, 문제 풀이에 필요한 계산절차 또는 처리과정의 순서를 뜻한다는 것. 프로그램명령어의 집합을 의미. 알고리즘은 연산, 데이터 마이닝(기계 학습) 또는 자동화된 추론을 수행. 정의 : 멈춤문제의 결과로 알고리즘멈추기까지 걸리는 시간을 일반적으로 측정할 수 없다. 그러므로 알고리즘에 대해 단순한 직관을 만족하는 형식적인 정의는 불가능하다. 따라서 알고리즘의 공식적인 정의는 없다. 대부분의 알고리즘은 유한한 수의 규칙에 따라 구별 가능한 기호들을 조작하여 입력 정수에서 출력 정수를 생성하기 위한 일반..
슈퍼컴퓨터부터 사물 인터넷까지 슈퍼컴퓨터부터 사물 인터넷까지 - 고속도, 고용량의 컴퓨터 - 일기예보, 기상 해석, 항공기, 핵융합 시뮬레이션, 우주 탐사, 신약 개발 등의 다량 대량의 데이터를 고속 처리하기 위한 목적 일본 후지쯔 컴퓨터가 제일 빠름 : 21.12.31 -> 미국 테네시주 오크리지국립연구소 슈퍼컴퓨터 '프론티어' 22.06.03 (6개월만에 갱신) -1.102엑사플롭스 (플롭스 : 초당 부동소수점 연산) -엑사 :(100경=1,000,000,000,000,000,000=10^18) - CPU, GPU : 데이터를 읽어 연산처리를 통해 도출하는 기능 수행 - CPU : 중앙처리장치 - CPU는 입출력장치, 기억장치, 연산장치를 비롯한 컴퓨터 리소스를 이용하는 최상위 계층 장치. 두뇌를 담당. 명령어가 입력 순서로 데이..
캐시 캐시란 데이터를 저장하는 곳 속도가 빠른 만큼 비용은 비싸다. SRAM이라고도 불리는데 전자공학에서 배우는 플리플롭에서 기억능력의 논리회로로 이루어져 있음 이 부분은 매우 복잡해보임 DRAM은 커패시터. 캐시가 전자공학과도 관련이 있음. CPU에서는 데이터를 가져올 때 레벨은 L1->L3 올림차순으로. 핵심인 지역성을 이용하여 데이터 ‘접근 속도를 높이는 것’을 캐싱.