본문 바로가기

전체 글

(143)
[CS지식 - 개발 상식] 메모리 구조 1. 프로그램의 실행 의미 - 파일 시스템에 존재하던 실행파일이 메모리에 적재된다는 의미 - 프로그램이 CPU를 할당받고 명령을 수행하고 있는 상태 파일 시스템에 있는 실행 파일이 메모리에 적재될떄, 실행 파일 전체가 메모리에 올라가지 않음 ▶ 일부만 메모리에 올라가고 나머지는 디스크의 특정영역인 스왑 영역에 존재 2. 메모리구조 운영체제(OS)의 메모리구조 1. 커널 영역 : kernel은 운영체제의 핵심. 커널영역은 system call을 통해 커널모드로 전화해야 접근가능 2. 유저 영역 : Code, Data, Stack, Heap 4가지로 구성 → 가상메모리 OS Kerner Space : 드라이버 설치 Stack : 지역변수, 매개변수 메모리의 높은 주소에서 낮은 방향으로 할당 Free : 여유..
[CS 지식 - 알고리즘] 이진탐색(Binary Search) & 힙정렬(Heap Sort) 1. 이진탐색(Binary Search) = 이진 검색 데이터가 정렬되어 있는 배열에서 특정한 값을 찾아내는 알고리즘 장점 : 완전탐색보다 효율적이고 속도가 빠름 단점 : 미리 정렬이 되어있는 리스트에서만 사용가능 구현 1. 초기 left, right 인덱스 값 선언 2. left가 right보다 작거나 같다면 아래 반복 - (left + right) / 2로 mid값 계산 - mid값과 비교하여 찾아야하는 값으로 찾으면, 해당 값 return - 찾아야하는 값이 mid보다 작으면 right -1 이동 - 찾아야 하는 값이 mid보다 크면 left +1 이동 3. left와 right가 딱 붙어버리거나 같아지면 탐색 완료 예시) 이진 탐색을 사용하여 key =32값을 찾는 과정 1. 먼저 배열의 가운데를..
[CS 지식 - 알고리즘] 합병정렬(Merge Sort) 1. Merge Sort 문제를 분할하고, 분할한 문제를 정복하여 합치는 과정 합병정렬은 기본적으로 '분할 정복'알고리즘을 기반으로 정렬되는 방식 → 정렬해야 할 리스트가 주어진 해당 리스트를 분할을 반복하여 최대한 작게 쪼개진 시점에 부분리스트에서 인접한 원소들끼리 비교하여 정렬하는 방식 과정은 퀵 정렬과 비슷하며 일반적으로 퀵 정렬보단 느리지만 피벗 값이 없고 반절씩 나눈다는 점에서 최악의 경우에도 O(nlogn)의 시간 복잡도를 보장 특징 - 시간 복잡도는 데이터의 분포와 상관없이 O(nlogn)을 고정 배열의 요소가 1개가 될때까지 분할 → n번 호출 배열을 반씩 분할하며 정렬 → logn만큼 호출 - 안정 정렬 - 데이터가 배열로 구성된 경우 추가적인 임시 배열 필요(메모리 사용량↑) → 공간 ..
[CS 지식 - 데이터베이스] 아우터조인과 이너조인 1. 조인이란? 두 개 이상의 테이블에 나누어져 저장된 정보를 한개의 테이블처럼 사용하기 위해 연결하는 방법을 정의하는 것 조인에 사용되는 기준 필드의 데이터 형식은 동일하거나 호환되어야함 일반적으로 연결될 양 테이블 간에 관계가 설정되어 있어야 함 (하지만 관계설정이 되지 않아도 조인 수행 가능) 종류 - 이너조인 - 아우터 조인 : left outer join, right outer join 2. 아우터조인 왼쪽/ 오른쪽 테이블을 기준으로 하여 데이터를 보여줌 기준 테이블에서는 있는 모든 레코드를 다 보여주고, 반대 테이블에선 조인된 필드가 일치하는 레코드만 보여줌 2-1. 아우터조인 사용방법 2-1-1. Left Outer Join select 필드이름 from 테이블이름1 left join 테이블..
[CS 지식 - 네트워크] 세션과 쿠키 1. HTTP의 특징, 세션과 쿠키를 사용하는 이유 HTTP(Hypertext Transfer Protocol) : 인터넷상에서 데이터를 주고 받기 위해 서버/ 클라이언트 모델을 따르는 통신규약 HTTP 특징 : 비연결성(Conectionless), 비상태성(Stateless) 1. 비연결성(Conectionless) : 클라이언트가 요청을 한 후 응답을 받으면 연결을 끊음 2. 비상태성(Stateless) : 통신이 끝나면 상태를 유지하지 않는 특징 → 서버의 자원을 절약하기 위해 모든 사용자의 요청마다 연결과 해제의 과정을 거치기 때문에 연결상태가 유지되지 않고, 연결 해제 후에 상태 정보가 저장되지 않는다는 것 → 이로 인해, 사용자를 식별할 수 없어 같은 사용자가 요청을 여러번 하더라도 매번 새로..
[CS 지식 - 알고리즘] 알고리즘이란? 1. 알고리즘이란? 사전적 의미 : 어떤 문제를 해결하기 위한 절차나 방법 프로그래밍에서 의미 : 어떤 문제를 컴퓨터를 사용해서 해결하기 위한 절차나 방법 2. 알고리즘 조건 입력 : 알고리즘은 0 또는 그 이상의 외부에 제공된 자료 존재 출력 : 알고리즘은 최소 1개 이상의 결과가 있어야함 명확성 : 알고리즘의 각 단계는 애매함 없는 명확한 과정으로 구성되어야함 유한성 : 알고리즘은 유한한 수의 단계를 수행한 후 문제가 해결되고 종료되어야 함 효율성 : 알고리즘의 모든 연산은 명백하게 실행 할 수 있음을 검증 할 수 있어야 함 3. 알고리즘의 효율성 컴퓨터를 사용해 주어진 조건에 맞게 효율적으로 문제를 해결하는 절차와 방법을 우선 → 알고리즘의 효율성은 해당 알고리즘이 적용될 조건이 어떠하냐에 따라 달..
[CS 지식 - 개발 상식] Ajax & axios & fetch js에서 비동기 HTTP통신(클라이언트와 서버 간 데이터를 주고받는 것)을 위해 사용 되는 것들 1. Ajax Asynchronous JavaScript And XML의 약자 Javascript를 사용한 비동기 통신, 클라이언트와 서버간에 데이터를 주고 받는 기술 →Javascript에서 비동기 HTTP통신이 가능하도록 해줌 **비동기 HTTP : response와 request 비동기 식으로 다룰 수 있는 것 Ajax 프레임 워크 : Ajax를 이용해 개발을 손쉽게 할 수 있도록 여러가지 기능을 포함해 놓은 개발환경 가장많이 사용되는 프레임 워크 : Prototye, script.aculo.us, dojo, jQuery 2.axios 등장배경 - 기존 비동기 요청 : WEB에서 리소스를 비동기로 요청하..
[CS 지식 - 개발 상식] Web Server와 WAS의 차이 1. 정적 페이지(Static Pages)와 동적 페이지(Dynamic Pages) 1-1. 정적 페이지(Static Pages) Web Server는 파일 경로 이름을 받아 경로와 일칠하는 file contents를 반환 항상 동일한 페이지를 반환 ex)html, css, js, image파일과 같이 컴 퓨터에 저장되어 있는 파일 1-2. 동적 페이지(Dynamic Pages) 인자의 내용에 맞게 동적인 Contents반환 웹 서버에 의해 실행되는 프로그램을 통해 만들어진 결과물 2.Web Server와 WAS의 차이 2-1. Web Server 웹 브라우저 클라이언트로부터 HTTP요청을 받아 HTML문서나 각종 리소스(Resource)를 전달하는 컴퓨터 → 정적 컨텐츠를 제공하는 서버(WAS를 거치지..