반응형

전체 글 216

[ TCP/IP ] 트랜스포트층

트랜스포트층 트랜스포트층은 애플리케이션층과 네트워크칭의 중개역할을한다. 데이터가 전달되다가 문제가 발생하게되면 트랜스포트층은 통신 서비스에 맞는방식으로 문제를 처리한다. 트랜스포트층에는 신뢰를 중요시하는 TCP와 속도를 중요시하는 UDP가 존재한다. TCP는 그래서 확실히 상대에게 데이터를 제공하고싶을 때 사용하고, UDP는 실패해도 크게 상관없을 때 사용한다. 포트 번호 포트번호는 0~65535번까지 있다. 그 중에서도 0~1023번까지는 통신 서비스마다 미리 예약되어있고 그 외에는 사용자가 임의로 설정할 수 있다. 하지만 이때 통신하는 컴퓨터 간에 어떤 포트번호를 사용할지에 대한 인식이 통일되어있어야한다. TCP 프로토콜 TCP는 데이터를 확실히 전달하기 위해 수신측과 일 대 일로 통신한다. 이런 통..

공부/TCP IP 2023.02.13

[ 머신러닝 프로그램 ] k-최근접 이웃 분류 알고리즘 ver2 - 테스트 세트 추가

버전 1의 머신러닝 프로그램은 훈련 데이터 세트와 테스트 데이터 세트가 다르지 않았다. 이는 시험 보기전 답을 다 알려준 상태라고 볼 수 있다..! 테스트 세트 설정 보통은 훈련 데이터 세트에서 일부를 테스트 데이터로 활용한다. 근데 여기서 주의할 점은 훈련데이터에 한 종류의 데이터만 편향되면 안된다는 것이다. 전에 했던 데이터들을 다시 떠올려보면 도미가 35개 빙어가 14개 있었다. 여기서 도미 35개를 훈련세트로 하고 빙어 14개를 테스트세트로 하면 정확도는 0이 나올 것이다. 이를 샘플링 편향이라고 한다. 이를 방지하려면 훈련세트와 테스트세트를 잘 섞어줘야한다. 넘파이라는 라이브러리를 사용하면 이러한 작업을 편리하게 할 수 있다. 넘파이의 함수들을 사용하려면 리스트들을 넘파이배열로 바꿔줘야한다. 그..

공부/머신러닝 2023.02.11

[ TCP/IP ] 애플리케이션층

애플리케이션층 애플리케이션 픙은 TCP/IP의 5계층 중에서 가장 위에 위치한다. 컴퓨터끼리 주고받는 것들은 사용자가 이용할 수 있는 통신서비스로 만드는 역할을한다. 애플리케이션층에서는 통신서비스를 실현하기 때문에 송수신측이라는 말보다는 클라이언트와 서버의 개념을 갖는다. 어플리케이션층에서의 프로토콜은 어떻게 하면 효율적일까를 고려하여 만들어졌다. 에플리케이션 헤더 에플리케이션 층에서 추가되는 헤더를 애플리케이션 헤더라고 한다. 여기에는 '요청과 응답'에 관한 정보가 들어있다. 아래층으로 가면 데이터가 하나로 묶여버리기 때문에 애플리케이션층끼리만 해석할 수 있다. 프로토콜에 따라 텍스트 기반(영어, 숫자)으로 작성되기도 하고, 바이너리 기반으로 작성되기도 한다. 클라이언트가 서버에 서비스를 요청할 때는 ..

공부/TCP IP 2023.02.11

[ 머신러닝 프로그램 ] k-최근접 이웃 분류 알고리즘 ver1

생선 도미와 빙어를 구분하는 머신러닝을 만들어보자! 산점도 그리기 생선 도미의 데이터를 가져와서 산점도로 확인해보자! 파이썬에서 과학계산용 그래프를 그리는 대표적인 패키지는 matplotlib이다. matplotlib 안에 산점도를 그리는 함수 scatter()함수를 이용하여 도미의 길이와 무게에 대한 산점도를 그려보자! import matplotlib.pyplot as plt #도미의 정보 bream_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0, 35.0, 35.0, 35.0,..

공부/머신러닝 2023.02.10

[ 웹 ] 인생사진 : 스파르타코딩클럽 무료강의 2월 월간코딩

스파르타코딩클럽은 컴퓨터관련 종사자라면 모두 알고있는 코딩 교육 플랫폼이다! 이번에 2월 무료강의로 인생사진을 만들어볼 수 있다고 해서 들어보게 되었다. 들어가보니 무료로 강의를 볼 수 있고 기간내에 완강할시 평생소유할 수 있었다! 강의도 10분 이내의 강의 여러개로 다 합쳐도 1시간정도밖에 아되었다. 원래 강의를 오래 잘 못 보는 사람이었는데 강의 길이를 보니 너무 길지 않고 강의자료도 너무 잘 되어있어 들어보고싶은 의지가 생겼다! 강의자료는 notion으로 만들어져 있었는데, 디자인과 설명이 재치있어 지루하지 않았다. 코드도 다 삽입되어있어 타이핑이 너무 느린사람들은 너무 딜레이되지 않게 공부를 진행 할 수 있을 것 같다! 1차로 html파일만 완성했을 때다! html로는 형식만 잡을 수 있다! 강의..

