본문 바로가기

Language

(5)
[Go] Go에서 랜덤값 생성하기 목차Golang을 사용해서 숫자 맞추기 게임을 만들어보았다. 게임을 만들면서 rand 패키지를 사용하여 랜덤값을 생성하였는데, 이때 학습한 내용을 간단히 정리하고자 한다. rand.Intn(range)math 패키지의 rand.Intn(range) | 0 함수를 사용하면 랜덤 한 int를 생성할 수 있다. 이때 range의 범위는 half-open [0, range)이다.여기서 주의할 점은 rand 패키지를 통해 생성되는 랜던값은 완전한 랜덤이 아닌 유사 랜덤값이다.유사 랜덤이란 어떤 알고리즘에 의해서 마치 랜덤인 것처럼 보이는 값을 말한다. 이는 컴퓨터의 논리 회로와 산술 연산은 같은 입력에 대해서 같은 결괏값을 만들어내기 때문이다. 그렇기 때문에 단순히 rand.Intn(range) 함수만 사용하면..
[JAVA] HashMap이란? 자바 Map에 대해서 공부하던 중 버켓(Bucket)이라는 단어를 접하게 되었다. 그래서 이번 글은 버켓에 대해서 자세하게 작성되어 있는 글을 정독하고, 정리한 글이다. 기존의 글에 개인적으로 이해하기 쉽도록 설명을 추가한 글로, 원 글을 다시 작성해 보면서 공부한 글이다. 원본: https://d2.naver.com/helloworld/831311 자바를 사용하다 보면 Map 자료구조를 많이 활용하게 된다. Map은 키와 값으로 이루어져 있고, 이때 키는 값을 구분하기 위한 유일한 값이다. 자바에서 Map은 인터페이스로 다양한 구현체를 제공한다. 가장 기본적으로 자주 사용되는 구현체는 HashMap, TreeMap, LinkedHashMap 등이 있다. 그리고 HashTable도 있다. HashMap은..
[JAVA] String constant pool이란? 이전 글 참고: 2023.10.12 - [Java] - [JAVA] String 클래스의 특징 [JAVA] String 클래스의 특징 먼저 String 클래스가 무엇인지 간단히 알아보자. String은 자바가 제공하는 클래스 중에서 문자열을 다루는 클래스다. String 클래스의 객체를 생성하는 방법은 두 가지가 있는데, new 키워드 통해 ditto-dev.tistory.com 이전 글에서 Java의 String 클래스의 특징을 알아볼 때, 객체의 공유 특성을 설명하면서 String constant pool에 대해서 언급했다. 이번 글에서는 String constant pool에 대해서 설명하고자 한다. 먼저, String constant pool은 문자열이 저장되어 있는 공간으로 문자열 연산의 성능..
[JAVA] String 클래스의 특징 먼저 String 클래스가 무엇인지 간단히 알아보자. String은 자바가 제공하는 클래스 중에서 문자열을 다루는 클래스다. String 클래스의 객체를 생성하는 방법은 두 가지가 있는데, new 키워드 통해 생성자의 입력 매개변수로 문자열을 전달하는 방법과 문자열 리터럴 방법이 있다. String text1 = new String("new 키워드"); // new 키워드 String text2 = "리터럴"; // 문자열 리터럴 이때 두 가지 방법 모두 메모리에 저장되는 방식은 동일하다. String은 참조 자료형이기 때문에 실제 데이터(문자열)는 힙 메모리에 위치하고, 참조 변수 text1은 힙 메모리의 데이터를 가리키게 된다. String 클래스는 다른 클래스와는 다르게 두 가지의 특징이 있다. ..
[JAVA] 직렬화(Serialization)란? 이번에 채팅 앱 프로젝트를 진행하면서, Redis를 사용하게 되었습니다. public class RedisTemplate extends RedisAccessor implements RedisOperations, BeanClassLoaderAware { /** * Sets the key **serializer** to be used by this template. Defaults to {@link #getDefaultSerializer()}. * @param serializer the key serializer to be used by this template. */ public void setKeySerializer(RedisSerializer serializer) { this.keySerializer ..