Domain Name System → 웹사이트의 도메인과 ip주소가 매핑될 수 있도록 하는 시스템 , 도메인 이름만 알면 웹사이트에 접근할 수 있도록 해준다. (인터넷 전화번호부)www.naver.comwww,m,mail,blog → host name , 네이버에 속한
검색창에 www.google.com을 입력하면. 제일 먼저 해당 도메인의 ip주소를 얻기 위한 과정이 있었다. 이미 가지고 있는 캐시 정보를 찾아보고, 없는 경우 dns서버에 질의하여 ip 주소를 가져온다. 이 내용은 아래 포스팅에서 다루었다.https://v
검색창에 www.google.com을 검색하면 dns를 통해 해당 서버의 ip 주소를 가져오고 ip에 해당하는 서버와 tcp 연결이 이루어지면 이 위에서 http 통신이 이루어져 html 문서를 가져오게 됩니다. 이 때 가져온 html 문서의 렌더링 과정 대해 정리해
웹 사이트에 악성 스크립트를 삽입하여 개발자가 의도하지 않은 행동을 수행시키는 공격이다. 결과적으로 쿠키 및 세션정보가 탈취되어 개인정보와 같은 민감한 정보가 노출되거나, 악성 프로그램 다운로드, 웹 페이지 변조등의 피해를 사용자가 겪게 된다. 사용자의 입력을 받아
웹 사이트에서 이미지 최적화란 사용자 참여도를 높이기 위해 최적의 형식, 크기, 해상도로 된 고품질 비주얼을 사용함으로써 빠른 콘텐츠 로딩과 순조로운 페이지 이동을 지원하는 것을 의미한다. 이미지가 중요한 사이트가 아니라면 굳이 이미지를 최적화하는데 드는 리소스와
이미지는 여러 가지 파일 유형으로 저장된다. 보통 우리가 많이 볼 수 있는 이미지 파일 형식으로는 비트맵(.bmp),JPG(.jpg),PNG(.png),GIF(.gif)등이 있다. 이 외에도 다양한 이미지 파일 유형들이 있는데, 각각의 파일 유형들에는 장점과 단점이 있
핵심 개념기억장치RAM캐시가상 기억장치컴퓨터가 계산을 수행하기 위해서는 비트와 바이트의 형태로 기억장치에 저장할 수 있어야 한다. 컴퓨터가 나중에 데이터를 검색할 수 있도록 보관을 하는 것이다. 하지만 기억장치는 종류마다 서로 다른 속도를 내고 내부에 저장할 수 있는
핵심 개념인공지능자연어처리음성 인식머신 러닝"확률적인 모델."2016년 봄, 이세돌과 알파고의 대국으로 인공지능에 대한 관심이 크게 일었다. 인공지능은 컴퓨터 과학의 개념이 세계적으로 영향을 미칠 수 있다는 것을 보여주는 사례이다. 인공지능이 어떻게 정보를 처리하는 지
핵심 개념알고리즘정확성효율성컴퓨팅은 입력을 받아 그 입력을 처리한 후 출력하는 과정이다. 알고리즘은 입력에서 받은 자료를 출력형태로 만드는 처리과정을 뜻한다. 즉, 알고리즘이란 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적
핵심 단어프로그래밍 언어의사 코드할당들여쓰기컴퓨터 프로그램은 프로그래밍 언어로 작성된다. 프로그래밍 언어는 일반적으로 기계가 알아들을 수 있도록 명령을 내리기 위해 사용되는 언어이다. 프로그래밍 언어는 특정한 문법에 의해 작성된 코드를 요구한다. 알고리즘을 표현하는 방
원하는 원소가 발견 될 때까지 처음부터 마지막 자료까지 차례대로 탐색한다. 선형 탐색 알고리즘은 정확하지만 아주 효율적이지 못한 방법이다. 리스트의 길이가 n이라고 했을때, 최악의 경우 리스트의 모든 원소를 확인해야 하므로 n번만큼 실행된다. 여기서 최악의 상황은 찾고
버블 정렬은 두 개의 인접한 자료 값을 비교하면서 위치를 교환하는 방식으로 정렬하는 방법을 말한다. 버블 정렬은 단 두 개의 요소만 정렬해주는 좁은 범위의 정렬에 집중한다. 이 접근법은 간단하지만 단 하나의 요소를 정렬하기 위해 너무 많이 교환하는 낭비가 발생할 수 있
배열 안의 자료 중 가장 작은 수 (혹은 가장 큰 수)를 찾아 첫 번째 위치(혹은 가장 마지막 위치)의 수와 교환해주는 방식의 정렬. 선택 정렬은 교환 횟수를 최소화하는 반면 각 자료의 비교하는 횟수는 증가한다.버블 정렬과는 다르게 몇 번의 교환을 해주었는지 셀 필요가
시간 복잡도란 알고리즘을 수행할 때 걸리는 시간을 기준으로 효율성을 분석하는 것이다. 시간의 효율성이란 결국 알고리즘에서 비교와 교환 등이 일어날 때 연산자의 처리 횟수가 적다는 의미이며, 연산자의 처리횟수가 적다는 건 시간의 복잡도가 낮다는 의미이다. 따라서 시간 복
버그는 코드에 들어있는 오류이다. 버그로 인해 프로그램의 실행에 실패하거나 프로그래머가 원하는 대로 동작하지 않게 된다. 디버깅은 코드에 있는 버그를 식별하고 고치는 과정이다. 프로그래머는 디버거 라고 불리는 프로그램을 사용하여 디버깅을 하게 된다.디버거는 프로그램을
C프로그램을 작성한 후, .c로 끝나는 파일로 소스 코드를 저장해야 한다. 그리고 컴파일(clang 컴파일러로) 해야한다.컴파일이란, 소스 코드를 일련의 0과 1 들로 이루어진 오브젝트 코드로 전환해 주는 것. 소스 코드가 오브젝트로 코드로 변환되면, 컴퓨터가 이해하고
합볍 정렬은 원소가 한개가 될때까지 반으로 나누다가 다시 합쳐나가며 정렬하는 방식이다. 재귀적으로 구현된다.합병 정렬의 시간 복잡도는 Ο(nlogn)이다. -> 성능이 우수한 대신 메모리를 희생참고https://velog.io/write?id=e7e9f595
자료가 정렬된 부분과 정렬되지 않은 부분으로 나누어진다. 정렬되지 않은 부분의 자료가 정렬된 부분의 자리로 삽입되는 형태의 정렬 방법삽입 정렬은 특정 실행단계에서, 어떤 원소가 정렬된 배열 내에 자리를 찾았다고 해서 그것이 최종적인 제자리라는 보장은 없다. 다음 단계가
코드 실행 전, 컴파일 타임에 소스 코드 전체를 한번에 기계어로 변환 후 실행실행 파일 생성컴파일 단계와 실행 단계가 분리실행시에는 컴파일 과정을 거치지 않고 실행만 하면 되므로 코드 실행 속도가 빠르다단, 프로젝트의 규모가 클 경우 컴파일 시간이 오래 걸릴 수 있다는