목록대학교 (252)
SW

OSI 7 Layer 계층 1 : 물리 계층(Physical layer) 단위 - Signal 대표 장치 - Hub 계층 2 : 데이터 링크 계층(Data link layer) 단위 - frame 대표 장치 - L2 Switch 논리링크제어(LLC) 및 매체 액세스 제어(MAC) 사용 데이터 흐름 제어 전송 오류 제어기능 Link의 관리기능 신뢰도 낮은 전송로를 신뢰도 높은 전송로로 바꾸는데 사용되는 계층 ICMP 계층 3 : 네트워크 계층(Network layer) 단위 - Packet 대표 장치 - Router, L3 Switch 프로토콜 - IP, ARP, RIP, OSPF, IGRP, EIGRP, BGP, ICMP, IGMP 호스트들의 주소 체계를 결정 경로 선택 및 라우팅 기능 수행 계층 4 :..

ARP 네트워크 계층 IP주소를 물리계층에서 이용하는 하드웨어 주소로 매핑(ARP캐쉬는 영구항목이 아니다)(IP주소 -> MAC주소를 얻음 )(반대로 RARP는 MAC주소를 이용해 IP 주소를 제공) ARP캐시는 일정한 주기로 갱신되는 것이 아니라 새로운 데이터가 들어왔을 때, 중복 된 IP가 발견 되었을 때, 새로운 네트워크 하드웨어가 추가 되었을 때 갱신된다. 목적지 시스템이 32bit ip address 에 대응되는 48bit의 하드웨어 네트워크 주소를 제공/ 중복된 IP Address 할당을 찾아낸다. TCP/IP 4 Layer 1계층 네트워크계층(물리계층, 데이터링크계층) : LAN, 패킷망 2계층 인터넷 계층(네트워크계층) : IP, ARP, RARP 3계층 전송계층(전송계층) : TCP, U..

0. 제목 백준 1149 RGB거리 BOJ 1149 RGB거리 C++ 1149 RGB거리 1. 문제 https://www.acmicpc.net/problem/1149 2. 풀이 이웃끼리는 같은 색을 칠할 수 없다. RGB를 각각 0번, 1번, 2번 색이라 하겠다. 0번색을 칠하면 이웃집은 1, 2가 가능하고 1번색을 칠하면 이웃집은 0, 2가 가능하고 2번색을 칠하면 이웃집은 0, 1이 가능하다. arr[i][j]은 i번째 집에 j번 색으로 칠하는 비용이다. dp배열의 초기값으로 첫번째 집의 비용을 설정해주었다. 그 다음부터 dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + arr[i][0] 와 비슷한 방식으로 1이면 0,2, 2이면 0,1로 설정하여 실행하였다. 그렇게 마지막 N..

0. 제목 백준 11650 좌표 정렬하기 BOJ 11650 좌표 정렬하기 C++ 11650 좌표 정렬하기 1. 문제 https://www.acmicpc.net/problem/11650 2. 풀이 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표로 증가하는 순서로 정렬하는 것이다. 비교기준인 compare함수를 보면 pair로 인자들을 받는다. compare함수는 위 조건에 만족하면 true를 반환하고 아니면 false를 반환한다. 그리고 vectorv(N); 이렇게 2차원 벡터를 선언해주었는데, (N)을 빼먹으면 안된다. vectorv; 후 v.resize(N); 을 해주어도된다. resize함수는 내부용량을 딱 정해놓고 사용하는 것이다. 만약 사이즈를 10으로 해놨을 경우 무조건 사이즈는 10이..

0. 제목 백준 2751 수 정렬하기 2 BOJ 2751 수 정렬하기 2 C++ 2751 수 정렬하기 2 1. 문제 https://www.acmicpc.net/problem/2751 2. 풀이 O(N^2)인 정렬을 사용하면 안된다. 왜냐하면 수의 개수의 범위가 1,000,000까지이기 때문이다. sort는 최대 O(NlogN)이기 때문에 시간내에 정렬이 가능하다. 3. 코드 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 #include #include #include using namespace std; int main(int argc, const char * argv[]) { int N; int num; vector arr; cin..

