1. 서론 보통 다른 글에서 보면 HTTP의 역사부터 설명을 하던데, 딱히 내가 들었을 때는 기억에 남는 게 없어서 이번 글에서는 HTTP 특징만 설명할 예정이다. 서론이니 딴 소리를 아주 잠깐만 하자면.. 스프링이라는 이름의 유래는 이전에 Java EE(엔터프라이즈 에디션)의 스펙을 구현한 EJB가 기술의 복잡도가 증가해서 성능이 느렸던 것을 탈피하여, EJB 시절을 “겨울”에 빗대어 겨울 후의 “봄”으로 새로운 시작한다는 것을 의미하는 스프링(봄)이 되었다고 한다. 2. 이 모든 게 HTTP 최근 HTTP의 중요도가 갈수록 높아지고 있다. 정확히 말하자면, 거의 대부분을 HTTP 메시지에 담아 전송하고 있는데 예를 들어 HTML, JSON, 이미지, 영상, 파일뿐만 아니라 서버 간 데이터를 주고받을 ..
1. 서론 저번 학기 모바일 스튜디오 수업 때 안드로이드 앱을 하나 만든 적이 있는데, 거기서 URI를 파싱 해서 이미지를 참 많이도 불러왔었다. 그땐 URI가 비트맵처럼 이미지와 관련된 무언가? 일 거라고만 생각했지 막상 찾아볼 생각을 안 했는데, 이번에 URI에 대해 알고는 조금 놀랐다. 이 글은 간단한 내용이지만 나의 무지를 반성하고자 넣었다. 2. URI(i) URL이 아니라 URI이다. URI는 인터넷 자원을 나타내는 고유 식별자로 풀 네임은 Uniform Resource Identifier이다. 단어를 천천히 해석해보면 다음과 같다. Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원. URI로 식별할 수 있는 모든 자원을 의미한다. Identifier : 다른 항목과 구..
1. 글을 내리기 전에.. 우리가 HTTP를 배워보기 전에, 정말 얕은 네트워크 지식들을 알아볼 것이다. 제목은 토막 상식이라 적었지만, 반 토막의 반 토막의 반 토막의 반 토막.. 일지 모른다. 따라서 이전에 네트워크를 공부하신 분들이라면 이번 장은 스킵하셔도 좋다. 복습하실 분들 & 처음인 분들은 아래 목차를 참고 바란다. 2) 인터넷과 네트워크 프로토콜 3) 인터넷 프로토콜 5 계층 4) TCP와 UDP 5) IP : Internet Protocol 6) DNS 7) PORT 2. 인터넷과 네트워크 프로토콜 2.1 인터넷이란? 인터넷은 "수많은 네트워크들을 연결하는 네트워크"라는 의미에서부터 시작되었으며 클라이언트와 서버가 있고, TCP/IP라는 기본 프로토콜을 통해 제공되고 있다. 2.2 인터넷의..
내부 슬롯과 내부 메서드 앞으로 나올 프로퍼티 어트리뷰트를 이해하기 위하여 내부 슬롯과 내부 메서드 개념에 대해 알아보자 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 pseudo property, pseudo method이다. 내부 슬롯과 내부 메서드는 ECMAScript 사양에 정의된 대로 구현되어 자바스크립트 엔진에서 실제로 동작하지만 개발자가 직접 접근할 수 있도록 외부로 공개된 객체의 프로퍼티는 아니다. 즉, 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 내부 로직이므로 원칙적으로 직접 접근하거나 호출할 수 있는 방법을 제공하지 않는다. 단, 일부 내부 슬롯과 내부 메서드에 한하여 간접적으로 접근할 수 있는 수단을 제공하기는 한..
1. 이번 장을 시작하며.. 오랜만에 기초 개념에 대한 정리 글을 쓰는 것 같다. 방학을 시작하며 야심차게 노답 스터디(여기 블로그 이름..)에 들어왔지만,, 벌려놓고 수습이 안 되는 알고리즘 동아리 스터디와 교내 대회 개최 준비, 대회 연습, 스프링 공부..로 인해 속으로 공부 못하는 변명만 늘어놓게 되는 것 같다고 생각이 들 찰나, 우리 스터디장님께서 글을 혼자 20개 넘게 쓴 걸 보고.. 이대로는 쫓겨나겠구나!라는 느낌이 들어 최근 인프런에서 완강한 HTTP 강의를 정리해보는 시간을 갖기 위해 글을 적고 있다. 따라서 위 제목이 달려있는 글들은 모두 이 강의를 듣고 내 방식대로 축약 해석하여 적는 것임을 알아주길 바란다. 2. 공부해나갈 것들 이번에 공부할 것들은 강의 초반에 강사님께서 말씀하신 대..
let, const키워드와 블록 레벨 스코프 1. var 키워드로 선언한 변수의 문제점 1.1. 변수 중복 선언 허용 var키워드로 선언한 변수는 중복 선언이 가능하다. var x = 1; var y = 1; var x = 100 // 중복 선언 var y; // 중복 선언 console.log(x); // 100 console.log(y); // 1 위의 예는 var키워드로 선언한 변수는 중복 선언이 가능하다는 것을 보여준다. 신기하게도, var y; 가 실행되어 undefined가 있을 것 같지만, 아니다. 이는 중복 선언에 있어서 초기화문이 있는 변수 선언문은 자바스크립트 엔진에 의해 var이 없는 것처럼 동작하지만, 초기화 문이 없는 선언문은 무시된다. 이 때 에러는 없다. var x = 1; v..
전역 변수의 문제점 전역 변수의 사용은 어느 프로그래밍 언어이든지 위험하다. 이번 편에서는 자바스크립트에서 발생하는 전역 변수의 문제점들을 살펴보도록 하자 1. 변수의 생명 주기 변수는 선언에 의해 생성되고, 할당을 통해 값을 갖는다. 그리고 소멸하게 된다. 그렇다면 언제 소멸하고 생겨날까?? 지역 변수의 경우에는 함수가 실행되면 선언이 되고, 런타임에 값이 할당된다. 또한 함수가 종료되면 지역 변수가 사라지게 된다. function foo(){ var x = "local"; console.log(x); return x; } foo(); console.log(x) // error 이전에 변수 선언의 실행 시점과 변수 호이스팅에 관해 말하였는데, 이때 변수 선언은 선언문이 어디에 있던지 상관없이 가장 먼저..
스코프(scope) 1. 스코프란? scope는 자바스크립트 뿐만 아니라, 여러 프로그래밍 언어에서 사용되는 개념이다. 그런데 특별히 자바스크립트에서 유별난 특징이 있어 잘 배워두어야 한다. var, let 또는 const 키워드로 선언한 변수의 스코프는 다르게 동작한다. 즉, 스코프는 변수 그리고 함수와 깊은 관련이 있다. 함수는 함수 몸체 내부에서만 참조할 수 있고, 함수 몸체 외부에서 함수 내부의 변수를 사용하는 것은 불가능하다. 이것은 매개변수를 참조할 수 있는 유효범위, 즉 매개변수의 스코프가 함수 몸체 내부로 한정되기 때문이다. function add(x,y){ console.log(x,y); return x+y; } add(2,5); console.log(x,y)// error 이처럼 함수 ..