개요 코드를 짜다보면 Boolean 값을 반환하는 프레디케이트 메소드(Predicate Methods)를 굉장히 많이 작성하게 된다. 이때 메소드 이름을 통해 그 의도를 분명히 전달하는 것이 굉장히 중요한데, 이러한 메소드에 should, must, need와 같은 동사를 어떻게 사용할지 애매모호한 경우가 많다. 이렇게 순간의 직관에 의존하여 느낌대로 단어를 선택하게 되면 코드의 일관성을 해치면서 유지 보수 용이성도 떨어지고 자연스레 프로덕트 품질도 떨어지게 된다. 이번 고찰에서는 should, must, need와 같은 동사를 프레디케이트 메소드에 어떻게 효과적으로 사용할 수 있는지 이야기해보자. 내용프레디케이트 메소드란? 프레디케이트 메소드(Predicate Methods)는 Boolean 값을 반환..
컴퓨터 공학
개요 어플리케이션이 기동되기 위해서는 프로그램이 메모리에 떠야한다. 그럼 메모리 내에 어떻게 뜨는지 살펴보자 내용운영체제에 할당받는 대표 영역 언어마다 어떻게 메모리에 영역을 할당해서 관리하는지 다르지만 자바 기준으로 대표적인 영역을 살펴보자코드 영역클래스 파일에 저장된 바이트코드가 로드되어 실행되는 메모리 영역. 주로 프로그램의 코드(메서드 등)를 저장하며, 불변이기 때문에 읽기 전용이다. Java에서는 JVM이 실행할 때 이 영역에 바이트코드를 저장하고 실행한다.데이터 영역정적 변수와 전역 변수가 저장되는 공간. Java에서는 주로 static 키워드로 선언된 변수들이 이 영역에 위치한다. 프로그램이 시작되면 할당되고 프로그램이 종료될 때까지 유지되며, 정적 메서드나 변수들이 여기에 위치한다. 힙 영..
다익스트라 알고리즘이란?다익스트라 알고리즘은 그래프에서 하나의 시작 정점으로부터 다른 모든 정점까지의 최단 경로를 찾는 알고리즘이다. 가중치가 있는 그래프에서 최단 경로를 찾기 위해 사용되며, 음의 가중치를 가지는 간선이 없는 경우에 유효하다. 다익스트라 알고리즘은 주로 우선순위 큐를 사용하여 현재까지 발견된 최단 경로를 저장하고, 이를 기반으로 다른 정점으로의 경로를 지속적으로 업데이트하는 방식으로 작동한다. 다익스트라 알고리즘 구현문제 설명아래와 같은 가중치 그래프가 있다고 할 때, 1번 정점에서 모든 정점으로 가는 최소 거리 비용을 출력하라. (없으면 Impression 출력) 코드 구현import java.util.ArrayList;import java.util.Arrays;import java..
Union-Find (Disjoint Set)이란? Union-Find, 또는 Disjoint Set 자료구조는 서로소 집합을 관리하는 자료구조(알고리즘)이다. 이 자료구조는 여러 개의 원소들이 각각의 집합에 속해 있을 때, 두 원소가 같은 집합에 속해 있는지 확인하거나, 두 집합을 하나로 합치는 작업을 빠르게 수행할 수 있다. 이 자료구조는 그래프에서 연결된 컴포넌트를 찾거나 사이클을 검출하는 데 자주 사용된다. Union-Find 구현 방법Union-Find는 두 가지 주요 연산으로 구성된다 이름 그대로 Union 연산과 Find 연산이 그것이다. Union 연산 Union 연산은 두 집합을 하나의 집합으로 합치는 연산이다. 두 원소의 루트를 찾아 하나의 루트로 통일하는 방식으로 진행된다. 이때 랭크..