프로젝트 2023.02.10

[ TCP/IP ] 통신 서비스와 프로토콜

서버와 클라이언트 서비스를 제공하는 측을 서버, 서비스를 받는 측을 클라이언트라고한다. 이 둘이 통신하는 과정은 아래와 같다. 클라이언트가 받고싶은 서비스를 주문한다. 서비스를 담당하는 서버에게 클라이언트의 요청을 전달한다. 클라이언트의 주문대로 서비스를 제공한다. URL 네트워크 상에 있는 특정 데이터 등을 표시할 때 사용하는 것이 URL이다. URL은 스킴명, 도메인, 포트번호(생략가능), 경로, 파일명으로 이루어져있다. 스킴명은 아래과 같은 종류가 있다. http - WWW 웹서비스 ftp - 파일전송 mailto - 전자메일 telnet - 원격 로그인 URL안의 도메인을 좀더 알아보자. 도메인은 ccTLD와 gTLD 두가지 종류가 있다. ccTLD는 서버명, 조직명, 조직속성, 국가코드로 이루어..

공부/TCP IP 2023.02.09

[ C++ ] #10026 적록색약

영역찾기는 전에도 해봤지만, 이번에는 각 색의 영역을 찾아야한다..ㅠ 그리고 두케이스를 봐야한다. 먼저 나는 color배열랑 Ncolor배열응 만들어 색약이 아닌 사람과 색약인 사람의 배열을 분리했다. Ncolor에는 G와 R이 있다면 1을 넣었다. 그리고 color배열에서 RGB로 세번 영역을 찾고 Ncolor배열에서 1로 영역을 찾아야겠다고 생각했다. 한참 코드를 짜다가 생각났는데 배열이 하나만 있어도 충분히 가능할 것 같았다. BFS조건만 좀 수정하면되니까... 근데 이미 코드를 너무 많이 짜서 킵고잉하자..! (뒤늦게 생각난건데 배열하나로 진행하려면 방문했는지 확인하는 배열이 필요하기때문이 메모리는 똑같을 것 같다 ㅎㅎ) 이야!! 성공했다! 짜잘짜잘한 오류가 있었지만 전에 비해 훨씬 빠르게 해결한..

BOJ/[ BOJ ] C++ 2023.02.09

[ spring ] 예제 - 회원관리 : 스프링DB 접근기술

서버를 껐다 켜도 데이터들이 저장되기 위해서는 데이터베이스를 활용해야한다. 먼저 가장 간단한 H2데이터베이스를 활용해보자 실무에서는 mySQL이나 오라클을 많이 사용한다. H2는 교육용으로 사용하기 좋은 가벼운 프로그램이다. 1. H2 데이터베이스 설치 나는 1.4.200 의 window버전을 다운받았다! 모두다 다운을 받고 consol를 실행시켜 보면 아래와 같은 화면이 뜬다! 경로를 잘 확인하고 >>연결

[ 운영체제 ] 교착상태

1. 교착상태 1.1 식사하는 철학자 문제 식사하는 철학자 문제는 교착상태를 설명하는 아주 유명한 문제이다. 동그란 원탁에 다섯명의 철학자가 앉아 있다. 앞에는 음식이 놓여있고 음식은 포크가 두개 있어야 먹을 수 있다. 철학자는 왼쪽포크를 집고 오른쪽 포크를 집고 두개를 집어서 일정시간 식사를 한다. 다먹으면 오른쪽을 내려놓고 왼쪽을 내려놓는다. 이때, 모든 철학자가 동시에 왼쪽 포크를 집으면 아무도 식사할 수 없다. 모두 오른쪽 포크가 생기기를 기다리기만 할 것이다. 하지만 오른쪽 포크는 영영 생기지 않는다. 이렇게 일어나지 않을 사건을 기다리며 진행이 멈춰버리는 현상을 교착상태라고 한다. 일명 deadlock!! 교착상태는 다양한 상황에서 발생한다. 예를 들어 뮤텍스락에서 프로세스A는 lock1를 잠..

공부/운영체제 2023.02.08

[ 운영체제 ] 프로세스 동기화

1. 동기화 1.1 동기화의 의미 동시에 실행되는 많은 프로세스들은 데이터를 주고받으며 실행될 수 있다. 이때의 올바른 실행을 위해서는 동기화가 필요하다. 프로세스 세계에서 동기화란 올바른 순서대로 실행되고 한 자원에 동시에 접근하지 않는 것이다. 특정 조건이 완료되어야 실행을 이어나가는 프로세스들이 있기 때문에 프로세스에서의 실행순서는 중요하다. 또, 한 프로세스가 연산을 다 끝내기 전에 접근해서 다른 연산을 하면 연산이 꼬여서 원하는 결과가 나오지 않을 수 있다. 1.2 생산자와 소비자 문제 왜 한 자원에 동시에 접근하지 않는 것이 중요한지 더 알아보자. 생산자와 소비자는 '총합' 이라는 데이터를 공유한다고 해보자. 생산자는 버퍼에 데이터를 넣고 총합을 1 증가 시키고, 소비자는 버퍼에서 물건을 빼고..

공부/운영체제 2023.02.08
반응형