일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 생각정리
- 기록
- til
- js
- WIL
- 피드백
- 일기
- 알고리즘
- Java
- 리눅스
- react
- javascript
- array
- next.js
- MongoDB
- 생각일기
- 코테
- CS
- 주간회고
- 생각로그
- 자바스크립트
- Git
- 네트워크
- 회고
- mysql
- typescript
- 트러블슈팅
- mongoose
- nest.js
- Grafana
- Today
- Total
목록Study/CS (13)
코딩일상
정렬알고리즘의 종류 정렬알고리즘의 종류로써는 아래와같은것들이 있다. 버블 정렬(Bubble Sort) 선택정렬(Selection Sort) 삽입정렬(Inser Sort) 등등..... 위 정렬 알고리즘이 가장 빠른 정렬 알고리즘은 아니다 설명하기 쉬운 알고림즘 종류들이며 그 이유는 사람들이 정렬을하는 방법과 유사하기 때문이다. 1)버블정렬(Bubble Sort) 배열의 처음부터 두개의 값을 비교를 한 후 첫 번째값이 더큰 경우 자리를 바꾼다(swap)을 한다. 예) 위 사진의 경우 2,5를 비교한후 첫번째가 더 작기에 가만히 있고, 그 다음 5,3을 비교한후 5가 더 크기에 자리를 바꾼다. 이런 방식을 처음 부터 끝까지 진행한다. 이렇게 한 싸이클을 진행할 경우 가장큰수가 맨 뒤에 가긴하지만 그외의 숫자..
들어가기전 알고리즘이란?? 우리가 작업을 수행하기 필요하기위한 절차와 스텝을 말한다. 알고리즘 또한 자료구조처럼 시간복잡도(Time Complexity)가 낮은 것이 좋다. 이진 탐색을 공부하기 앞서 먼저 선형 탐색에 대해 공부해보겠다. 선형 탐색(Linear Search) 알고리즘?? 검색(search)알고리즘 중 하나이다. 그림과 같이 찾는값이 7일 경우 처음부터 하나씩 데이터를 비교해서 원하는 값을 찾는 방식이다. 단점 데이터의 길이가 길어길수록 비례하여 검색속도가 느려진다. 이렇게 데이터가 늘어남에 따라 수행시간이 오래걸리는것을 선형시간 복잡도(Linear Time Complexity)라고 한다. 빅오 표기법 으로나타내자면 O(n)이라고 볼수 있다. 선형검색 알고리즘의 단점을 해결하기 위해 나온 ..
1)자료구조를 들어가기 앞서 시간복잡도에 대해 간단히 짚고 넘어가고자 한다. 시간복잡도(TimeComplexity) 처음 이용어를 접했을때는 뭐 멍멍이 소리이지라고 생각을 하였다. 시간복잡도는 데이터구조의 오퍼레이션 혹은 알고리즘이 얼마나 빠르고, 느린지를 측정하는 방법이다. 이것은 실제 시간을 측정하는것은 아니다. 얼마나 많은 단계(step)이 있는지에 따라 구분한다 좀 더 자세한것은 따로 포스팅을 하겠다. 2)메모리 관점에서의 배열?? 메모리의 종류는 2가지로 볼 수있다. -휘발성(volatile) 메모리 ex)내 컴퓨터의 램(RAM: Random Access Memmory) -비휘발성(non-volatile) 메모리 ex)내컴퓨터의 하드드라이브 여기서 잠깐?? 왜 램은 Random Access Me..
왜 우린 데이터 구조와 알고리즘을 배워야할까?? 개인적으로 이유를 모르는채 무언가를 그냥 배우는것 만큼 비효율적인것은 없다고 생각한다. 그냥 망망대해에서 노를 젓는것만큼 지치기도 쉽고, 어느쪽으로 저어야 하는지도 모른다고 생각하기 때문이다. 그렇기에 왜?? 다들 데이터 구조와 알고리즘을 중요하게 생각하는지에 대해 우선 알아보고자 하였다. 정말 간단히 결론만 요약하자면, 서비스를 만들어냈고, 배포또한 하여 구동하는데 문제는 없지만 🌠속도가 느린경우? 이를 해결하기위해서 필요한것들이 바로 동작원리를 이해하고 어떤식으로 컴퓨터 연산을 시킬것인지에대해 이해하고 적용하여 해결을 하려면 서비스에 맞는 알고리즘과 데이터구조를 적용해주어야한다는것이다. 결론 즉, 결국은 성능을 올려 응답속도를 빠르게 하여 고객에게 더 ..
application 정의 애플리케이션이란 운영체제를 플랫폼으로 삼아 작업을 수행하는 온갖종류의 프로그램이나소프트웨어를 총칭하는 용어이다. 넓은 의미 운영체제에서 실행되는 모든 소프트웨어 워드프로세서, 컴파일러, 링커 등 좁은 의미 운영체제 위에서 사용자가 직접 사용하는 소프트웨어 워드프로세서, 미디어 플레이어 등 application의 종류 설치되는 용도나 형태에 따라 application을 분류해볼 수 있습니다. 애플리케이션 기기에 직접 다운로드하여 사용합니다. 운영체제와 직접 통신하므로 운영체제 별로 플랫폼이 필요합니다. 웹 애플리케이션 브라우저 내에서 실행하므로 앱을 따로 다운로드받지 않아도 됩니다. 비용, 개발 기간이 적게 드는 장점이 있습니다. application ?? web applicat..
고수준언어?? 저수준 언어?? 컴퓨터에 가까울 수록 저수준 언어, 인간과 가까울수록 고수준 언어라고 한다. 컴파일링이란 고수준 언어를 저수준 언어로 변환하는 과정이다. 저수준 언어 컴퓨터 친화적이기에, 컴퓨터가 잘 이해할 수 있도록 아주 구체적이고 꼼꼼하게 작성해야 오류를 막을 수 있다. 따라서 아주 정밀한 문법이 요구되며, 인간이 작성하기에 어렵고 유지보수가 불편하다는 단점이 있다. 그러나 철저한 문법을 지키기 때문에 여럿이 협업할 때 실수를 방지할 수 있으며, 컴퓨터가 이해하기에 쉬워 저사양 컴퓨터에서도 빠르게 동작할 수 있다는 장점이 있다. IPTV, 복합기, 스캐너, 라디오, 프로젝터, 프린터와 같이 컴퓨터의 역할이 크게 요구되지 않거나 작은 하드웨어에서 동작하는 저사양 컴퓨터를 통해 작업할 때 ..
캐시: 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다 중앙처리장치가 명령이 필요하게 되면, 맨 먼저 액세스 하는 것이 캐시 메모리인 셈이다. 최근에 사용한 데이터나 자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도 즉각 사용할 수 있도록 저장해두는 영역이다. 캐싱: 데이터를 더 빨리 읽어 올 수 있도록 캐시 기억 장치에 저장하는 일 캐시에는 L1, L2, L3이 있고, L3에서 L1로 갈수록 빠르지만, 저장할 수 있는 데이터의 양은 줄고 가격이 비싸진다. 레지스터 > L1 > L2 > L3 순서대로 원하는 데이터를 찾고, 여기서까지 못 찾게 되면 캐시 미스라고 한다. 캐싱 과정에서는 대개 블록 단위로 동시에 불러온다. 단일 바이트에 대한 요청이 들어오면. 연속된 메모리 위치를 포함..
컴퓨터의 범위 ‘논리적 구조와 무엇을 계산할 수 있는가’에 대해 공통된 핵심 속성을 가지면 컴퓨터로 구분 가능하다. 보다 큰 범위로 스마트폰 태블릿도 컴퓨터라고 부를 수 있다. 슈퍼 컴퓨터 2011년 일본 이화학연구소(RIKEN)과 후지쯔가 개발한 슈퍼컴퓨터 '케이’ 우리가 알고있는 현재의 컴퓨터들은 게임, 작업, 사무, 미디어 등 다방면에서 활용 가능하고 실용적이다. 하지만 슈퍼컴퓨터는 그저 연산을 위해 연산능력만 올인한 연산능력 원투 컴퓨터라고 이해하면 쉽다. 슈퍼컴퓨터의 성능은 flops (floating point operations per second) 로 표기하며 이는 초당 수행할 수 있는 부동 소수점 연산 횟수를 뜻한 단순하게도 코어가 많으면 연산능력은 올라가는것을 이용해 코어를 병렬로 연결..
전체 정리 프로세서와 메모리 프로세스의 속도가 매우 빠른 반면에 메모리의 속도는 매우 느리다. 현대 컴퓨터 아키텍처에서는 캐시라는 고속 메모리를 사용하여 메모리에서 정보를 오기를 기다리게 할 필요가 없게 한다. 파이프라이닝 명령어 여러 개를 동시에 처리하여 프로세서의 효율을 향상시키는 기법 멀티코어 프로세서 여러 개를 동시에 작동시키는 기법으로, 현재의 노트북과 휴대전회에서 널리 사용되는 기술이다. 프로세서 간의 속도 비교 각 프로세서마다 연산 방식이 다르므로, 프로세서 간의 속도를 비교하는 것은 어렵고 무의미하다. 따라서 어떤 프로세서가 더 빠르다는 주장은 조심스럽게 받아들여야 한다. 더 보기 1.프로세서(CPU)(Center Processing Unit) 프로세서는 컴퓨터 하드웨어에 부착한 모든 장치..
연속과 불연속 컴퓨터는 사람에게 익숙한 10진수가 아닌 2진수, 비트라는 단위로 0과 1로 정보를 표현한다. 비트(Bit)는 자료를 표현하는 최소 단위이며 숫자, 문자, 이름, 사진, 영화 등 모두 비트가 모여서 표현되는 것이다. 8비트(Bit)는 1바이트(Byte)이며 바이트 이상의 단위는 전부 이전값의 1024배씩 증가하게 된다. 아날로그 정보를 디지털로 바꾸기 아날로그와 디지털 아날로그, 디지털 . 이해하고 있는 그 뜻이 맞으며 조금 더 사전적으로 정의하면 아래와 같다. 아날로그 어떠한 물체나 시스템의 상태를 연속적으로 변하는 물리량으로 나타내는것을 말함 디지털 물질 시스템들의 상태를 숫자와 문자등의 불연속적인 값을 신호로 표현하는 것을 뜻함 예시 ) 아날로그 시계 예시 ) 디지털시계 이미지의 디지..