전체 글
-
localhost란?Computer Science/Network 2024. 9. 14. 16:00
localhost, 127.0.0.1, 그리고 0.0.0.0은 네트워킹과 관련된 주소들이며, 각기 다른 의미와 용도를 가지고 있습니다. 이들은 주로 서버 설정이나 네트워크 프로그래밍에서 사용되며, 각각의 의미와 차이를 이해하는 것이 중요합니다. 아래에서 이 주소들이 무엇을 의미하는지, 그리고 이를 이해하기 위한 관련 개념들을 설명하겠습니다.1. localhostlocalhost는 컴퓨터 자신의 IP 주소를 나타내는 특별한 도메인 이름입니다. 주로 테스트 목적으로 사용되며, 이 도메인 이름은 컴퓨터의 네트워크 인터페이스 중 자신을 참조할 때 사용됩니다.IP 주소: localhost는 일반적으로 127.0.0.1이라는 IP 주소로 해석됩니다.용도: localhost를 사용하면 네트워크를 통해 외부로 나가지 ..
-
서브넷(subnet)이란?Back-End/Docker & k8s 2024. 8. 29. 09:36
서브넷(Subnet)은 네트워크를 더 작은 네트워크 단위로 나누는 방법을 의미합니다. 이는 IP 주소를 효율적으로 관리하고, 네트워크 트래픽을 효과적으로 라우팅하기 위해 사용됩니다. 서브넷은 "서브네트워크(Subnetwork)"의 줄임말로, 대규모 네트워크를 여러 작은 네트워크로 구분하여 관리할 때 유용합니다.서브넷의 주요 개념IP 주소:모든 네트워크 장치(컴퓨터, 서버, 라우터 등)는 네트워크에서 고유한 IP 주소를 가져야 합니다. IP 주소는 일반적으로 IPv4 기준으로 32비트 길이의 숫자로, 네 부분(옥텟)으로 나뉘며, 각 부분은 0에서 255 사이의 값을 가집니다.예: 192.168.1.1네트워크와 호스트 부분:IP 주소는 네트워크 부분(network portion)과 호스트 부분(host po..
-
golang: 루프 변수의 스코프 이슈(Fixing For Loops in Go 1.22)Back-End/Golang 2024. 8. 5. 12:46
이 글은 https://go.dev/blog/loopvar-preview 주제를 다룹니다. 문제 설명루프 변수의 스코프 문제Go에서 for 루프는 반복문 내에서 루프 변수를 사용합니다. 하지만 기존의 Go 버전에서는 루프 변수의 스코프가 루프 전체에 걸쳐 있기 때문에, 개발자가 의도하지 않게 루프 변수가 변경되는 상황이 발생할 수 있습니다. 이 문제는 특히 **고루틴(goroutine)**이나 **클로저(closure)**를 사용할 때 더욱 두드러지며, 예측하지 못한 동작을 초래할 수 있습니다.예시 코드 및 문제점2. 고루틴 사용 예시func main() { done := make(chan bool) values := []string{"a", "b", "c"} for _, v := ran..
-
데이터 저장 용량의 단위Computer Science/OS 2024. 8. 4. 15:01
데이터 저장 용량의 단위는 바이트를 기본 단위로 하여 위계적으로 증가합니다. 여기서 각 단위가 하나씩 증가할 때마다 일반적으로 1,024배씩 증가합니다.데이터 저장 용량 단위바이트(Byte, B)가장 작은 기본 단위로, 1바이트는 보통 8비트로 구성됩니다.킬로바이트(Kilobyte, KB)1 KB = 1,024 B메가바이트(Megabyte, MB)1 MB = 1,024 KB = 1,048,576 B기가바이트(Gigabyte, GB)1 GB = 1,024 MB = 1,073,741,824 B테라바이트(Terabyte, TB)1 TB = 1,024 GB = 1,099,511,627,776 B페타바이트(Petabyte, PB)1 PB = 1,024 TB = 1,048,576 GB = 1,125,899,906,..
-
golang: 제네릭(Generic)이란?Back-End/Golang 2024. 8. 3. 13:14
제네릭(Generic)은 Go 언어에서 매우 강력한 도구로, 다양한 데이터 타입을 처리하고 코드를 간결하고 유연하게 만드는 데 유용합니다. 이를 통해 코드의 확장성, 안정성, 재사용성을 높일 수 있으며, 다양한 상황에서 효율적으로 사용할 수 있습니다. 제네릭을 잘 활용하면 더 나은 설계를 하고 변화하는 요구사항에 유연하게 대응할 수 있는 코드를 작성할 수 있습니다. 1. 타입 확장성제네릭을 사용하면 다양한 데이터 타입을 하나의 함수나 구조체로 처리할 수 있습니다. 이는 특정 타입에 제한되지 않고, 여러 타입에 대해 동일한 로직을 사용할 수 있게 합니다.예시: 숫자 계산 함수package mainimport "fmt"// 제네릭 타입 정의type Number interface { ~int | ~float6..
-
golang: Array vs LinkedListAlgorithm & Data Structure/DataStructure 2024. 7. 31. 13:51
Go 언어에서의 Array vs LinkedListGo 언어에서 배열과 링크드 리스트의 차이점을 살펴보고, 각각의 장단점을 예시와 함께 설명하겠습니다.배열 (Array)배열은 고정된 크기를 가진 연속된 메모리 블럭입니다. 배열을 선언할 때 크기를 지정해야 하며, 이후에는 크기를 변경할 수 없습니다.package mainimport "fmt"func main() { var arr [100]int arr[33] = 100 fmt.Println(arr[33]) // 출력: 100}장점Random Access에 강함: 배열은 연속된 메모리 블럭이기 때문에 인덱스를 통해 빠르게 접근할 수 있습니다. O(1)의 시간 복잡도를 가집니다.Cache Miss가 적음: 연속된 메모리 블럭이므로 캐시 히트율..
-
Java: ArrayList vs LinkedListAlgorithm & Data Structure/DataStructure 2024. 7. 31. 13:31
ArrayList vs LinkedList: 차이점 및 성능 비교자바 컬렉션 프레임워크는 다양한 데이터 구조를 제공하며, 그 중 ArrayList와 LinkedList는 List 인터페이스를 구현한 대표적인 클래스들입니다. 이 글에서는 ArrayList와 LinkedList의 차이점, 장단점, 그리고 성능 비교를 다루겠습니다.List 인터페이스의 구현체List 인터페이스를 구현한 대표적인 클래스는 다음과 같습니다:ArrayListLinkedListVectorStack이 중에서 ArrayList와 LinkedList의 차이점을 중점적으로 살펴보겠습니다.ArrayList란?ArrayList는 배열을 기반으로 한 리스트로, 중복을 허용하고 순서를 유지하며 인덱스로 원소들을 관리합니다. 배열과 유사하지만, 배열..
-
하둡(Hadoop) MR(MapReduce)란?Back-End/Hadoop 2024. 7. 25. 13:45
맵리듀스(MapReduce)는 하둡에서 대규모 데이터 세트를 분산 처리하기 위해 사용되는 프로그래밍 모델입니다. 이 모델은 두 가지 주요 단계인 맵(Map)과 리듀스(Reduce)로 구성됩니다. 각각의 단계가 어떻게 작동하는지, 그리고 이를 통해 데이터가 어떻게 처리되는지를 자세히 설명드리겠습니다.맵리듀스(MapReduce) 작업의 개요맵(Map) 단계:입력 데이터를 작은 조각으로 나누고, 각 조각을 병렬로 처리하여 중간 결과를 생성합니다.맵 함수는 입력 데이터를 키-값 쌍으로 변환합니다.셔플(Shuffle) 및 정렬(Sort):맵 단계에서 생성된 중간 결과를 키를 기준으로 정렬하고, 같은 키를 가진 값들을 모읍니다.이 단계는 자동으로 수행되며, 데이터가 리듀서로 전송되기 전에 일어납니다.리듀스(Redu..