■ 온라인에서의 사용자 경험 향상 인터넷 쇼핑몰을 이용하다보면 접속만 했는데도 로그인이 되는 경우가 있다. 심지어 아직 로그인을 하지 않았는데도 이전에 접속해서 쇼핑 카트에 담아두었던 물건 목록들이 그대로 남아있을 때도 있다. 로그인한 상태라면 로그인 했었던 정보를 가지고 쇼핑 카트의 정보를 남겨놓을 수도 있겠지만 로그인을 하지도 않았는데 어떻게 이런 일이 가능한 것일까? 앞에서 공부한 HTTP의 특성을 살펴보면 더더욱 이해가 되지 않는다. 왜냐하면 HTTP는 클라이언트의 상태를 저장하지 않는 stateless(무상태) 성질을 갖기 때문이다. 그래서 HTTP는 기본적으로 이러한 상태 저장 기능을 제공하지 않기 때문에 쿠키(Cookies)라는 것이 새로 개발되었다. ■ 상태를 저장하는 쿠키(Cookies)..
■ HTTP Message HTTP 메시지(Message)는 클라이언트 request와 서버 response 2가지로 이루어지는데 구성되는 형태는 위 그림과 같다. 처음에 위치한 method는 특정한 명령어에 해당한다. 가령 GET이라는 method는 클라이언트가 어떤 데이터를 가지고 싶을 때 사용한다. 다른 method들에 대해서는 뒤에서 다시 알아보자. method 다음에는 URL을 작성해서 어떤 오브젝트에 대한 요청인지 적게 되어있다. 그 뒤에는 HTTP 버전을 작성하는데 1.1버전인지 2버전인지 등 어떤 버전의 HTTP를 사용하고 있는지 적는 곳이다. 다음 줄의 header lines에서는 어떤 host에게서 데이터를 가져오고 싶은가를 적는다. header field name에는 어떤 정보의 종류..
● 1990~2000 미 국방성은 단순 군사 작전에만 알파넷을 사용하는 것이 아니라 무기 개발 연구에도 사용하기 위해 과학자들이 사용할 수 있는 연구용 목적으로도 필요성을 느꼈다. 그래서 알파넷을 밀 넷(MILNET, Military Net)이라는 군사형 네트워크와 NSFNET(National Science Foundation)이라는 과학자들이 사용하는 네트워크로 나누었다. 하지만 이 둘 모두 일반인들이 사용하는 네트워크는 아니었다. 그러다 이 인터넷을 일반인들도 상업적으로 사용하면 좋겠다는 이야기가 나오기 시작했는데 이 2개의 네트워크 중 군사적 목적인 밀 넷이 아닌 NSFNET을 개방하기로 하였다. 이와 비슷한 시기의 90년대 초반에 유럽 물리학 연구소의 팀 버너스 리(Tim Berners-Lee)라..
■ 인터넷의 역사 ● 1961~1972 본격적으로 인터넷이 서비스 되기 전에 사람들은 어떤 식으로 멀리 있는 컴퓨터에 데이터를 전달할 것인지 연구했다. 처음에는 전화망이 있었고 이 전화망은 회선 교환(circuit switching) 방식으로 데이터를 전달했었다. 하지만 회선 교환 방식으로는 많은 양의 데이터를 많은 수의 사용자들에게 서비스 할 수 없을 것이라고 생각해 패킷 교환망이 개발되었다. 패킷 교환망의 이론적 기반은 Leonard Kleinrock 교수가 개발하였고, 미 국방성의 ARPAnet(Advanced Research Project Agency)라는 기관에서 알파넷이라는 이름의 네트워크를 개발하게 되었다. 1972년에 처음으로 알파넷 데모(demo)를 했었는데 이 때는 단 4개의 노드만으로..
■ 네트워크 보안 네트워크 보안 연구는 크게 둘로 나누어 볼 수 있다. 첫번째는 어떤 공격들이 존재하는가를 살펴보는 것이다. 해커들이 어떤 식으로 컴퓨터 네트워크를 공격하는 지에 대한 연구이다. 두번째는 그러한 공격들을 어떻게 막을 것인지, 그리고 공격을 막을 네트워크 아키텍처(architecture)를 어떻게 설계할 것인지 연구한다. 인터넷은 초기에 상호 신뢰할 수 있는 사람들만 접속하는 네트워크라고 가정하고 만들어졌었다. 그래서 사용자의 신분이 신뢰할 수 있는 사람들로 구성되어 있기 때문에 보안에 대한 고려를 하지 못한 상태로 만들어진 것이다. 그러나 인터넷이 대중에게 공개되고 불특정다수의 해커들이 네트워크에 공격을 가하자 그제서야 인터넷 프로토콜의 설계자들이 어떻게 공격을 막을 지 궁리한 것이 네트..
■ OSI 7계층과 캡슐화 ● 왜 레이어(Layer, 계층)를 만들었는가? 레이어를 만들어서 각 서비스를 모듈화 해두면 편리한 점이 있다. 기능별로 나누어져 있기 때문에 기술자들은 자신이 담당한 기능의 모듈만 잘 개발하고 수정하면 된다. 예를 들어 기존에 피지컬 레이어(Physical layer)에서 twisted pair cable를 이용해서 서비스를 하였으나 fiber cable을 사용한 새로운 서비스로 교체할 경우, 바로 위의 링크 레이어(Link layer)를 수정할 필요 없이 피지컬 레이어만 수정하면 되는 것이다. 레이어 사이의 인터페이스만 잘 지켜주면 다른 레이어에 변경 사항이 생기더라도 전체적인 서비스에는 영향이 없다. 하지만 레이어를 만드는 것이 비효율적일 수도 있다. 각 모듈들이 단독으로..
■ 데이터 전송 경로 추적 ● Traceroute 명령어의 목적과 원리 사용자가 어떤 목적지까지 데이터를 전달하는데 중간에 데이터가 분실되어 데이터가 어떤 길을 거쳐 가길래 이런 문제가 발생하는지 알고 싶을 수가 있다. 그럴 때 쓸 수 있는 명령어가 Traceroute이다. Traceroute는 명령어를 실행하면 첫번째 라우터에 갔다가 돌아온다. 돌아올 때 첫번째 라우터의 이름과 갔다오는 데 걸린 시간이 얼마나 되는지 알려준다. 그리고 첫번째 probe 메시지가 갔다가 돌아오고 나면 두번째 probe 메세지가 1hop, 2hop 갔다가 돌아오고, 세번째 probe 메시지는 1hop, 2hop, 3hop 갔다가 돌아오면서 돌아올 때마다 어떤 라우터에서 돌아왔는지 해당 라우터에 대한 정보를 가지고 온다. 이..
■ 인터넷 구조 ● 누가 인터넷을 책임지는가? 인터넷은 모두가 관여를 하지만 아무도 관리 및 책임을 지지 않는다. 대신 각각의 독립적인 네트워크들이 있고 이 네트워크들은 지켜야 되는 프로토콜이 있다. 이 프로토콜들을 지키면 해당 네트워크에 참여할 수 있다. Access ISP에 대해서 알아보자. ISP는 Internet Service Provider라고 해서 각각 end host들에게 인터넷 접속점을 제공해주는 역할을 한다. 인터넷을 접속할 수 있도록 접속하는 방식을 제공해주며 홈 네트워크나 회사, 학교에 이런 네트워크들이 있을 수 있다. 이런 Access ISP들은 자기들끼리 연결이 되고 끝에는 인터넷에 접속이 되는 형태로 이어진다. 그런데 인터넷은 중앙 집중형으로 구성되어 한 곳으로 모이게끔 되어있을..
- Total
- Today
- Yesterday
- It
- 알고리즘
- 프로그래밍
- C++
- 컴퓨터과학과
- 자바
- 컴퓨터이론
- TCP
- 서블릿
- 코드 리뷰
- 웹개발
- 컴퓨터
- Servlet
- 컴퓨터과학
- 백준 풀이
- 컴퓨터공학과
- 인터넷
- java
- 네트워크
- 백준
- 컴퓨터 네트워크
- 컴퓨터공학
- 코딩테스트
- 코딩
- 알파넷
- 알고리즘 문제
- jsp
- C언어
- 코딩 테스트
- 컴퓨터기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |