컴퓨터 사이언스

컴퓨터 사이언스/Network

Ajax 정리

✏️ 개요 Ajax는 그 자체가 별도의 새로운 언어는 아니다. HTML, CSS, 자바스크립트, DOM, XML 등 기존에 사용되던 여러 기술을 함께 사용하는 새로운 개발 기법이다. Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다. Ajax는 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있게 해준다. ✍️ 정의 Ajax란 Asynchronous JavaScript and XML의 약자이다. 백그라운드 영역에서 서버와 통신하는데 다음과 같은 다양한 형태의 데이터를 주고받을 수 있다. JSON XML HTML 텍스트 파일 한계 Ajax는 클라이언트가 서버에 데이터를 요청하는 클라이언트 풀링(client pooling) ..

컴퓨터 사이언스/개발 상식

크롬 개발자도구 이용한 디버깅

✏️ Eelments 화면에 관련한 HTML, CSS를 고쳐보고 싶을 때 HTML과 CSS는 소스 코드 가기전에 Elements 창에서 수정한다. (debug) ✏️ Console Javascript와 관련된 내용을 보고싶을 때 ✏️ Network api 요청에 관련한 에러를 보고싶을 때

컴퓨터 사이언스/Network

동기 통신과 비동기 통신

❓ 동기 통신, 비동기 통신 동기 통신 : 서버 컴퓨터가 작업이 끝날 때까지 기다리는 통신 동기 실행 방식은 등록 요청을 하게 되면 등록 과정이 모두 완료될 때까지 기다려준 후 게시글 불러오기 과정이 실행되기 때문에 문제없이 작업이 가능하다. 비동기 통신 : 서버 컴퓨터가 작업이 끝날 때까지 기다리지 않는 통신 서버에 요청(등록, 수정, 삭제 등)이 저장될 때까지 기다리지 않고 다른 작업을 진행한다. 비동기 통신은 요청들 사이에 서로 기다려 줄 필요가 없는 경우, 여러 가지 요청을 동시에 처리해 줄 때 사용된다. 훨씬 더 효율적이므로, 기본적으로 비동기로 작동하는 것이 좋다. 🔎 REST-API 에서 동기/비동기 실행 순수 자바스크립트에서는 동기적으로 작동한다. axios(rest-api) 등 외부 라이..

컴퓨터 사이언스/개발 상식

API에 관하여

❓ API란? API란 HTTP 요청을 Back-end 컴퓨터에 보냈을때 실행되는 백엔드 기능이다. 프론트엔드에서 백엔드로 요청을 보낼때, 여러개의 HTTP 요청이 보내지고, 각각의 요청마다 API가 필요하다. 프론트엔드에서 API에 요청할 때 보내는 데이터가 API 함수로 들어갈 인자이다. API에서 응답으로 받게되는 데이터가 API함수의 반환값이다. 🆚 API 종류 ( rest-API vs graphql-API ) API의 종류는 크게 rest-API, graphql-API 2가지 있다. graphql은 페이스북에서 발생하는 수많은 데이터를 처리하기 위해 페이스북 개발팀에서 만들었으며, facebook, airbnb, github 등 유명한 사이트에서 사용중인 통신 방법이다. 그럼에도 불구하고 res..

컴퓨터 사이언스/개발 상식

Git 기초 사용법

📌 git branch 사용하기 git branch란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다. 이렇게 만들어진 브랜치는 다른 브랜치와 병합(Merge)함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있다. 📌 branch 변경 및 사용하기 % git checkout -b myfolder % git branch main * myfolder % git status On branch myfolder Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git rest..

컴퓨터 사이언스/개발 상식

Git stash

❓ Git stash 란? git pull 명령어를 사용하여, 원격 리포지토리의 최신본을 로컬 리포지토리와 동기화 해야할 때, 로컬에서 아직 마무리되지 않은 작업을 그대로 commit - push 할 수 없는 상황이 생긴다. 이때 '임시저장' 용도로 stash가 필요하게 된다. stash는 계속 진행할수록 stack의 원리로 더 아래 순번으로 가게되며, 더 큰 index 숫자를 갖게 된다. stash는 apply했다고 해서 자동으로 지워지지 않는다. 그래서 stash를 가지고 온 후에도 계속해서 stash list에 남아있는 것을 확인할 수 있다. 따라서 stash apply해서 가지고 온 작업들을 마무리하여 commit했다면, stash drop 혹은 stash clear로 지워주는 것이 좋다. 🔎 G..

