드디어 프록시를 배운다. 프록시는 중재자다. 이 장에서는 프락시 기능에 대한 특별한 지원, 그리고 프락시 서버를 사용할 때 보게 될 몇 가지 교묘한 동작을 포함하여 HTTP 프락시 서버의 모든 것에 대해 이야기 한다고 한다. 다음과 같은 것을 학습한다고 한다. - HTTP 프락시와 웹 게이트웨이를 비교하고 HTTP 프락시가 어떻게 배치되는지 그림으로 보여주면서 설명한다. - 몇 가지 유용한 활용방법을 보여준다. - 프락시가 실제 네트워크에 어떻게 배치되어 있는지 그리고 트래픽이 어떻게 프락시 서버에 가게 되는지 설명한다. - 브라우저에서 프락시를 사용하려면 어떻게 설정해야 하는지 보여준다. - HTTP 프락시 요청이 서버 요청과 어떻게 다른지, 그리고 프락시가 어떻게 브라우저의 동작을 미묘하게 바꾸는지 ..
Unified Modeling Language의 약자로 객체들간의 관계를 표현하는데 사용한다고 한다. 대충 UML은 이렇게 생겼다. 이런 그림을 보면 개발하는데 편할거라 생각이 든다. 물론 UML자체는 의사소통의 도구이기 때문에 개발의 용의성과는 거리가 멀다고한다. 그렇다고는 하지만 이렇게 UML을 그려놓으면 핵심을 파악 할 수 있기 때문에 좋다고 생각이 든다. 이곳에서는 짤막하게 UML에 대해 설명할 예정이다. 다음과 같은 코드가 있다고 해보자. * 아래 코드는 자바로 배우는 리펙토링 입문에 있는 코드입니다. interface Executable { abstract void execute(); } abstract class ParentClass { Something _fild1; static int F..
드디어 다시 시작한다.!!! 이 번장에서 배우는 것은 다음과 같다고 한다. - 여러 종류의 소프트웨어 및 하드웨어 웹서버에 대해 조사한다. - HTTP 통신을 진단해주는 간단한 웹 서버를 펄로 작성해본다. - 어떻게 웹 서버가 HTTP 트랜잭션을 처리하는지 단계별로 설명한다. 난 자바로 개발하는데 펄이 이라니... 감사합니다 다체로운 웹 서버 웹 서버는 다양한 크기가 존재한다. 웹 서버는 웹 서버 소프트웨어와 웹페이지 제공에 특화된 장비 양쪽 모두 가리킨다. 하지만, 결국 클라이언트에게 HTTP 요청을 전달하는 것은 변함이 없다. 웹 서버 구현 웹 서버는 자신이 제공하는 리소스를 관리하고 웹 서버를 설정, 통제, 확장하기 위한 기능을 제공한다. 웹 서버는 운영체제와 TCP 커넥션 관리에 대한 책임을 나눠..
HTTP 명세는 HTTP 메시지에 대해서 자세히 설명하고 있지만, HTTP 커넥션과 HTTP 메시지 흐름에 대해서는 충분히 설명하고 있다고 하지 않는다. 이번 기회에 제대로 공부해보자. - HTTP는 어떻게 TCP 커넥션을 사용하는가 - TCP 커넥션의 지연, 병목, 막힘 - 병렬 커넥션, keep-alive 커넥션, 커넥션 파이프라인을 활용한 HTTP의 최적화 - 커넥션 관리를 위해 따라야할 규칙 TCP 커넥션 - 세계 어디에 존재하든 클라이언트 애플리케이션은 서버 애플리케이션과 TCP/IP 커넥션을 맺을 수 있다. - 이렇게 전달 받은 메시지들은 손실 또는 손상되거나 순서가 바뀌지 않고 안전하게 전달된다. 1. 사용자는 url을 입력한다. 2. 브라우저는 위 url에서 호스트명을 추출한다.. 3. 브..
"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 이쯤되면 나랑 SQL과 뭔 연관이 있나 생각이 든다. 3월인가 4월인가 러닝 SQL이라는 책을 학습한 적이 있었는데.. 처음 이 책을 봤을 때의 느낌은 생각보다 두껍다라는 느낌을 먼저 받게 되었다. 왜냐하면 전 작인 러닝 SQL은 굉장히 얇얐기 때문이다.(내가 리뷰하했던 책) 백엔드를 공부하면서 SQL의 중요성은 백번을 말해도 아깝지가 않는다고 생각한다. 하지만 SQL의 가장 큰 특징 중 하나가 간결함에 있다. 근데 우리는 이 간결함에 속아 SQL공부를 소홀히 하고 있다. 분명히 나는 SQL잘 알고 있다고 생각하고 있는데 이상하게도 INSERT를 해야 할때마다 INSERT가 어떻게 작성이 되어지는지 검색하고 있다. 업친데 덮친격으로 ORM이라..
이번 파트에서는 HTTP 메시지를 어떻게 작성하는지 알아본다고 한다. 메소드는 어떤것이 있으며... 상태코드는 어떤것들이 있으며... 근데 솔직히 너무 많은데 다 작성할 수 있을지 걱정 된다. 책에서는 이번 장을 읽고 나면 나만의 HTTP 애플리케이션을 만들기 위해 필요한 부분들을 알게 될거라 한다 메시지가 어떻게 흘러가는가 HTTP 메시지의 세 부분(시작줄,헤더,개체 본문)| 요청과 응답 메시지의 차이 요청 메시지가 지원하는 여러 기능(메서드)들 응답 메시지가 반환하는 여러 상태 코드들 여러 HTTP 헤더들은 무슨 일을 하는가 메시지의 흐름 aws를 하다보면 인바운드, 아웃바운드 같은 용어가 등장하는데 뭔지 몰라서 aws에서 하라는데로 했던걸로 기억한다. 이들은 메시지의 방향을 뜻한다고 한다. 이번 기..
저번 장에서 HTTP가 어떤것인지 대략적으로 살펴 보았습니다. 이번 장부터는 HTTP에 대해 본격적으로 공부하는 시간을 가지겠습니다. URL은 과연 무엇일까요? 인터넷의 리소스입니다. 엄밀히 따지면 리소스를 위치를 통해 검색하는 것을 말하지만... 어차피 리소스를 찾는다는건 결국 리소스이기때문에 URL은 리소스라고 이해 해도 큰 문제는 없을 겁니다. 다만 URL자체 리소스라는 얘기는 아닙니다. 결과론적으로 리소스라는 얘기지... 아무튼 이번장에서 학습할 내용들은 다음과 같습니다. 1. URL 문법, 여러 URL 컴포넌트가 어떤 의미를 가지며 무엇을 수행하는지 2. 여러 웹클라이언트가 지원하는 상대 URL과 확장 URL 같은 단축 URL에 대해서 3. URL의 인코딩과 문자 규칙 4. 여러 인터넷 정보 시..
"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 현재 나는 스프링으로 개발을 하고 있다. 우연히 이 책을 보게 되었는데 Node라는 것이 어떤 것인지 대략적으로 감을 잡을 수 있었다. 이 책의 가장 큰 특징으로는 Node, express에 대한 설명 뿐만 아니라 git이용 방법같은것을 소개해줬다. 솔직히 나는 처음에 이게 왜 필요한지 생각했다. 이거 추가할 시간에 Node나 express의 비중을 조금만 늘리던가 아니면 추가하지 않고 가격을 낮추는것도 좋다고 생각했다. 하지만 생각을 해보니 Node로 웹공부를 시작하는 사람들이 있을지도 모르는데 이런 세세한 것들이 추가함으로 인해 바이블 느낌을 줄 수 있을지도 모른다. 바이블 보다 다른 단어가 더 어울릴것 같은데... 아무튼 나는 이 책을 ..
트랜잭션에 대해 고민해보자. 애초에 트랜잭션이라는 건 다음과 같습니다. 모든 작업을 성공하거나 실패하는 기능이라고 하는데... SQL에서 트랜잭션이라고 하면 한개라도 실패를 하면 모든 sql은 실패가 떨어진다는 이야기인것 같습니다. 그림을 보면 sql쿼리 3개가 존재한다는 것을 알 수 있습니다. 트랜잭션의 정의에 따른다면, 첫 번째 sql 은 성공 이지만 두 번째 sql이 실패라면 데이터베이스 상에는 아무것도 추가되지 않습니다. 왜냐하면 실패했기 때문이죠. 당연한 이야기죠. 이런 경우는 단일 사용자일때 발생되는 현상입니다. 그렇다면 사용자가 늘어나면 어떻게 될까요? 간단히 그림을 그리면 이 모든 sql문이 통과해야 합니다. 결국 a라는 유저가 sql 테스트에 성공한다면 b라는 유저도 sql 테스트도 성공..
오늘 부터 나는 http에 대해 공부할 예정이다. [HTTP 완벽 가이드]라는 책을 가지고 공부를 할 예정이며, 책을 가지고 공부하는 것을 더불어 조금 더 자세하게 공부할 예정이다. 1장당 일주일동안 공부할 예정이다. 책 한권을 보는데 5달 정도 걸릴 것같다. * 이글에 나오는 비유는 전적으로 저한테 맞춰있는 비유이기 때문에 이해가 되지 않을 가능성이 있습니다. 저는 이에 대해 책임을 지지 않습니다. 저는 공부목적으로 작성하는거지 기술 소개 목적으로 작성하는 것이 아님을 명시합니다. 내가 책으로만 공부해봤는데 그렇게 까지 도움은 되지 않았다. 왜냐하면 책 이외의 내용은 학습하기 어려웠기 때문이다. 하지만 책은 베이스로 두고, 이것을 첨언할 수 있는 내용들을 인터넷에서 검색해서 추가할 예정이다. http를..
1일차에는 방향키와 한단어씩 이동하는 방법에 대해 학습하였다. 그러면 저번에 학습한 내용을 복습해 보자. h 입니다. w는 단어 한칸씩 W는 공백단위로 한칸씩 이고 숫자를 추가하면 그 만큼 이동합니다. 하다 2개 틀렸네요.. 더 있나.. 지금 생각난는건 이것 밖에 없군요. 문장 이동 아무튼 문장 이동은 그 문장의 처음과 끝 그리고 공백을 제외한 처음으로 이동하는 것을 말합니다. 0번을 누르게 되면 가장 맨 처음로 이동합니다. 그리고 $은 그 문장의 마지막으로 이동하고 ^같은 경우는 공백을 제외한 가장 맨 앞으로 이동합니다. 그리고 그 문장에서 f를 누르고 옮기고 싶은 문자를 누르게 되면 f + k를 입력해보겠습니다. 대문자 F + k는 무엇일까요? 안되네.... 아무튼 쩝 있던것 같은데... 아닌가 기분..