본문 바로가기

전체 글56

데이터 링크 계층, 이더넷, 충돌, MAC 주소 | 모두의 네트워크 랜에서 데이터를 주고받는 규칙 : 이더넷, 알아보자랜에서 데이터를 주고받으려면 데이터 링크 계층의 기술이 필요하다. 어떤 기술일까?응용계층  ---- 7계층표현 계층 ---- 6계층세션 계층 ---- 5계층전송 계층 ---- 4계층네트워크 계층 ---- 3계층데이터 링크 계층 ---- 2계층물리 계층 ---- 1계층먼저 데이터 링크 계층에 대해서 구체적으로 알아보자. 데이터 링크 계층네트워크 장비 간에 신호를 주고받는 규칙을 정하는 계층이다. 정상적인 데이터를 주고받으려면 데이터 링크 계층이 필요하다. 여기서 "규칙" 중 하나가 바로 "이더넷"이다. 이더넷 (Ethernet)이더넷은 허브*같은 기기로 연결된 컴퓨터끼리 데이터를 주고 받을 때 사용한다.  *허브 복습허브는 약해지거나 파형이 뭉그러진 전기 .. 2022. 4. 15.
[백준 4673번] [파이썬] 10000이하의 셀프넘버 구하기 / 코드분석 자세한 설명 정답 코드 전문# 4673# n을 d(n)의 생성자라고 하자.# 즉 d(n)은 생성자가 있는, 셀프넘버가 아닌 숫자다.natural = set(range(1, 10001)) # set안에 1부터 10000까지 숫자 생성generated = set() # 빈 set 설정for n in range(1, 10001): # 1부터 10000까지 for문 생성 for j in str(n): # d(n)을 구하기 위한 for문 n += int(j) # n(자기자신)에 각 자리수를 더해주어 d(n)을 구한다. generated.add(n) # d(n) 집어 넣기self_num = sorted(natural - generated) # 1~10000 set에서 생성자가 있는 d(n)들을 삭제하고 .. 2022. 4. 14.
물리계층, 전기 신호, 디지털 신호, 랜 카드, 케이블, 허브 | 모두의 네트워크 물리계층의 역할과 랜 카드를 알아보자전기 신호앞서 OSI 모델에 대해 배웠는데,0과 1만으로 이루어진 비트열을 전기 신호로 변환하려면 아래 표과 같이 맨 아래 계층인 물리계층의 기술이 필요하다.응용계층  ---- 7계층표현 계층 ---- 6계층세션 계층 ---- 5계층전송 계층 ---- 4계층네트워크 계층 ---- 3계층데이터 링크 계층 ---- 2계층물리 계층 ---- 1계층네트워크를 통해 데이터를 주고받을 때에는0과 1의 비트열 -> 전기신호 !!! 변환해야 한다!! 전기 신호의 종류1. 아날로그 신호   - 전화 회선, 라디오 방송에 사용되는 신호   - 물결 모양 2. 디지털 신호   - 막대 모양 데이터는 어떻게 전달되는거지...?데이터 송신 측 컴퓨터- - >전기 신호로 변환- - >- - >.. 2022. 4. 13.
프로토콜, OSI 모델, TCP/IP 모델, 캡슐화, 역캡슐화, 헤더 | 모두의 네트워크 네트워크에서 지켜야 하는 규칙프로토콜 (protocol)네트워크에서 문제없이 통신하기 위한 규칙(약속)이다.  우리가 편지를 쓸 때를 예로 들어보자.1. 편지를 쓴다2. 편지를 우체통으로 넣는다. ---> 주소를 적고 우표를 붙이는 작업이 필요3. 우편 배달부가 우체통에서 편지를 수거한다.4. 수거한 편지를 가까운 우체국으로 가져간다.5. 편지를 분류한다.6. 우편배달부가 수신처에 가까운 우체국으로 편지를 운송한다.7. 운송된 편지를 수신처의 우편함에 넣는다.8. 우편함에서 편지를 찾는다.9. 편지의 내용을 읽는다. 이러한 과정에서는 "편지를 쓰는 규칙", "편지를 보내는 규칙", "우체국의 규칙" 등 여러 규칙이 있고, 서로 영향을 주지 않는다는 특징이 있다.프로토콜은 이러한 규칙들과 비슷한 개념이다... 2022. 4. 12.
네트워크, 패킷, 비트와 바이트, 랜(LAN), 왠(WAN), 서버(server) | 모두의 네트워크 네트워크 기초네트워크컴퓨터와 컴퓨터 간 연결을 의미한다. 단 두 대만 있어도 컴퓨터 네트워크라고 할 수 있으며, 이를 통해 컴퓨터 간 필요한 데이터(정보)를 서로 주고받을 수 있다.네트워크를 통해 컴퓨터 간 데이터(파일) 전송, 웹 사이트 열람, 메일 송/수신과 같은 일을 할 수 있다.컴퓨터 한 대만 있으면 할 수 있는 일이 제한되지만, 컴퓨터가 여러 대 연결되면 다양한 일을 할 수 있다.  인터넷전 세계의 큰 네트워크부터 작은 네트워크까지 연결하는 거대한 네트워크이다. 전 세계가 네트워크로 연결되어 있기 때문에 인터넷으로 해외 웹 사이트를 볼 수 있는 것! 패킷 (packet)웹 사이트를 보는 것도 마찬가지지만, 네트워크나 인터넷에서 데이터를 주고받으려면 규칙이 있어야 한다.웹 브라우저에서 사진과 문자.. 2022. 4. 11.
[JAVA] [디버깅] / Tomcat version 8.5 only supports J2EE 1.2, 1.3, 1.4, and Java EE 어제 포스팅 했던 에러의 연장선 Run on Server에서 Add and Remove 단계를 확인했다. 프로젝트 명 jsp_web_10에서 Tomcat version 8.5 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5, 6, and 7 Web modules 이라는 에러 메세지와 함께 Configured 박스로 옮겨지지 않았다. 에러 원인 서버 버전과 Web Module 버전끼리 호환이 되지 않는 경우, 원하는 서버 버전으로 실행이 불가했다. 나는 톰캣 8.5를 다운받아 사용 중이었고, Tomcat 8.5가 Dynamic Web Module 4.0을 지원하지 않았기 때문에 발생한 오류였다. 해결 방법 첫번째 방법, Dynamic Web Module 4.0을 지원하.. 2022. 4. 8.
[JAVA] [디버깅] / 어쨌든 해결.. 했지만 세상 찝찝 나는 지금 톰캣 서버와 sql을 연결해서 JSP 웹 개발을 공부 중이다. 그러던 중, 프로젝트 하나를 war파일로 묶어 다시 열었는데, 다짜고짜 에러가..... 우리... 좋았잖아..... 자.. run하니 위 같은 상황이 나오는데... 원래는 Tomcat v8.5 Server로 Finish 버튼이 활성화되어야 한다. 뭐가 문젤까. 흠 자.. 프로젝트들을 보자. 위는 내가 공부하면서 만든 Dynamic web Project들이다. 09_1 버전을 war하여 10으로 그대로 다시 만드니, 10은 물론이고 3, 4, 5, 6, 7, 8, 9가 전부 run해도 반응이 없는 (?) 에러가 뜬다. 근데.. 09_1은 잘 된다 !? 1번 방법 상단 Project - properties - Project Facets.. 2022. 4. 7.
[JAVA] [알고리즘 문제] DFS를 이용한 미로 최단거리 구하기 문제 스틴이는 N*M 크기의 직사각형 형태의 미로에 갇혀있다. 미로에는 여러 마리의 괴물이 있어 이를 피해 탈출해야 한다. 스틴이의 위치는 (1,1)이고 미로의 출구는 (N,M)의 위치에 존재하며 한번에 한칸씩 이동할 수 있다. 이때 괴물이 있는 부분은 0으로 괴물이 없는 부분은 1로 표시되어 있다. 미로는 반드시 탈출할 수 있는 형태로 제시된다. 이때 스틴이가 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하시오. (처음과 끝 칸 포함) 입력조건 첫째 줄에 두 정수 N,M(4101010 >111111 >000001 >111111 >111111 출력 예시 >10 힌트 1.맨 처음에 (1,1)의 위치에서 시작, 시작 값은 항상 1 2. (1,1)좌표에서 상,하,좌,우로 탐색을 진행 (1,2)위치의 값을 .. 2022. 4. 6.
[JAVA] [알고리즘 문제] 버전 비교하는 프로그램 / 내 풀이, 다른 풀이 비교 문제 버전 1과 버전 2의 두 버전 번호가 주어지면 비교합니다. 버전 번호는 점 '.'으로 결합된 하나 이상의 구분된 형태로 구성됩니다. 각각의 구분된 형태는 숫자로 구성되며 선행 0을 포함할 수 있습니다. 버전 번호를 비교하려면 수정 버전을 왼쪽에서 오른쪽으로 순서대로 비교합니다. 선행 0을 무시한 정수 값을 사용하여 비교됩니다. 이것은 1과 001이 동일하다고 간주됨을 의미합니다. 버전 번호가 인덱스에서 구분된 형태로 지정하지 않으면 형태를 0으로 처리하십시오. 예를 들어 버전 1.0은 버전 1.1보다 작지만 버전 0과 버전 1은 0 버전 2, 1을 출력 - 나머지 경우는 0을 출력 예 1 입력 : versio.. 2022. 4. 5.
[JAVA] Arrays.asList 넌 누구냐 / 마침표를 기준으로 split 하기 오늘의 상황... 사용자에게 입력받고, 마침표를 기준으로 split 하여 ArrayList에 넣으려고 하는데... Arrays.asList를 사용하면 된다고? System.out.print("version1 = "); String v1 = sc.next(); System.out.print("version2 = "); String v2 = sc.next(); String[] v1_array = v1.split("."); String[] v2_array = v2.split("."); ArrayList v1_list = new ArrayList(Arrays.asList(v1_array)); ArrayList v2_list = new ArrayList(Arrays.asList(v2_array)); Arrays... 2022. 4. 4.
[JAVA][알고리즘 문제]DFS(Depth-first Search)를 활용한 얼음 틀 문제 문제 N * M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이 때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오. 입력 예시 >4 5 >00110 >00011 >11111 >00000 출력 예시 >3 DFS(Depth-first Search)란? 깊이 우선 탐색이라는 알고리즘이다. "더 나아갈 길이 보이지 않을 때까지 깊이 들어간다"를 원칙으로 한다. 그래프 내의 정점을 방문한다. 마치 미로찾기 처럼. 특징은? 자기 자신을 호출하는 순환 알고리즘이다. 트리 순회(전위, 중위, 후위 순회)는 모두 DFS의 한.. 2022. 3. 31.
[JAVA] (수정 중) 예제를 통한 클래스, 필드, 변수, 메소드 이해하기 My00P 클래스 안에 각각의 프린트 메소드를 사용했음 -> 개수가 많아진다면 변수끼리의 관계도 파악하기 어렵고 복잡해지겠죠? class Print{ public static String delimiter = ""; public static void A() { System.out.println(delimiter); System.out.println("A"); System.out.println("A"); } public static void B() { System.out.println(delimiter); System.out.println("B"); System.out.println("B"); } } public class MyOOP { public static void main(String[] args).. 2022. 3. 12.