분류 전체보기

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..

Spring Framework/Spring

Spring JDBC vs SQL Mapper vs ORM 차이점 비교 (장단점)

위 글은 유튜브 우아한테크 채널에 도이님 발표 영상을 바탕으로 작성한 글입니다.https://www.youtube.com/watch?v=RWFtuQUx3fo JDBC JAVA에서 범용 데이터 액세스를 위한 표준 인터페이스이다. 순수 JDBC 불편한 점개발자가 모든 코드를 직접 작성해야 한다. 이로 인해 중복 코드가 많아지는 문제가 발생한다. 이를 해결하기 위해 영속성 프레임워크가 생겨나고, 중복된 작업을 처리해줍니다.반복적인 작업들을 추상화하고 편리함 제공ex) DB 연결, 해제, CRUD 등 SQL MapperSQL 문과 객체의 필드를 매핑하여, 관계형 DB의 데이터를 객체화하는 프레임워크이다.직접 작성한 SQL 문과 필드를 매핑하고, 조회 결과의 ROW를 객체화합니다.JDBC Template, MyB..