본문 바로가기

728x90

분류 전체보기

(104)
문자열을 배열로 만들기 split 문자열을 배열로 만들기 위해선, 구분자가 필요하다. 예로 "가 나 다 라" 라는 문자열을 ["가", "나", "다", "라"] 의 배열로 만들고 싶다면, 각 글자를 자르는 구분자인 " "(공백)으로 나누면 된다. 또 "가,나,다,라"의 경우 구분자로서 ,(콤마)를 사용하면 된다.Python에서는 split(_) 을 통해 문자열을 배열로 만들 수 있다. arr = input().split(' ') print(arr) # 가 나 다 라 # ['가', '나', '다', '라']
두 정수형 배열을 10진수 값으로 더하기 def arrayToIntValue(arr): mutableScale = 1 result = 0 for value in reversed(arr): result += value * mutableScale mutableScale *= 10 return result def addToArray(arr1, arr2): return arrayToIntValue(arr1) + arrayToIntValue(arr2) print(addToArray([1,2,5,5] , [3,4,5])) # 출력결과 1600 처음에는 배열의 숫자를 하나씩 빼서 문자열로 붙였다가 StandardLibrary에서 제공해줄지도 모르는 캐스팅을 사용해서 숫자로 만들어야 하나 싶었는데, 조금 더 생각해보니 언젠가 웹서칭하다가 봤던 문제였던걸 떠올..
파이썬 List 관련 1. 역순으로 뒤집기 arr = [1,2,3,4,5] arr.reverse() print(arr) # 출력 결과 : [5,4,3,2,1] 2. 역순으로 뒤집힌 값 가져오기 reversed() reversed()는 배열을 거꾸로 뒤집어 버리는게 아닌, 뒤집힌 값을 가져오는 것이기 때문에 원본인 arr은 그대로 [1,2,3,4,5]를 유지한다. # reversed(_)를 사용해서 배열을 뒤에서 부터 출력 가능! arr = [1,2,3,4,5] print(reversed(arr)) # 출력 결과 : 54321 3.값 오름차순 정렬! arr = [4,5,3,1,2] arr.sort() #출력결과 [1,2,3,4,5] 4.값 내림차순 정렬! arr = [4,5,3,1,2] arr.sort(reverse=True)..
[Network] DNS서버의 구조(이름해석) 기본적으로 컴퓨터(서버)에는 IP주소가 있어서 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있다. 예를 들어 웹 브라우저의 주소 창에 URL을 집적 입력하면 웹 사이트가 보이게 된다. 여기서 잠깐! 컴퓨터(서버)에 접속하려면 IP주소를 입력해야 하는데 여기서는 https://www.naerv.com 을 입력했다. IP주소가 아닌데도 웹 사이트가 보이게 되는것이다. DNS는 바로 URL을 IP주소로 변환하는 시스템이다. IP주소는 222.235... 같이 숫자로 구성되어있다. 예를 들어 웹 페이지를 방문하기 위해 www.naver.com대신 위와 같은 숫자로 구성된 IP주소를 입력해야한다면 사람들이 기억하기 쉬울까 ? 그렇지 않을것이다. 이런 이유로 https://www.naver.com 과 같은..
[Network] OSI 모델의 계층에서 사용되는 프로토콜과 기술 응용 계층 HTTP DNS FTP SMTP POP3 기타 프로토콜 전송 계층 TCP UDP 네트워크 계층 IP 등 데이터 링크 계층 이더넷 물리 계층 전기 신호 변환 용어 설명: 2021.08.12 - [Network] - [Network] 용어 정리
[Network] 응용계층 응용계층은 애플리케이션과 데이터를 주고받기 위해 필요한 계층이다. 물리 계층, 데이터링크 계층, 네트워크 계층, 전송 계층에 의해서 상대방에게 데이터를 정확하게 전달할 수 있게 되었다. 이번엔 응용계층에서 동작하는 애플리케이션에 대해 살펴본다. 응용계층은 5계층의 세션 계층과 6계층의 표현 계층을 포함하는것으로 생각해보자. 응용계층에서는 클라이언트의 요청을 전달하기 위해 통신대상(서버 등)이 이해할 수 있는 메시지(데이터)로 변환하고 전송계층으로 전달하 는 역할을 한다. 또한 클라이언트 측 애플리케이션( 웹브라우저, 메일 프로그램 등)이 서버 측 애플리케이션( 웹 서버 프로그램, 메일 서버 프로그램) 과 통신하려면 응용 계층의 프로토콜을 사용해야 한다. 주요 프로토콜을 아래와 같다. 프로토콜 설명 HTT..
[Network] 애플리케이션과 포트번호 포트번호(Port Number) ? OSI의 전송계층에선 전송된 데이터의 목적지가 어떤 애플리케이션( 웹 브라우저나 메일 프로그램 등)인지 구분하게 해준다. 데이터를 전송하고 받을 때 데이터가 정확한 목적지를 찾도록 해주는 것이 PortNumber다. TCP헤더의 구성 에는 데이터를 주고 받는 출발지와 목적지의 포트번호가 포함된다. 포트번호는 0부터 65535번 까지 사용할 수 있다. 이 중 0~1023번 포트는 주요 프로토콜이 사용하도록 예약되어 있다. 이러한 포트를 잘 알려진 포트(well-known ports)라고 한다. 애플리케이션 포트번호 SSH 22 SMTP 25 DNS 53 HTTP 80 PP3 110 HTTPS 443
[Network] TCP의 구조 이전 글 에서 연결형 통신의 프로토콜로 TCP가 있다고 했다. 이 포스팅에선 전송계층에서 신뢰할 수 있는 정확한 통신을 제공하는 TCP 프로토콜의 구조에 대해 알아보자. 데이터를 보내며 OSI의 각 계층을 지날때마다 데이터엔 헤더가 붙는다. TCP로 전송할때 붙이는 헤더를 TCP헤더라고 하고 이 TCP헤더가 붙은 데이터를 세그먼트(segment)라고 한다. TCP헤더의 11개 정보 1. 출발지 포트번호 16비트 2. 목적지 포트번호 16비트 3. 일련번호 32비트 4. 확인 응답번호 32비트 5. 헤더길이 4비트 6. 예약 영역 6비트 7. 코드 비트 6비트 8. 윈도우 크기 16비트 9. 체크섬 16비트 10. 긴급 포인터 16비트 11.옵션 많다. 많아... 연결형 통신(TCP 통신)은 꼼꼼하게 상대..
[Network] 전송 계층의 역할 물리계층, 데이터 링크 계층, 네트워크 계층의 3계층이 있으면 목적지로 데이터를 보낼 수 있다. 하지만 데이터가 손상되거나 유실되더라도 이들 계층에서는 아무것도 해 주지 않는다. OSI모델의 전송계층은 목적지로 신뢰할 수 있는 데이터를 전달 하기 위해 필요하다. 전송계층에는 오류를 점검하는 기능이 있다. 오류가 발생하면 데이터를 재전송하도록 요청한다. 네트워크 계층을 목적지까지 데이터를 전달하고 , 전송계층은 데이터가 제대로 도착했는지 확인하는 것이다. 전송계층의 역할은 더 있다. 컴퓨터가 데이터를 받아도 어떤 애플리케이션에 전달해야 하는지 모르면 곤란하다. 그래서 전송계층은 해당 데이터가 어떤 애플리케이션에서 사용하는 데이터인지 식별하는 기능도 있다. 연결형 통신과 비연결형 통신 전송 계층의 특징을 간..
[Network] 라우터의 구조 라우터를 이용하여 하나의 네트워크를 서로 다른 네트워크로 분리할 수 있다. 반면 스위치나 허브는 네트워크의 모든 컴퓨터가 동일한 네트워크에 속하게 된다. 라우터로 네트워크가 분리된 상태에서 컴퓨터1이 다른 네트워크로 접속하려면 라우터의 IP주소를 설정해야 한다. 이것은 네트워크의 출입구를 설정하는 것으로 기본 게이트웨이(default gateway)라고 한다. 컴퓨터 1은 다른 네트워크로 데이터를 보낼 때 어디로 전송해야 하는지 모른다. 그래서 네트워크의 출입구를 지정하고 일단은 라우터로 데이터를 전송한다. 컴퓨터의 네트워크를 설정하는 화면이 있다. window10의 설정화면이다. '자동으로 IP주소 받기'에 체크되어 있으면 네트워크 외부에 접속할 때 사용되는 기본 게이트웨이가 자동으로 설정된다. 이제 ..

728x90