컴퓨터 사이언스/Algorithm

Greedy

✍️ 정의 각 단계마다 가장 좋은 것만 선택하여 해답을 구한다. 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중에서 최선의 선택지라고 가정하는 알고리즘이다. 지금 선택이 앞으로 남은 선택에 어떤 영향을 끼치질 고려하지 않는다. 탐욕법을 적용하기 위해서 지역적으로 최적이면서 전역적으로 최적이어야 한다. 단계마다 하는 선택이 지역적으로는 최선이지만, 모든 단계를 거쳐 최종적으로 나온 해답이 최적이란 보장은 없다. 🔎 적용 조건 greedy choice property 앞의 선택이 이후 선택에 영향을 주지 않는다. 각 단계에서 가장 좋은 것을 선택하는 행위가 최적해로 가는 길이다. optimal substructure 문제의 최적해가 부분 문제에서도 최적해이다. 전체 문제 안에 여러 단계가 있고..

컴퓨터 사이언스/Algorithm

BFS / DFS

✍️ 정의 BFS 란? Breadth-First Search 시작 정점 방문 후 가까운 정점을 우선 방문한다. 넓게 탐색하는 방법 두 노드 사이의 최단 거리 및 최단 경로를 구할 때 자주 사용한다. 큐를 이용해서 구현 장점 최적해 찾음을 보장한다. (미로찾기 등 최단거리 구하기) 검색대상의 규모가 크지 않고, 검색 시작 지점으로부터 원하는 대상이 별로 멀지 않을 때. 단점 경로의 특징을 가지지 못한다. DFS 란? Depth-First Search 시작 정점 방문 후에 다음 분기로 넘어가기 전 해당 분기를 완벽하게 탐색하는 방식 스택 또는 재귀함수로 구현 장점 최선의 경우 빠르게 해를 찾을 수 있다. 검색 대상 그래프가 정말 크다면 DFS를 고려 단점 찾은 해가 최적의 해가 아닐 가능성이 있다. ⏰ 시간..

컴퓨터 사이언스/Algorithm

이분 탐색

✍️ 정의 이진 탐색, Binary Search 라고도 한다. 순차적 탐색보다 빠른 탐색을 위해 나온 탐색 방법으로 실제로 이분 탐색의 시간복잡도가 순차적 탐색보다 낮다. 🆚 순차적 탐색 vs 이분 탐색 순차적 탐색 정렬된 배열 안에서 특정 원소를 찾기 위해 인덱스 0부터 차례로 탐색 이분 탐색 정렬된 배열 안에서 특정 원소를 찾을 때, 인덱스 left와 right의 중간값과 비교 중간값과 비교해서 찾는 원소가 아니면 인덱스 left 또는 right를 다시 정해준다. 인덱스 left와 right를 정할 때마다 탐색 범위는 반으로 줄어든다. 🔎 이분 탐색 방법 처음 범위는 인덱스 left = 0, right = 끝, mid = (left + right) / 2 mid의 값과 찾는 원소를 비교한다. mid ..

컴퓨터 사이언스/Network

HTTP 헤더 중 X-Requested-With에 대해

관습적으로 Javascript를 이용한 네트워크 요청의 경우, HTTP 헤더 중 X-Requested-With 값을 XMLHttpRequest 로 설정하여 전달한다. jquery의 ajax 구문을 이용할 땐는 이 헤더가 기본적으로 설정되는듯 하다. 따라서 request.getHeader("X-Requested-With") == "XMLHttpRequest" 의 경우에는 ajax라고 생각해야 될 듯 하다. 인용 https://yiunsr.tistory.com/875 HTTP 헤더 중 X-Requested-With 에 대해 파이썬 flask 웹 프레임워크 버전을 2.0 대로 업데이트 하는 테스트를 진행하였다. 기존에는 request.is_xhr 이라고 해서 ajax 로 전달되는 것인지 아니면 http 에서 ..

kimjingyu
'컴퓨터 사이언스' 카테고리의 글 목록 (8 Page)