분류 전체보기

CS/Network

직렬화 vs 역직렬화 차이 이해하기: Serialize, Deserialize

Serialize직렬화는 객체를 바이트 데이터로 변환하는 과정을 의미합니다.Serialization is the process of converting an object’s state to a byte stream. Serialization allows us to save the data associated with an object and recreate the object in a new location Serialization FormatJSON, XML, Binary 등 다양한 포맷으로 변환시킬 수 있습니다. (JSON, XML은 사람이 읽기 쉬운 형태여서 현재 자주 사용되는 포맷입니다.) 스프링에서는 Jackson을 통해 간편하게 객체 → JSON 형태로 변환하여 클라이언트에게 전달해 줍니다. ..

JAVA

Java GC 동작 원리: 가비지 컬렉션이 메모리를 정리하는 법

Garbage CollectionJava garbage collection is the process by which java programs perform automatic memory management.➡️ 메모리 자동 관리 When a Java program run on the JVM, objects are created in the heap space, which is a portion of memory dedicated to the program➡️ 생성된 객체는 프로그램 메모리의 일부 Some objects will no longer be needed. To free up memory, the garbage collector discovers and removes these unused ob..

JAVA

Java 객체 비교: equals()와 hashCode()로 보는 물리적 vs 논리적 동등성

Qna. equals와 hashcode 메서드를 사용하는 이유객체의 동등성 비교와 해시 기반 자료구조에서 일관된 동작을 보장하기 위해 equals와 hashcode 메서드를 사용한다. 객체의 동등성 (Equaility)1. 물리적 동일성== 연산자를 사용하여 두 객체의 메모리 주소(참조값)가 같은지 비교합니다.String a = "hello";String b = "hello";System.out.println(a == b); // true (String Pool 덕분)String c = new String("hello");System.out.println(a == c); // false (다른 객체) 2. 논리적 동일성equals 메서드를 오버라이딩하여 객체의 내부 상태(멤버 변수)를 비교할 수 있습니다..

Python

Python defaultdict: 딕셔너리 기본값 자동 설정 및 활용법

defaultdict()dict 클래스의 서브 클래스로, 기본값을 지정할 수 있는 딕셔너리입니다.num, list, set 등으로 초기화할 수 있습니다.from collections import defaultdict defaultdict(int)int_dict = defaultdict(int)print(int_dict)print(int_dict["test"])# defaultdict(, {})# 0 처음 키를 지정할 때 값을 설정하지 않아도, 해당 Key에 대한 값을 Default로 설정할 수 있다.특정 값의 카운팅을 처리할 때 용이하다.char_count = defaultdict(int)for char in s: char_count[char] += 1 # key가 없어도 자동으로 0에서 시작 d..