ko.wikipedia.org/wiki/YAML YAML - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. YAML은 XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식이다. 2001년에 클라크 에반스가 ko.wikipedia.org YAML이라는 이름은 "YAML은 마크업 언어가 아니다(YAML, Ain't Markup Language, "야믈"이라고 보통 읽고, yml이라고도 쓴다.)라는 재귀적인 이름에서 유래되었다. '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식이다. 오늘날 XML과 JSON이 데이터 직렬화에 주로 쓰이기 시작하면서, 많은 사람들이 YAML을 '가벼운 마크업 언어'로..

요즘 Servlet과 JSP를 배우고 있는데, 이해할 겸 내 나름대로 내용을 정리해본다. (혹시 정정할 내용이 있다면 댓글 부탁드립니다.) Servlet Servlet은 JSP가 나오기 전에 웹페이지(HTML)를 동적으로 생성하는 기술로 제공되었다. Servlet은 자바 클래스의 일종으로, Servlet 클래스를 선언할 땐 Servlet 인터페이스를 구현하는 방법과 HttpServlet 클래스를 상속하는 방법이 있는데, 전자는 복잡하므로 후자를 선호한다. Servlet은 자바의 여러 장점들을 누릴 수 있지만 HTML, CSS, 웹디자인과 함께 사용하기엔 많은 단점이 있다. 그래서 1999년에 Sun에서는 JSP(JavaServer Pages)를 내놓았다. Servlet의 경우, 웹페이지의 form에서 들..

듣기 시작한 게 엄청 오래됐는데 드디어 오늘 끝났다. 수료증에 9시간이라고 적혀있지만 실제로는 책과 같이 공부하느라 오래 걸렸다. 매일 한 패턴씩 강의듣고, 책내용 정리했었는데 오늘로 그것도 끝이구나. 물론 끝났다고 정말 끝은 아니지만. 원래도 디자인패턴을 배워야겠구나 생각했었는데, 첫 팀 프로젝트를 하고 더더욱 느꼈다. 그저 기능 구현에만 급급하면 안되고, 유지보수까지 생각해서 코드를 작성해야한다는 걸. 이 강의를 들으면서 어떻게 코드에서 군더더기를 덜어내는지, 작성되어있는 코드를 건드리지 않고 새로운 기능을 어떻게 추가하는지 등을 배웠다. 물론 내가 이 강의를 들었다고 해서 디자인패턴을 잘 활용하게 됐다거나 그런 건 아니다. 디자인패턴은 공부한 성과를 바로 얻기 힘들고, 장기적인 관점에서 공부를 해야..

요즘 내 관심사가 오로지 개발 뿐이라 SNS와 브라우저 등등의 알고리즘은 나에게 개발 관련된 컨텐츠들을 추천해주는데 어느날 이 강의 광고가 떴길래 바로 결제했다. 파이썬을 막 배운 다음, 뭔가를 만들어보고 싶어서 장고를 이용해서 웹페이지를 만들긴 했었는데, 그때 GET과 POST도 모르고 그냥 HTTP에 대한 이해가 하나도 없는 상태에서 만들어서 많이 아쉬웠었다. 이제 학원에서 본격적으로 웹 서버 수업을 들어가기 전에 HTTP프로토콜을 한 번 정리할 필요가 있었는데 마침 알고리즘이 이 강의를 추천해준 것이다! 역시 기술의 발전이란... 기본 지식이라고 되어있어서 아무래도 보조해줄 교재가 필요할 거 같아서 도 사서 수업들으면서 같이 보았다. 결과적으로 강의는 끝났는데, 책은 아직 반밖에 못 읽었다... 꼼..
ko.wikipedia.org/wiki/%EC%9D%B4%ED%95%AD_%EA%B3%84%EC%88%98ko.wikipedia.org/wiki/%EC%9D%B4%ED%95%AD_%EA%B3%84%EC%88%98 이항 계수 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 조합론에서, 이항 계수(二項係數, 영어: binomial coefficient)는 이항식을 이항 정리로 전개했을 때 각 항의 계수이며, 주어진 크기의 (순서 없는) 조합의 가짓수이다 ko.wikipedia.org 매일 매일 알고리즘 문제를 하나씩 풀고 있는데, 오늘 문제에서는 이항계수라는 개념이 나와서 정리해보려고 한다. 본 내용은 위의 링크를 토대로 학습한 내용을 정리한 것이다. 이해하기 우선 이항계수가 어떤건지 ..
Hoist는 사전상으로 "(밧줄이나 장비를 이용하여)들어[끌어]올리다"라는 의미이다. 자바스크립트에서는 모든 선언을 유효 범위의 가장 위로 끌어올리는 것을 호이스팅(Hoisting)이라고 한다. 즉, 자바스크립트에서 실행 콘텍스트가 어떻게 동작하는지에 대한 생각이다. 이는 '선언과 할당의 분리'와 동일한 의미이다. 하지만 Mozilla의 MDN 웹문서(아래의 링크)에서 확인해보면 호이스팅을 변수 및 함수 선언이 물리적으로 작성한 코드의 상단으로 옮겨지는 것은 아니라고 설명하고 있다. 변수 및 함수 선언은 컴파일 단계에서 메모리에 저장되지만, 코드에서 입력한 위치와 정확히 일치한 곳에 있다고 한다. 어떤 코드를 실행하기 전에 컴파일단계에서 변수 및 함수 선언을 메모리에 저장해두어 선언과 할당의 분리가 가능..
유클리드 호제법은 소인수분해를 하지 않고 2개의 자연수의 최대공약수를 구하는 알고리즘으로 큰 수들의 최대공약수를 구할 때 사용할 수 있다. 이해하기 두 수 a, b가 있다고 하자. a와 b는 공약수 j의 배수이므로 아래와 같다. A = 약수 j * a B = 약수 j * b A를 B로 나누면 아래와 같다. A = (B * x) + y y = A - (B * x) y = (j * a) - (j * b * x) y = j * (a - b * x) 즉, A를 B로 나눈 나머지 y는 A와 B의 공약수 j를 약수로 한다. B = j * b y = j * (a - b * x) 위처럼 b와 y의 공약수는 j이다. 즉, b와 y의 최대공약수(i)는 j와 같거나 j보다 크다. (1) B = 최대공약수 i * c y = ..