본문 바로가기

전체 글41

[TCP] 연결 성립과 해제 3-way HandShake연결하고자 하는 두 장치(클라이언트, 서버) 간의 논리적 접속을 성립하기 위해 사용하는 연결 확인 방식TCP/IP 프로토콜을 이용해 통신하는 응용 프로그램이 정확한 전송을 보장하기 위해 데이터 전송 전에 상대 컴퓨터와 사전에 세션을 수립함TCP 연결을 초기화 할 때 사용 클라이언트가 서버에 연결 요청 (SYN)서버가 연결 허락 (SYN + ACK)클라이언트-서버 연결 설정(ACK) 4-way HandShake데이터 송수신이 완료되고 TCP 연결을 해제하는 과정세션을 종료하기 위해 수행되는 절차 클라이언트가 서버에 종료 요청(FIN)서버가 클라이언트에게 확인 메시지(ACK)를 보내고 자신의 통신이 끝날 때까지 기다림(CLOSE_WAIT)추가로 전송할 패킷이 남아있으면 이어서 전송.. 2024. 7. 1.
[TCP] TCP/IP 4계층 + MTU, MSS, PMTUD TCP/IP  4계층데이터를 보낼 때 필요한 것송신자 주소수신자 주소오류 체크 기능 데이터를 보낼 때 4계층을 통해 보냄컴퓨터 간 패킷 통신을 위해 거쳐야 하는 계층들데이터를 올바르게 보내게끔 하는 것이 TCP IP 4계층 인터넷 상에서 데이터를 주고받을 때 쓰는 독립적인 프로토콜의 집합각 계층은 독립적임인터넷을 통해 데이터를 보낼 때 주로 TCP와 IP를 사용해서 보냄  Application LayerSMTP, HTTP/HTTPS, SSH, POP3, DNS 등 Transport LayerUDP, TCP, SCTP 등 Internet LayerIPv4, IPv6 Network Access Layer이더넷, Wi-Fi 등 Application Layer (응용 계층)최상위 계층사용자와 가장 가까움사용자 .. 2024. 7. 1.
[백준 1926/자바] 그림 https://www.acmicpc.net/problem/1926    BFS 공부✨ 참고https://velog.io/@minjoott_dev/%EB%B0%B1%EC%A4%80-1926%EB%B2%88-%EA%B7%B8%EB%A6%BC-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-java  풀이BFS를 이용하여 한 점에서 시작되는 그림의 넓이 파악그림의 경계선 마주할 때까지 함수는 끝나지 않음그림 정보 저장할 2차원 boolean 배열방문 여부를 체크할 2차원 boolean 배열BFS 실행 시 사용할 queue이중 for문을 이용하여 x, y값을 확인한 뒤,해당 좌표가 도화지에서 색칠된 부분이고 아직 방문하지 않은 위치인 경우 BFS 실행 BFS 함수좌표에 방문 표시를 한 뒤 qu.. 2024. 6. 27.
[네트워크] 토폴로지 토폴로지컴퓨터 네트워크의 요소들을 물리적으로 연결해놓은 것노드와 링크가 어떻게 구성되어 있는지 나타냄 버스 토폴로지하나의 회선에 여러 개의 노드노드 추가 및 삭제가 쉬움설치 비용 적음 장점소규모 네트워크 구축이 매우 쉬움한 노드에 장애가 발생해도 다른 노드에 영향 X단점메인 링크에 많은 트래픽이 생기면 정체 현상 발생 가능성 多 (패킷 손실율 多)메인 링크가 망가지면 큰 문제 (회선 하나에 의지하기 때문) 스타 토폴로지중앙에 있는 노드를 기반으로 연결노드 추가 및 삭제가 쉬움이더넷 LAN에서 가장 널리 사용되는 물리적 토폴로지 장점중앙 노드가 아닌 한 노드에 장애가 발생해도 다른 노드에 영향 X안정성 높음중앙노드가 아닌 한 노드에 침해가 발생했을 때 다른 노드로 확장이 어려움다른 노드로 가려면 무조건 중.. 2024. 6. 26.
[네트워크] 기초 용어 및 데이터 전송 방식, 네트워크 분류 네트워크노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합노드: 서버, 라우터, 스위치 등 네트워크 장치링크(엣지): 유선 또는 무선과 같은 연결매체 (ex. 와이파이, LAN)📝 예시핸드폰으로 www.naver.com에 요청하여 화면 요청  시 해당 사이트 서버에서 응답으로 화면 전송이때 핸드폰이 노드가 됨핸드폰이라는 장치를 통해서 naver와 통신, 네이버 서버 또한 노드가 됨노드와 노드를 연결하는 매체가 링크 트래픽특정 시점에 링크 내에 흐르는 데이터의 양서버에 저장된 파일을 클라이언트가 다운로드 시 발생되는 데이터의 누적량 기본 표시 단위는 B계산 방법 = 사용한 데이터 양 * 사용 횟수ex) 10명이 10MB 크기의 파일 다운로드 ==> 100MB 📍 트래픽과 처.. 2024. 6. 26.
[CS] 디자인패턴과 라이브러리/프레임워크 디자인패턴 - 객체 간 상호관계를 통해 문제 해결 - 프레임워크, 라이브러리의 토대 (ex. sns 로그인 연동시 한 줄로 해결) - 이를 기반으로 여러 문제를 해결하는 데 있어 빠른 의사소통 가능 코드를 모두 한 파일에 넣으면 모듈화 에러 수정, 로직 변경이 어려움 규약, 전략패턴 종류 - 생성 패턴: 객체를 어떻게 만들까 - 구조 패턴: 만들어진 객체를 어떤 구조로 무엇을 만들 것인가 (프록시, 어댑터, - 행동 패턴: 객체나 클래스 간 알고리즘, 책임 할당에 관한 패턴 (이터레이터, 옵저버, 전략,  --> 이외에도 수천가지 다양한 디자인패턴이 있다. 라이브러리/프레임워크 - 공통으로 사용될 수 있는 특정한 기능들 모듈화 - 폴더명, 파일명 규칙 X / 규칙 O 라이브러리(ex. axios)는 프레.. 2024. 6. 26.
[백준 1012/자바] 유기농 배추 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 진짜 푸는 데 오래 걸렸음... 나한테 생소한 개념들이라 이번에 이거 찾아보면서 공부 많이 한 것 같다 더해야됨 아래 참고한 블로그에 설명이 너무 잘 되어있어서 도움 많이 받았다 ✨ 참고 https://lotuus.tistory.com/98 풀이 인접한 배추를 찾아 탐색해야 하므로 DFS 사용 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이므로 dx, dy를 사용 배추의 경우 0.. 2024. 3. 19.
[백준 15649/Java] N과 M(1) https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아직 백트래킹이 뭔지 잘 모르겠다. 개념은 이해했는데 이걸 코드로 어떻게 짜지 공부를 더 해야겠음 ✨ 참고 https://80000coding.oopy.io/85650ea5-e541-4b12-9b86-a958a99b7533 📌 백트래킹 한정 조건에서의 모든 경우의 수를 확인함. 해를 찾는 도중 그 경로가 해가 아닐 것 같으면 되돌아감 DFS 사용 풀이 위와 같이 각 수가 중복되지 않는 모든 경우.. 2024. 3. 11.
[백준 20920/Java] 영단어 암기는 괴로워 https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 방법이 생각나긴 했는데... 너무 오래 걸릴 것 같아서 다른 방법은 없을까 한참 고민했다. 그래도 일단 작성해서 돌려보긴 했는데 통과는 됐으나 역시 다른 사람들에 비해서 시간이 더 오래 걸림. 그래서 찾아보니 빈도수와 길이, 알파벳순 정렬을 굳이 따로 할 필요가 없었다. (난 따로 했음) ✨ 참고 https://propercodi.. 2024. 3. 10.