0. Overview 강의를 듣던 중 디자인 패턴과 관련하여 공부를 하게 되었고, 디자인 패턴의 종류 중 중요하다고 생각되는 패턴들을 정리해보려고 합니다. 그 중 첫번째가 바로 어댑터 패턴 ! 1. 어댑터 패턴 (Adapter Pattern) - 현실 세계에서도 찾아보기 쉬운 패턴 (해외에서 한국 전자제품 사용하려면 110v '어댑터'가 필요합니다.) - 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 해주는 구조적 디자인 패턴 - 클라이언트가 사용하는 인터페이스를 따르지 않는 레거시 코드를 재사용할 수 있게 해준다. 1 - 1 다이어그램을 통한 어댑터 패턴의 관계 Target : Adapter가 구현하는 인터페이스 Adaptee : 어댑터 대상 객체 / 기존의 코드 Adapter : Targ..
0. Overview Stream API 관련 강의를 듣던 중 Optional 과 연관지어 사용하다가 findAny() 메서드와 findFirst() 메서드의 차이가 궁금해졌습니다. findAny()는 Stream에서 가장 먼저 탐색되는 요소를 리턴하고, findFirst()는 조건에 일치하는 요소들 중 Stream에서 순서가 가장 앞에 있는 요소를 리턴하는데, 둘의 차이가 뭘까요 ? 🔍 findAny() findAny() 메서드는 스트림에서 임의의 요소를 반환합니다. 병렬 처리된 스트림에서는 빠르게 결과를 반환할 수 있고, 요소의 순서를 고려하지 않습니다. 대부분의 경우 병렬 처리된 스트림에서 성능상 이점을 가질 수 있어요. 🔍 findFirst() findFirst() 메서드는 스트림의 첫 번째 요소..
0. Overview Optional 관련 강의를 듣다가, Optional.of() 와 같은 메서드를 정적 팩토리 메서드라고 듣게 되었습니다. "정적 팩토리 메서드"라는 키워드를 보고 정적 팩토리 메서드가 무엇인지 정리하고자 글을 작성하게 되었어요. 🫡 1. 정적 팩토리 메서드 ? 정적 팩토리 메서드는 객체의 생성을 담당하는 클래스 메서드라고 합니다. (사실 무슨 말인지 아직은 잘 모르겠어요..) 보통 자바를 공부할 때 객체를 생성하기 위해서는 new 키워드를 사용한다고 알고 있을 겁니다. 정적 팩토리 메서드는 new 키워드를 직접적으로 사용하지 않을 뿐, 클래스 내에 선언되어 있는 메서드를 내부의 new를 이용해 객체를 생성해 반환하는 것이라고 합니다. 즉, 정적 팩토리 메서드를 통해 new 를 간접적..
1. 프로세스와 스레드 프로세스란 운영체제에서 실행 중인 하나의 어플리케이션을 의미합니다. 프로그램을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당 받아 해당하는 코드를 실행하는 작업의 단위를 프로세스라고 합니다. 스레드는? 프로세스 안에서 독립적으로 실행되는 흐름의 단위에요. 그리고 또 하나의 프로세스가 여러 스레드를 실행하는 것을 멀티 스레드라고 합니다. 2. 스레드의 생성과 실행 스레드의 생성방법은 크게 2가지가 있습니다. Thread 클래스를 상속받아 생성 Runnable 인터페이스를 구현하여 생성 2 - 1. Thread 클래스를 상속받아 생성 public class ThreadExam extends Thread{ @Override public void run() { // 실행할 코드 } ..