2024/11 8

[🌐Network] 패킷(Packet), TCP/IP

개요필자는 패킷이라는 것을 마인크래프트 플러그인 개발할 때 사용하긴 했었다. 네트워크에 속한다고는 알고 있었는데 정확히 뭘 의미하는지는 몰랐다. 이 포스팅을 통해서 알아가볼려고 한다.패킷이란?패킷은 Package(패키지) + Bucket(버킷)을 합친 말로, 네트워크를 통해서 데이터를 전달하는 기본 단위이다.네트워크를 통해서 데이터를 전달할 때 데이터를 조각으로 쪼개는데 그것을 패킷이라고 한다.그냥 바로 데이터를 전달하지 왜 패킷으로 굳이 나누어서 전달하냐고 의문이 생길 수 있다. 컴퓨터가 두 대 이상을 경우에는 비효율적이기 때문이다.서로 다른 컴퓨터가 두 회선으로 데이터를 전송할 때 세 번째 컴퓨터에서는 동일한 회선을 사용해 데이터를 전송할 수 없기 때문이다.패킷은 컴퓨터가 몇대라도 목적지 IP에 잘 ..

Network 2024.11.30

[Kotlin] 컬렉션(List, Set, Map), 관련 함수들

개요필자는 Java에서 Collection이라는 개념을 들어보기만 했지 자세하게 공부는 안해봤다. 대표적인 List, Map도 사용은 해봤지 자세한 용도와 개념은 모르고 사용했었다. 이번 기회를 통해 다시 처음부터 공부하고자 이 글을 쓴다.CollectionCollection은 자료구조를 편하게 다루기 위한 라이브러리이다.자, 여기서 자료구조란 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것으로 한마디로 데이터들의 모임이라고 정리할 수 있다.즉, Collection은 데이터 값의 모임을 잘 정리한 라이브러리이다. Kotlin에서는 Mutable(가변성)과 Immutable(불변성)로 나누어지고 List, Set, Map 등이..

Kotlin 2024.11.18

[Kotlin] 제어문(2) - 반복문(while, for)

Kotlin에서는 for, while, do-while문이 있다. 각각 살펴보면서 이해해보도록하자. 1. while 문while (조건식) { 동작 코드 증감식}증감식을 사용하지 않으면 무한으로 반복되어 컴퓨터가 열받으니 증감식은 꼭 사용해야 한다. * whilewhile은 조건을 검사하고, 만족하면 본문을 처리한 후 조건 검사로 다시 돌아간다.위 코드는 i가 5보다 작거나 같을 때까지 반복하겠다는 코드이다. i++을 작성한 이유는 i가 증가하지 않으면 조건은 계속 참(true)이 될거고 컴퓨터가 터져버리기 때문에 1씩 증가하게 만들어 조건이 계속 참(true)이 될 수 없도록 만든거다. * do-whiledo { 동작할 코드} while (조건식)do-while문은 while문과 달리 ..

Kotlin 2024.11.15

[Kotlin] 배열(Array)

개요처음 Kotlin의 배열을 접했을 때 Java에 너무 익숙한 나머지 Kotlin에 배열이 좀 어려워보였다.Java는 위와 같이 배열을 선언할 수 있었는데 Kotlin은 배열을 선언하는 방법이 다양해서 순간 당황했었다.하지만 이건 익숙함의 문제라 넘기고 배열(Array)에 대해서 설명해보겠다.배열배열(Array)은 동일한 자료형/타입을 가진 데이터들을 나열한 구조이다.위 그림에서 array는 정수형 데이터 1부터 6까지 저장하고 있다. 우리는 인덱스(index)를 사용해서 값에 접근할 수 있다. 인덱스(index)를 사용할때는 0부터 시작한다. (예: array[1]은 2를 반환한다.)배열 선언Kotlin에서 배열(Array)을 선언하는데는 크게 3가지 방법으로 분류된다. arrayOf(), (자료형)..

