분류 전체보기
-
Browser Security (CORS, XSS, CSRF)concept/server 2020. 5. 24. 22:40
브라우저는 다양한 공격을 받을 수 있다. CORS (Cross-Origin Resource Sharing) https://developer.mozilla.org/ko/docs/Web/HTTP/CORS Cross-Origin Resource Sharing (교차출처자원을 공유한다.) 보안적인 이유로, 브라우저는 스크립트 내에서 시작한 cross-origin HTTP request 를 제한합니다. 즉, 이 API를 사용하는 웹 애플리케이션은 자신의 출처와 동일한 리소스만 불러올 수 있으며, 다른 출처의 리소스를 불러오려면 그 출처에서 올바른 CORS 헤더를 포함한 응답을 반환해야 합니다. => 웹 애플리케이션의 사용자를 보호하기 위한 브라우저만의 자발적인 보안조치 브라우저간의 데이터를 주고받는 과정에서 도메..
-
이 문제들을 다 풀면 http 정복!problem 2020. 5. 24. 17:03
Q. HTTP에 대한 다음 설명 중 옳지 않은 것은? A 모든 HTTP 요청은 header와 body를 갖는다. B 클라이언트와 서버 간 요청-응답이 이루어지는 과정이다. C 브라우저와 서버가 통신할 수 있도록 만들어 주는 여러 프로토콜 가운데 한 종류다. D 서버가 처리할 수 없는 요청의 경우, 400번대 status code를 반환한다. E 서버는 클라이언트의 요청에 대해 무조건 응답을 돌려 주어야 한다. 더보기 answer A 서버가 처리할 수 없는 요청의 경우, 400번대 status code를 반환한다. D 모든 HTTP 요청은 header와 body를 갖는다. (POST만 가진다) Q. 아래의 HTTP 메시지에 대한 설명으로 잘못된 것은 무엇일까요? A HTTP Response다. B POST..
-
이 문제들을 다 풀면 웹 아키텍쳐 정복!problem 2020. 5. 24. 16:36
출처: 코드스테이츠 Q. 웹 아키텍쳐 전반을 간단히 설명하고자 합니다. 다음 문장에서 빈 칸에 들어갈 키워드를 알맞게 나열하면? - 클라이언트는 인터넷에 연결된 사용자의 디바이스, 또는 웹에 접근할 수 있는 소프트웨어를 뜻한다. 대표적인 예로 [A]가 있는데, [A]는 HTML, CSS, JavaScript 등으로 작성된 코드를 내부 엔진으로 해독하여 사용자가 쉽게 이해할 수 있는 형태의 컨텐츠로 보여주는 역할을 한다. - 서버는 클라이언트가 어떤 자원을 요청하면 해당 요청을 적절하게 처리하는 역할을 한다. 클라이언트는 서버의 자원을 어떻게 사용할 수 있는지 명시해 둔 인터페이스 [B]에 따라 요청을 전송한다. - 이렇게 클라이언트와 서버가 서로 요청과 응답을 주고받을 수 있는 것은 [C]라는 통신 규약..
-
브라우저, 서버, API, HTTP, Ajax 개념 정리concept/server 2020. 5. 24. 16:33
출처 : 코드스테이츠 서버에 들어가기 앞서 API와 UI의 개념을 알고 넘어가자. API (Application Programming Interface) - 프로그래밍 되어 있는 애플리케이션과 의사소통 가능한 매개체 UI (User Interface) -유저와 의사소통 가능한 매개체 여기서 Interface를 한 마디로 말하자면, 의사소통이 가능하도록 만들어진 매개체(접점)이다! 즉 UI라는 것은 일반인들이 휴대폰, 컴퓨터를 접할 때 가장 많이 접하는 부분이다. 보기 좋게 직관적으로 구성되어 있는 웹사이트에서 클릭할 수 있는 버튼들과 입력할 수 있는 창이 바로 UI의 예라고 볼 수 있다. 그리고 그 일반인들이 UI를 사용할 수 있게 만들어 주는 개발자들이 접하는 것이 바로 API이다. UI를 만들기 위해..
-
Simple Git Command 정리concept/CLI, git hub 2020. 5. 17. 13:56
출처 : 코드스테이츠 git init : git 저장소를 초기화( 생성 ) 합니다. git status : 저장소의 상태를 확인합니다. git add '파일' : 해당 파일을 staging area에 추가합니다. Tip* git add . 을 사용하면 수정한 모든 file 을 추가합니다. !! 무조건 좋은 방법이 아닙니다. !! git commit -m '커밋 메시지' : staging area에서 local repo로 최종적으로 짧은 메시지를 포함해 저장합니다. git clone '저장소url' : 해당 url의 원격저장소를 clone하여 local 환경에 추가합니다. git remote add '저장소별칭 저장소url' : 로컬 저장소와 원격 저장소를 연결합니다. git remote -v : 원격 저..
-
time complexity (시간 복잡도)concept/data structure 2020. 5. 16. 00:29
참고 : 코드스테이츠 이머시브 강의 complexity analysis (복잡도분석) : 알고리즘이 그것을 푸는데 있어서 시간과 공간을 얼마나 차지하는지 나타내는 지표 시간과 공간이 무한정으로 있다면? 알파고는 만들기 쉽다. 플레이 가능한 모든 가짓수를 계산하면 됨 그렇지만 시간과 공간이 어마어마하게 필요하겠지? 바둑판은 19x19 = 381가지 플레이 무한정의 경우의 수가 나올 수 있기 때문이다!!! 그렇기 때문에 시간복잡도를 고려해서 메모리를 적게 쓰는 코드를 쓰는 것이 중요하다는 것을 알고 포스팅을 시작해본다. 시간과 배열이 주어졌다. 여기서 두 수의 가장 큰 차이를 구하라. 주어진 배열 : [2, 5, …, 16] 첫번째 방법 모든 숫자를 비교한다. 2, 5, 6, ... 이렇게 계산했을 때 시간..
-
이 문제들을 다 풀면 Inheritance pattern 정복!problem 2020. 5. 12. 12:42
Q1. 방법 1 과 방법 2 의 차이는 무엇인가요? 간단하게 서술해주세요. 더보기 방법 1 Student.prototype을 Person.prototype으로 재할당해주는 것(덮어씌워져서 Student의 속성이 사라진다.) 자식의 메소드가 바뀌면 부모의 메소드, 연결된 모든 메소드의 값이 바뀌게 된다. 방법 2 Student.prototype이 Person.prototype을 상속받을 수 있게 만들어주는 것 Person 프로토타입을 복사해서 넣어주는 것 Q2. 🤯 다음 코드의 결과는 무엇인가요? A "hello, world" B TypeError C function () { console.log("hello, world") 더보기 answer "hello, world" Q3. 다음 코드의 결과는 무엇인가..
-
codestates immersive course - 3주차studying coding 2020. 5. 11. 09:57
이머시브 코스 3주차가 되며 느낀 점. 프리코스때는 남는 시간을 활용해서 두번 세번 풀면서 완벽하게 하고 넘어가려고 노력했는데 절대적인 시간을 바꿀 수 없기 때문에 이머시브에서는 그게 불가능하다는게 몸소 느껴진다. 이것은 부트캠프니까 모든 것을 완벽하게 하고 넘어가야겠다는 마음을 버리기 이 스프린트에서 어떤 것은 꼭 알고가야하는지 어떤 것을 배웠는지만 생각하며 못끝낸 스프린트는 깨끗하게 잊고 다음 스프린트에 집중할 것