전체 글 64

Internet Protocol - IPv4

IPv4전세계적으로 사용된 첫번째 인터넷 프로토콜.네트워크에 있는 모든 컴퓨터 또는 기기가 인터넷에 연결될 때 고유하게 할당되는 식별자이다.약 43억개의 유한한 자원으로 고갈을 대비하여 IPv6로 전환 중에 있다. 0~255의 범위로 x.x.x.x 4자리를 나타낼 수 있고, 이는 2진수로 변환하면 00000000~11111111이다.2^8, 즉 한 자리당 1byte라는 뜻이다. IP 주소는 네트워크 부분과 호스트 부분으로 나뉜다.네트워크 부분은 어떤 네트워크인지 식별,호스트 부분은 네트워크에 연결되어있는 디바이스를 식별할 수 있다.  첫번째 숫자로 클래스를 가늠할 수 있다.첫번째 숫자 127 / 127.0.0.0 ~ 127.255.255.255 는 로컬 호스트 주소이다.   IPv4 Address Sub..

네트워크 2024.07.16

이펙티브 자바 - Item(1) 생성자 대신 정적 팩터리 메소드를 고려하라

*정적 팩토리 메소드의 예시public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE;}  장점 1. 이름을 가질 수 있다. 자바 class는 파라미터마다 다른 생성자를 가질 수 있는 특성(오버로딩)을 가지고 있는데 생성자 이름만으로는 각 생성자의 특성을 대표하기 어려운 경우가 많다. 그럴 때 위의 예시처럼 public static 팩터리 메소드를 사용하면 각 생성자의 특성을 잘 설명할 수 있다.  장점 2. 같은 타입의 파라미터를 받는 다수의 생성자를 만들 수 있다.public Food(String name) {...}public Food(String ingredient) {...}  위의 예시는 불가하..

Java 2024.07.15

패킷과 라우팅

패킷LAN을 넘어서 WAN에서 통신하려면 IP주소가 필요하다.하지만 기존의 프레임은 IP주소를 나타내지 않았다.여기서 필요한 것이 IP 패킷이다.  패킷의 자세한 구조는 다음과 같다. 프레임의 예시  라우팅1. LAN -> WAN : WAN에서는 Mac주소가 필요없으므로 프레임에서 패킷 부분만 전송하게 된다.2. 라우터에서 라우터로 패킷이 전송되는 것을 라우팅이라 한다.3. WAN -> LAN : LAN에서는 다시 Mac 주소가 필요하므로 패킷을 프레임으로 감싸주게 된다.  1. LAN -> WAN(라우터)LAN에서의 통신을 배울 때 목적지 Mac 주소와 소스 Mac 주소를 가지고 있어야 프레임을 만들어 보낼 수 있었다.하지만 LAN에서 라우터로 프레임을 보내고 싶을 때 우린 라우터의 Mac 주소를 모른..

네트워크 2024.07.12

허브, 스위치, 라우터

허브LAN(Local Area Network)에서 통신 케이블을 연결시켜주는 장치이다. 하지만 허브에는 2가지 문제점이 있다.1. 정보가 모든 컴퓨터에 전달된다.2. 양쪽에서 정보를 보냈을 때 정보 충돌이 일어난다. 이 두가지에 대한 해결책1. 어디에서 어디로 보낸다는 프레임을 보낸다.문제점 : 여전히 다른 컴퓨터에 데이터가 전달됨2. 더미정보를 보내서 충돌여부를 통해 LAN이 통신중인지 확인한다.문제점 : 비효율적임 이 두가지를 해결하기 위해 나온 것이 스위치이다.  스위치스위치는 허브의 문제점을 해결해준다.1. 스위치에서 보내야하는 컴퓨터로 직접 전달해준다.2. 충돌이 일어나지 않는다받는 케이블, 주는 케이블이 따로따로 존재하기 때문이다.  라우터LAN 내에서 통신 외에 바깥 세상과 통신하고 싶다면 ..

네트워크 2024.07.12

프레임

프레임이란? LAN 상에서 네트워크 통신하고 싶을 때 보내는 데이터 전송 단위 내부에는 어디에서 어디로 보내는지 Mac 주소와 데이터가 들어있다.  자세하게 들어가면PREAMBLE : 보내는 속도와 받는 속도를 맞춰준다(bit synchronization)SFD(Start of Frame Delimiter) : 여기서부터 정보가 시작된다 를 알려줌목적지 주소 : 6byte소스 주소 : 6byteLENGTH : Ethernet 총 길이를 의미DATA : 45~1500byteCRC : DATA를 전부 받았는지 check 해주는 것다음과 같이 구성되어 있다. **이 포스트는 크래프트맨 멘탈리티 채널의 네트워크 기초 무료 강의 | 새내기 개발자들을 위한 필수 가이드를 참고하여 작성했습니다

네트워크 2024.07.12

Mac 주소란 무엇일까

컴퓨터를 좀 만지다보면 IP 주소나 Mac 주소라는 것이 있다는 것을 알 수 있는데 이건 대체 뭘까?이번 포스트에서는 Mac주소에 대해서 알아보겠다.  정의Mac주소란 네트워크 인터페이스 카드에 각인된 물리적 주소라고 한다.쉽게 말해 컴퓨터들끼리 네트워크를 통해 통신을 할 때 어디로부터 어디로 보낼 것인지 이런 주소값이 필요한데 Mac 주소가 바로 이런 것이다.  구조6byte(48bits)fe:1b:63:84:45:e6앞 세 문자열은 IEEE가 기업이나 단체에 할당해주는 주소이고뒤 세 문자열은 차례대로 기업이나 단체에서 기기에 할당해주는 주소이다.   문자열은 16진수인데0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f이런 순서대로 숫자를 셀 수 있다.위의 예시에서 f..

네트워크 2024.07.11

Java CS 대비 정리(자료형, JVM, JRE, JDK)

운영체제 및 프로그램운영체제: 컴퓨터에서 실행될 때 특정 작업을 수행하는 일련의 명령어들의 모음 프로그램: 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어  컴퓨터의 자료표현bit: binary digit의 약자0과 1을 표현할 수 있는 상자 한개 byte: 1byte = 8bit정보를 처리하기 위한 최소 단위2^8 = 256개의 표현 가능 비트bit0/1바이트Byte8 bit킬로바이트KB2^10 Byte메가바이트MB2^20 Byte기가바이트GB2^30 Byte테라바이트TB2^40 Byte 음수, 양수 범위127 ~ 0 양수-1 ~ -128 음수 보수보충해주는 수, 어떤 수를 만드릭 위해 필요한 수보수가 필요한 ..

Java 2024.06.05

내가 보려고 만든 Dart 언어 공부

코드가 끝나면 ;(세미콜론) 하기 var는 값을 업데이트 할 수 있지만 같은 타입이어야 한다.int, String 등 타입을 지정해줄 수도 있다.var 쓰이는 경우 : 함수나 메소드 내부에 지역변수를 선언할 때int, String 쓰이는 경우 : class에서 변수나 property를 선언할 때 Dynamicdynamic는 어떤 타입이든지 들어갈 수 있는 타입을 말한다.dynamic이 필요한 경우 : JSON형태로 값을 받아 어떤 타입이 들어갈 지 모르는 상황. dart가 어떤 타입인지 확인하도록 하면 Error를 줄일 수 있다.void main() { dynamic name; if(name is String) { name.StringMethod } if(name is int) { na..

FrontEnd/Flutter 2024.05.31