0. 제목 백준 2667 단지번호붙이기 BOJ 2667 단지번호붙이기 C++ 2667 단지번호붙이기 1. 문제 https://www.acmicpc.net/problem/2667 2. 풀이 미로찾기와 비슷한 문제이다. 먼저 dx, dy는 좌,우,상,하 순으로 움직일 수 있도록 좌표설정을 한 배열이다. 이 문제에서 주의할 점이 입력을 받을 때 문자열로 받아야 한다는 것이다. 문자열로 받은 후 한글자마다 숫자로 만들어주었다. dfs함수를 보면 탐색을 할 때마다 cnt를 1씩 증가시켜준다. 그 후 visited의 원소를 true로 바꿔주고 반복문을 실시하게 된다. 이 반복문은 좌,우,상,하로 탐색을 실시하게 해주며 만약 좌표가 0보다 작아지거나 N보다 같거나 커지면 즉, 범위를 벗어나게 되면 건너뛰게 된다. 범..

0. 제목 백준 9466 텀 프로젝트 BOJ 9466 텀 프로젝트 C++ 9466 텀 프로젝트 1. 문제 https://www.acmicpc.net/problem/9466 2. 풀이 문제에서 프로젝트를 함께 하고 싶은 학생을 단 한 명만 선택할 수 있다고 하였다. 그렇기 때문에 vector를 이용할 필요가 없고 connect라는 배열을 선언해서 해결이 가능하다. connect[2] = 3; 의 의미는 2번 학생이 3번 학생을 가리키고 있다는 것이다. done은 이미 방문하였고 더 이상 볼 필요가 없는 점들을 표시하는 배열이다. visited는 방문 여부를 체크하는 배열이다. 먼저 여기서 dfs 함수는 사이클을 체크하는 함수로 쓰인다. 이 함수에 대해 설명해보면 다음과 같다. 처음에 방문하므로 visite..

0. 주소 문자열과 요청 파라미터 웹 사이트에 접속하기 위한 사이트 주소 정보는 노드에서 URL 객체로 만들 수 있다. 노드는 주소 문자열을 받으면 어디까지가 사이트 주소인지, 어떤 내용이 요청 파라미터인지 구별하도록 url 모듈이 있다. https://www.google.co.kr/?abcd=abc 라는 주소 문자열이 있다고 가정해보자. 노드는 URL객체로 만든다. protocol: 'https' host: 'www.google.co.kr' query: 'abcd=abc' 1. 주소 문자열을 URL 객체로 변환하기 parse() : 주소 문자열을 파싱하여 URL 객체를 만들어 준다. format() : URL 객체를 주소 문자열로 변환한다. url 모듈을 사용하기 위해 require() 메소드를 호출 ..

0. 노드란? 노드를 만든 이유는 그 당시 웹 서버에 파일을 업로드 할 때, 업로드가 완료되기 전까지 웹 서버에서 데이터를 조회한다던가 하는 등의 다른 작업을 할 수 없었다. 이 문제를 해결하기 위해 만든 새로운 서버 개발 도구가 노드이다. 웹 브라우저를 통해 내 PC에 있는 문서 파일 하나를 업로드 하고 싶다면 먼저 웹 서버에 업로드를 요청해야 한다. 이때 웹 서버에는 파일 업로드 기능을 담당하는 핸들러(Handler)하나를 만들어 둔다. 비동기 입출력 방식을 적용하였다. 프로그램에서 해당 파일의 내용을 처리할 수 있는 시점이 되면 콜백 함수가 호출된다. 자바스크립트에서는 변수에 함수를 할당할 수 있다. 따라서 변수에 할당된 함수를 다른 함수의 파라미터로 전달할 수 있다. 이렇게 파라미터로 전달된 함..

0. 서버 동작 방식 프로토콜이란 데이터를 서로 어떤 형태로 주고받을 것인지를 정한 것으로, 간단한 데이터의 형태이다. 웹브라우저에서 HTTP로 요청한 데이터를 받은 웹 서버는 필요한 작업을 수행한 후 HTTP로 응답을 보낸다. 웹 브라우저에서 볼 수 있는 웹 문서는 보통 HTML, CSS, JS를 이용해 만든 것이다. 스마트폰과 같은 모바일 단말에서는 웹 문서를 웹 서버가 아닌 단말 내부에 저장해 두었다가 화면에 띄운 후 웹 서버로 필요한 데이터만 요청하는 방식을 사용하기도 한다. 이때 에이잭스(Ajax)방식으로 데이터만 받아오는 경우가 많다. 이렇게 하면 매번 웹 문서를 가져오지 않고 필요한 데이터만 가져온 후 화면을 부분적으로 갱신할 수 있기 때문에 화면 처리 속도가 빨라지는 장점이 생긴다. 에이잭..