Kotlin 2024.11.14

[Kotlin] 제어문(1) - 조건문(when, if-else)

Kotlin에서 제어문은 조건문과 반복문이 있다. 이번 포스팅에서는 조건문 when, if-else문에 대해서 다룰 것이다.1. when문when문은 다중 선택문으로 Java의 switch문이라고 보면 된다. when문의 형식when (조건을 검사할 값) { case1 -> { 동작1 } case1 -> { 동작2 } else -> { 동작3 }}동작할 코드가 한줄이면 중괄호는 생략 가능하다. 하지만 여러 코드가 실행되어야 한다면 꼭 중괄호를 써야한다. 그렇지 않으면 에러나니 조심하자. 기본 사용법해당하는 값을 찾지 못했을 시 else로 넘어간다. 그러니 꼭 when문을 사용할때는 else를 같이 써줘야한다. else를 써주지 않으면 에러가 나니 조심하자.만약 v..

Kotlin 2024.11.14

[Kotlin] 형변환과 Null 안전성(Null Safety)

Java에서는 암시적 형변환과 명시적 형변환 둘 다 가능했는데 Kotlin에서는 여러가지 오류를 막기위해 개발자가 직접 형변환을 해야하는 명시적 형변환을 지원한다.* 명시적 형변환 : 개발자가 직접 자료형을 지정해 형변환* 암시적 형변환 : 자료형을 지정해주지 않아도 자동으로 형변환 Java에서는 아래와 같은 코드로 형변환이 가능했다.Java에서 명시적 형변환은 (자료형) 형식으로 작성해주면 해당 값은 작성해준 자료형으로 형변환된다.결과가 잘 출력되는 것을 볼 수 있다.하지만 Kotlin에서는 암시적 형변환은 지원되지 않는다. 오로지 명시적 형변환만 지원한다.기본 타입 형변환Kotlin에서는 명시적 형변환을 할때 여러가지 함수들을 제공한다.함수설명예toByte()Byte으로 강제 형변환a.toByte()..

Kotlin 2024.11.14

[Kotlin] 자료형과 연산자

Kotlin에서 자료형은 정수, 실수, 논리, 문자, 문자열 등이 있다 1. 정수 자료형Kotlin에서 정수 자료형을 부호있는 자료형과 부호없는 자료형으로 구분한다부호있는 자료형에는 Byte, Short, Int, Long 등이 있고 부호없는 자료형에는 UByte, UShort, UInt, Ulong 등이 있다 부호있는 정수형타입크기최솟값최대값기본 값Byte1Byte(8bit)-1281270Short2Byte(16bit)-32768327670Int4Byte(32bit)-2,147,483,648 (-2 31 )2,147,483,647(2 31 - 1)0Long8Byte(64bit)-9,223,372,036,854,775,808 (-2 63 )9,223,372,036,854,775,807 (2 63 - 1)..

Kotlin 2024.11.12

[Kotlin] 변수와 상수

Kotlin에서 변수를 선언할 때 val, var 키워드를 사용한다.변수 선언 형식키워드 변수명: 자료형 = 초기값 Kotlin는 타입 추론이 가능해 타입을 선언하지 않아도 된다.valval은 상수이다. 즉, 값을 변경할 수 없다. -> 자바의 final해당 값이 일정할 때 사용하면 좋다.위와 같이 선언할 경우 name이라는 변수에 문자열인 '홍길동'을 저장하겠다는 의미로 해석되고name이라는 변수는 val로 선언되어 있기 때문에 값을 변경할 수 없다.varvar는 변수이고 상수와 달리 값을 변경할 수 있다. -> 자바의 일반 변수값이 주기적으로 변경될 때(값이 변경될 일이 생길 때) 사용하면 좋다.age는 17이라는 값을 할당하고 있고값을 18로 변경해보면 오류 없이 정상적으로 변경된다.그 외굳이 타입..

Kotlin 2024.11.11