🙈

⃝ 동글동글 ⃝

🪐ᐩ˖ 🍎
728x90
반응형
SMALL

전체 글 68

신뢰적 데이터 전송의 원리 & TCP

신뢰적 데이터 전송의 원리 신뢰적 데이터 전송의 원리는 데이터가 송신자로부터 수신자에게 정확하고 신뢰성 있게 전달되도록 보장하는 방법입니다. Sending Process(송신하는 프로세스)에서 보내는 데이터가 Receiver Process(수신하는 프로세스)에게 도착했을 때, 에러가 없고 순서대로 도착해야 신뢰성이 보장됩니다. 일반적으로 저희가 보는 것은 realiable channel이기 때문에 TCP는 신뢰성 있게 데이터를 잘 전송하는 것처럼 보입니다. 하지만 실제 구현 측면에서 보면 TCP는 unreliable channel이 존재하는 Network Layer 위에 존재하기 때문에 구현이 복잡합니다. 데이터 전송 프로토콜의 송신 측(reliable data transfer protocol sendi..

CS 2023.11.22

프로토콜(Protocol) - HTTP

프로토콜(Protocol)이란? 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계입니다. 즉 프로토콜이란 컴퓨터 네트워크에서 통신을 할 때 지켜야 하는 규칙과 절차의 집합을 말합니다. 다시 말해, 컴퓨터 또는 네트워킹 장비들이 서로 '대화'를 할 때 서로 이해할 수 있도록 '어떻게' 대화해야 하는지에 대한 약속입니다. 이 프로토콜을 통해 데이터의 형식, 신호의 송수신 방법, 데이터의 보정 방법 등 통신의 모든 측면이 정의됩니다. 프로토콜의 기본 요소 구문(Syntax): 데이터 교환에 사용되는 형식이나 코드를 정의합니다. 다른 매체와 어떤 단위로, 어떤 형식으로, 어떤 신호를 보낼지를 결정합니다. 즉 구문은 전송하고자 하는 데이터의 형식(Forma..

CS 2023.11.08

컴퓨터 네트워크 - OSI 7 Layer - TCP/IP

컴퓨터 네트워크란? 네트워크는 '그물(network)'이라는 의미의 영단어에서 유래하며, 이는 서로 연결된 것들 사이의 복잡한 패턴을 묘사합니다. 컴퓨터 네트워크는 이러한 패턴을 디지털 세계로 확장하여, 컴퓨터, 스마트폰, 태블릿, 서버와 같은 다양한 전자 장치들이 서로 정보를 공유하고 통신할 수 있게 연결된 시스템을 지칭합니다. 이 네트워크는 우리가 일상에서 사용하는 인터넷과 같은 글로벌 네트워크는 물론, 기업이나 학교 내의 사설 네트워크, 소규모 오피스나 가정에서의 네트워크까지 다양한 스케일로 존재합니다. 컴퓨터 네트워크를 통해 파일 공유, 데이터 베이스 접근, 이메일 교환, 온라인 게임 플레이, 그리고 인터넷 서핑 등의 활동이 가능해집니다. 현대 컴퓨터 네트워크에서 데이터를 어떻게 전달할까? 현대 ..

CS 2023.11.07

[MySQL Error] Failed to Connect to MySQL at {Server IP주소:3306} with user {DB Username} SSL connection error:error:0A0000102:SSLroutines::unsupported protocol 해결 방법

Failed to Connect to MySQL at {Server IP주소:3306} with user {DB Username} SSL connection error: error:0A0000102:SSL routines::unsupported protocol 현재 M1 MacBook Pro 사용 중입니다. MySQL과 MySQL Workbench를 재설치했는데 이런 오류가 발생했다. MySQL의 초기 설정 변경으로 인해 이러한 오류가 발생한다고 한다. 모두 정확히 입력했다 해도 에러가 발생한다면 아래 사진에 Use SSL If available을 -> No로 바꿔주자 그럼 바로 해결된다. 여러 글을 봤지만 이게 가장 정확한 방법인 것 같다.

카테고리 없음 2023.09.08

[Java 기초] Thread(스레드) 실행제어

효율적인 멀티스레드 프로그래밍을 위해서는 정교한 스케줄링을 통해 프로세스에게 주어진 자원과 시간을 여러 스레드가 낭비 없이 잘 사용하도록 해야 한다. 스레드 상태 스레드의 생성과 소멸 과정 스레드를 생성하고 start()를 호출하면 바로 실행되는 것이 아니라 실행대기열에 저장되어 자신의 차례가 될 때까지 기다리고, 실행대기열은 Queue와 같은 구조로 먼저 실행대기열에 들어온 스레드부터 실행한다. 실행대기상태에 있다가 자신의 차례가 되면 실행상태가 된다. 주어진 실행시간이 다되거나 yield()를 만나면 다시 실행대기상태가 되고 다음 차례의 스레드가 실행상태가 된다. 실행 중에 suspend(), sleep(), wait(), join(), I/O block에 의해 일시정지 상태가 될 수 있다. 지정된 ..

Java/기초 2023.06.16

[Java 기초] Generics(제네릭)

Generics 제네릭 제네릭이란 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴피일 시의 타입체크(compile-time type check)를 해주는 기능 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여준다. 타입 안정성을 높인다는 것은 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여준다는 뜻이다. Generics : - 다룰 객체의 타입을 미리 명시해 줌으로써 번거로운 형변환을 줄여주는 것 - 인스턴스별로 다르게 동작하도록 하기 위해 만든 기능 제네릭의 용어 Box // 제네릭 클래스, 'T의 Box' 또는 'T Box'라고 읽는다. T //..

Java/기초 2023.06.02

[프로그래머스 고득점 Kit] 프로세스 - Stack/Queue - Lv2

⭐️ 코드 import java.util.*; class Solution { private static class Node { int priority; int idx; public Node(int priority, int idx) { this.priority = priority; this.idx = idx; } } public int solution(int[] priorities, int location) { int answer = 0; ArrayDeque queue = new ArrayDeque(); for (int i = 0; i < priorities.length; i++) { queue.add(new Node(priorities[i], i)); } // 숫자가 높을 수록 우선순위가 높음 while..

[프로그래머스 고득점 Kit] 기능개발 - Stack/Queue - Lv2

⭐️ 코드 (Queue 이용) import java.util.*; class Solution { public int[] solution(int[] progresses, int[] speeds) { ArrayDeque queue = new ArrayDeque(); ArrayDeque speedsQueue = new ArrayDeque(); for (int i = 0; i < progresses.length; i++) { queue.addLast(progresses[i]); speedsQueue.addLast(speeds[i]); } ArrayList arrayList = new ArrayList(); while (!queue.isEmpty()) { for (int i = 0; i < queue.size()..

[프로그래머스 고득점 Kit] 베스트앨범 - Hash(해시) - Lv3

⭐️ 코드 (HashSet 이용) 정답 코드지만 직접 풀어보면서 출력해 봤던 테스트 코드!! 이번 문제는 완전 리스트와 해시맵의 중첩이었다... import java.util.*; public class 베스트앨범 { static class Solution { private static class Node { int idx; String genre; int play; public Node(int idx, String genre, int play) { this.idx = idx; this.genre = genre; this.play = play; } @Override public String toString() { return "Node{" + "idx=" + idx + ", genre='" + genre..

[프로그래머스 고득점 Kit] 의상 - Hash(해시) - Lv2

⭐️ 코드 (HashSet 이용) 1. HashMap에 옷의 종류별로 개수를 카운트한다. 2. 해당 옷을 안 입는 경우도 있기 때문에 경우의 수 + 1을 해준다. 3. 모든 옷을 안 입는 경우는 없기 때문에 결과 -1을 해서 개수 세기! import java.util.*; class Solution { public int solution(String[][] clothes) { int answer = 0; HashMap hashMap = new HashMap(); for (int i = 0; i < clothes.length; i++) { hashMap.put(clothes[i][1], hashMap.getOrDefault(clothes[i][1], 0) + 1); } int count = 1; for (..

728x90
반응형
LIST