본문 바로가기

Computer Science7

[CS] Network Connection : Bridged와 NAT의 차이 Network Connection 설정 원격 서버에 톰캣 서버를 배포하려고 했다. 그전에, Virtual Machine Settings에서 Bridged로 설정했을때는 원격 서버에서 문제가 없었으나, putty를 사용해서 원격으로 접속하려고 했을때는 에러가 계속해서 발생했다. 따라서, 우선 Bridged 방식과 NAT 방식의 차이에 대해서만 알고 넘어가고자 한다. (참고한 블로그이다. https://m.blog.naver.com/a5341663/221764145616 ) Bridged: 물리적인 네트워크 인터페이스(랜선 등)에 연결되어 있어야 한다 문제는, Bridged 방식은 VM이 물리적인 네트워크 인터페이스에 직접 연결되어 있을때 사용하는 방식이다. 이는 랜선을 사용하여 호스트 컴퓨터와 물리적인 네.. 2023. 4. 6.
[CS] URI과 URL의 차이 URI 특정 리소스를 식별하는 통합 자원 식별자((Uniform Resource Identifier)를 의미하며, 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스다. URL 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브셋이다. 실제 네트워크상에서 URL와 URL을 예시는 아래와 같다. 두 주소는 모두 index.html을 가르키고 있다. 첫번째 주소는 웹 서버의 실제 파일 위치를 나타내는 주소이므로 URI이면서 URL이다. 두번째 주소는 index 라는 리소스가 웹 서버에 존재하지 않으므로 URL은 아니다. 하지먼 서버 내부에서 이를 처리하여 결국 index.html을 가르키기 때문에 URI라고 볼 수 있다... 2023. 3. 16.
[CS] HTTP 웹 서버는 어떻게 동작할까? HTTP의 통신 규약 웹 클라이언트(대부분 웹 브라우저)는 웹 서버와 데이터를 주고 받기 위해 HTTP라는 서로 간에 약속된 규약을 따른다. 웹 클라이언트가 웹 서버에 요청을 보내기 위한 규약은 아래와 같다. 요청 데이터의 첫 번째 라인은 요청 라인(Request Line), 두 번째 라인부터 빈 공백 문자열 라인까지 요청 헤더(Request Header), 빈 공백 문자열 다음부터 본문(Request Body) 데이터가 전송된다. 모든 HTTP 요청에 대해 요청 라인, 요청 헤더, 빈 공백 문자열은 필수이고, 요청 본문은 필수가 아니다. 자, 이제 하나씩 뜯어보자. 요청 라인(Request Line) 요청 데이터의 첫 번째 라인은 요청 라인(Request Line)이라고 부른다. 요청 라인은 "HTTP.. 2023. 3. 10.
[CS] TCP 연결이라는 착각 / 3-way-handshake 3 Way-Handshake 전송제어 프로토콜(TCP)에서 통신을 하는, 연결을 위해 주로하는 방법론이다. 서로 연결이 잘 되어있는지 확인하는 과정/방식이다. Client와 Sever에서 주고받는 데이터의 단위는 Segment 이다. 위 그림을 통해 알 수 있듯이 클라이언트가 하나의 데이터를 Server측으로 보내는데 이는 Segment이다. 또한, flag가 Syn(1000) 로 set 된 Segment이다. Client에서 데이터를 보내기 전부터, Sever측에서는 계속 Listen 하며, Segment가 오면 '누가 나랑 통신하자고 연락이 왔네?' 라고 판단한다. Sever 측에서는 응답을 잘 받았다는 의미로 받은 시퀀스넘버에 +1을 해서 1001번과 자신의 시퀀스넘버 4000번을 보낸다. Clie.. 2023. 2. 24.
[CS] 컴퓨터의 데이터 / 비트(bit)와 바이트(bite) / 2진수와 10진수 / binary 비트(bit)와 바이트(bite) 우리가 사용하는 모든 데이터는 컴퓨터 내부에서 0과 1로 이루어져 있습니다. 그 이유는, 컴퓨터 내부를 구성하는 반도체가 데이터를 0과 1로만 표현할 수 있기 때문입니다. 집에서 사용하는 전구를 예로 들어보겠습니다. 전구는 불이 켜지는 경우와 꺼지는 경우, 두 가지 밖에 없습니다. 이와 같이 0 또는 1로 표현할 수 있는 최소 단위를 비트(bit)라고 하며, 8비트가 모이면 1바이트(byte)가 됩니다. 2진수와 10진수 우리는 일상 생활에서 사용하는 숫자는 0부터 9까지 한 자릿수이고, 10부터는 두 자릿수가 됩니다. 이를 10진수라고 합니다. 하지만 위에서 설명한 바와 같이 컴퓨터 내부에서는 모든 데이터를 0과 1로 표현해야 합니다. 10진수를 2진수로 빠르고 쉽게 .. 2022. 10. 17.
[CS] 문자 자료형과 Java에서의 char 자료형 / 아스키 코드 / 유니코드 / UTF-8과 UTF-16의 차이점 / 왜 UTF - 8 인코딩 방식을 사용할까? 문자는 컴퓨터 내부에서 어떻게 나타내야 할까요? 이전 포스팅에서 컴퓨터는 0과 1로만 표현할 수 있다고 했으므로, 문자 역시 컴퓨터 내부에서 표현할 때 0과 1의 조합으로 나타내야 합니다. [CS] 컴퓨터의 데이터 비트(bit)와 바이트(bite) 우리가 사용하는 모든 데이터는 컴퓨터 내부에서 0과 1로 이루어져있습니다. 컴퓨터 내부를 구성하는 반도체가 데이터를 0과 1로만 표현할 수 있기 때문입니다. 집에서 사 starting-coding.tistory.com 어떤 문자를 컴퓨터 내부에서 표현하려면 특정 정수 값으로 정하자고 약속합니다. 예를 들자면 A를 얼마로 표현할 것인지 약속하는데, 이러한 코드 값을 모은 것을 '문자 세트'라고 하고 문자를 정해진 코드 값으로 변환하는 것을 '문자 인코딩(enco.. 2022. 10. 15.
[CS] 스택(Stack)과 큐(Queue)에 관해서 스택(Stack)이란 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료 구조를 말하며, 데이터를 기록하는 구조로 객체들의 집합소이다. 주요 용도는 아래와 같다. 웹 브라우저 뒤로가기 실행 취소(undo) 문자열 역순 만들기 또한, 같은 구조와 크기의 데이터를 한 방향으로만 쌓을 수 있고, top으로 정한 곳을 통해서만 접근 가능하다. 가장 최근에 삽입된 자료는 가장 위에 있는 top에 위치하고 있으며, 스택에서 자료를 삭제할 떄도 top을 통해서만 가능하다. push: 삽입하는 연산 pop, peek: 삭제하는 연산 위 사진과 같이 데이터가 순서대로 쌓이며 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조이므로 LIFO( 후입선출, Last-In-First-Out ) 구조라고 함. 큐(Queue)이란.. 2022. 9. 18.