Java 3

[Java 기초] HashMap 대신 왜 ConcurrentHashMap을 써야 할까?

`HashMap`은 자바에서 가장 많이 사용되는 자료구조 중 하나입니다. 하지만 단순히 데이터를 저장한다고 해서 항상 `HashMap`을 써도 되는 것은 아닙니다.만약 여러 스레드가 동시에 접근할 가능성이 있는 상황이라면, `HashMap` 대신 반드시 `ConcurrentHashMap`을 사용해야 합니다.이번 글에서는 ConcurrentHashMap이 필요한 이유, 그리고 HashMap과의 차이점을 정리해보겠습니다.HashMap은 멀티스레드 환경에서 위험하다먼저 HashMap은 기본적으로 스레드 안전하지 않은 컬렉션입니다.즉, 여러 스레드가 동시에 put(), get(), remove() 같은 작업을 하면 내부 데이터 구조가 꼬일 수 있습니다.예를 들어, 다음과 같은 코드가 있다고 가정해봅시다:Ma..

Java 2025.07.07

[Java 기초] 인터페이스란 무엇인가? 왜 구현 클래스가 필요할까

Java를 배우다 보면 interface라는 키워드를 자주 보게 된다.그리고 인터페이스를 처음 접하면 이런 생각이 들 수 있다."이거 클래스랑 뭐가 다르지?""왜 굳이 인터페이스를 쓰는 거지?" 이번 글에서는 인터페이스의 개념과 역할, 그리고 구현체(구현 클래스)가 왜 필요한지를 쉽게 정리한다.인터페이스란?인터페이스는 흔히 "설계도"에 비유된다.즉, 어떤 기능을 제공해야 하는지 이름만 정의해둔 것으로 실제 동작은 아무것도 구현하지 않는다.예를 들어, 아래 코드를 보면public interface MemberRepository { void save(Member member); Member findById(Long memberId);} save() 와 findById() 라는 메서드가 필요하다는 ..

Java 2025.05.04

[Java 기초] 생성자란? this 키워드는 왜 필요할까?

Java 에서 클래스를 만들다 보면 자연스럽게 만나게 되는 문법이 바로 생성자와 this 키워드이다. 예를 들어 아래 코드가 있다고 하자.public class Member { private Long id; private String name; private Grade grade; //생성자 정의 public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; }} 생성자란 무엇인가?생성자는 객체를 만들 때 초기값을 설정해주는 메서드이다.Java에서 객체를 만들 때는 new 키워드를 사용한다.Member member..

Java 2025.05.04