반응형 language/java89 번외편 - Java Comparator vs JavaScript sort() 번외편 - Java Comparator vs JavaScript sort()개발하다 보면 이런 코드를 자주 본다.Javausers.sort( (u1, u2) -> Integer.compare( u1.getAge(), u2.getAge() )); JavaScriptusers.sort( (a, b) => a.age - b.age); 처음 보면 거의 같은 코드처럼 보인다.실제로 둘 다:두 객체를 비교하는 규칙을 전달한다. 는 점에서 매우 비슷하다.1. Java Comparator예제Comparator comparator = (u1, u2) -> Integer.compare( u1.getAge(), .. 2026. 6. 4. Factory Method Pattern과 Strategy Pattern 비교 Factory Method Pattern과 Strategy Pattern Factory Method Pattern과 Strategy Pattern은 둘 다 인터페이스(또는 추상 클래스) + 다형성을 이용하는 패턴이다.그래서 처음 공부할 때 많이 헷갈린다.하지만 목적이 완전히 다르다.Factory Method Pattern관심사 : "무엇을 만들까?"Client │ ▼Factory │ ├──► Dog ├──► Cat └──► Tiger 인터페이스 public interface Animal { void sound();} Factory Animal animal = factory.create(); 여기서 인터페이스는객체를 생성한 후 어떤 타입으로 사용할 것인가를 추상화하기 위해 존재한.. 2026. 6. 1. List.of에 대하여 1. 우리가 보는 것은 이것뿐이다. List list = List.of("A", "B"); 우리는 List 를 받는다고만 생각한다.2. 그런데 List는 인터페이스다. public interface List { ...} 인터페이스는 객체를 만들 수 없다. new List(); // 컴파일 에러 즉, List.of(...) 는 내부에서 반드시 어떤 구현체를 생성해서 반환해야 한다.3. 내부에서는 이런 식으로 동작한다. (개념적으로) public static List of(E... elements) { if (elements.length == 0) { return new List0(); } if (elements.length == 1) { return ne.. 2026. 6. 1. Factory Method Pattern (팩토리 메서드 패턴) Factory Method Pattern (팩토리 메서드 패턴)Java를 공부하다 보면 객체를 생성할 때 항상 new 를 사용한다고 생각하기 쉽다. Animal animal = new Dog(); 하지만 객체 생성 로직이 복잡해지고 종류가 많아지면 코드 곳곳에 new 가 흩어지게 된다. if (type.equals("DOG")) { return new Dog();}if (type.equals("CAT")) { return new Cat();}if (type.equals("TIGER")) { return new Tiger();} 새로운 동물이 추가될 때마다 코드를 수정해야 한다.이 문제를 해결하기 위해 등장한 패턴이 Factory Method Pattern 이다.1. Factory Meth.. 2026. 6. 1. Static Factory Method (정적 팩토리 메서드) Static Factory Method (정적 팩토리 메서드)Java를 공부하다 보면 다음과 같은 코드를 자주 보게 된다. LocalDate.now();Optional.of(value);List.of("A", "B", "C");ResponseEntity.ok(data);LoggerFactory.getLogger(UserService.class); 처음에는 단순히 편의 메서드라고 생각하기 쉽지만, 사실 이들은 모두 Static Factory Method(정적 팩토리 메서드) 를 활용한 대표적인 예시다.실무에서는 생성자보다 정적 팩토리 메서드를 사용하는 경우가 매우 많다.1. Static Factory Method란?객체를 생성할 때 생성자를 직접 호출하지 않고, static 메서드를 통해 객체를 생성하는 .. 2026. 6. 1. Virtual Thread (Java 21) 완벽 이해하기 Virtual Thread (Java 21) 완벽 이해하기지금까지 우리는 Java 동시성의 발전 과정을 배웠다.Thread ↓Thread Pool ↓ExecutorService ↓CompletableFuture ↓ForkJoinPool 그런데 이 모든 기술에는 공통 문제가 하나 있었다.스레드가 비싸다.그래서 Java 21에서 드디어 등장한 것이:Virtual Threads이다.1. 왜 등장했을까?기존 Thread는 사실상OS Thread 이다.예: new Thread(...) 실행.실제로는Java Thread↓OS Thread↓CPU 연결.2. 문제OS Thread는 매우 비싸다.생성 비용.Stack 생성OS 등록Context Switch 발생.3. 그래서 실무에서는 new Thread() 를 잘 안 쓰.. 2026. 6. 1. 이전 1 2 3 4 ··· 15 다음 반응형