Java에서는 상수를 선언하고 활용할때 다음과 같이 선언한다. private static final String HELLO = "안녕"; 그러나 여러 상수를 한번에 관리해주어야 하는 클래스가 생기기 마련이고, 또 상수가 많은 클래스는 가독성도 좋지 않고 또 상수 선언시마다 모든 키워드를 붙여주는 불편함, 그리고 변수명의 복잡해짐등 여러 문제점이 발생하게된다. 이때 사용하기 좋은것이 바로 JAVA에서 지원하는 Enum인 것이다. enum은 열거형 타입으로 상수들을 묶어서 관리하고자 할때 사용하기 용이하다. 이 열거타입 클래스는 상수들만 다루기에 정말 최적화 되어있고 기본적으로 제공해주는 메소드들을 활용해 상수를 처리하고 다루는 부분에 있어 편리함과 가독성 모두를 챙겨갈수 있는 이점이 있다. 그럼 먼저 기본..
이번 포스팅에서는 양의간선을 갖는 최단거리, 최소비용을 찾을때 사용하는 데이크스트라 알고리즘을 다뤄보도록하겠다. 언제 사용되는가? 최단거리을 탐색하는 대표적인 알고리즘을 꼽으라면 먼저 BFS를 언급할수 있겠다. 이때 BFS는 간선의 가중치가 모두 동일한 상황에서 사용하기 적합한데 이때 가중치가 모두 다른 상황이라면 BFS 보다는 데이크스트라 알고리즘을 사용하는것이 해당 문제상황을 해결하는것에 더 도움이 될것이다. 즉 간선의 가중치가 다른 상황에서 최단거리를 찾고자 할때 데이크스트라 알고리즘을 사용한다. 그래서 실사용되는 부분으로는 네트워크 라우팅 프로토콜, 빠른 길찾기(네비게이션), 소셜네트워크 분석(친구찾기) 등 활용도가 높은 알고리즘이다. 어떻게? 데이크스트라 알고리즘은 탐색을 시작할 정점에서 모든 ..
정의 (depth - 0) 함수형 인터페이스는 단 하나의 추상메소드를 갖는 인터페이스를 말한다. 여러개의 디폴트 메소드와 상관없이 하나의 추상메소드를 갖는다면 함수형 인터페이스이다. JAVA 8 부터 지원되는 람다는 함수형 인터페이스의 활용으로만 사용이 가능하다. 즉 파라미터로 메소드를 넘기고 싶을때 함수형 인터페이스의 활용으로 충분히 가능하다. 이는 같은 구조를 갖는 여러매소드를 하나로 만들어 좀 더 객체 지향적인 설계가 가능하게끔 만들어준다. 종류 (depth - 1) 이런 함수형 인터페이스는 직접 만들어 사용해도 무방하지만, 사실 이미 JAVA에서 지원해주는 기본 함수형 인터페이스를 활용해도 어지간한 상황은 다 해결이 가능하다. 기본적으로 제공되는 함수형 인터페이스는 하단의 공식문서를 참조하도록 하..
4주차 미션은 이메일 형식의 요구사항을 받아 미션을 해결하는 과제로 실제 업무를 하는 느낌을 주려 만든 문제 같았다. 요구사항도 굉장히 복잡하고 난이도도 꽤 있는 문제라 고민도 많이 하고 고치기도 많이 한 과제였다. 자세한 미션의 내용과 필자의 소스를 보고싶다면 하단의 링크를 참조하면 된다. https://github.com/0bliviat3/java-christmas-6-0bliviat3 GitHub - 0bliviat3/java-christmas-6-0bliviat3: 크리스마스 미션을 진행하는 저장소 크리스마스 미션을 진행하는 저장소. Contribute to 0bliviat3/java-christmas-6-0bliviat3 development by creating an account on Git..
3주차 미션은 로또 미션이였다 자세한 미션의 내용과 필자의 소스를 보고싶다면 하단의 링크를 참조하면 된다. https://github.com/0bliviat3/java-lotto-6 GitHub - 0bliviat3/java-lotto-6: 로또 미션을 진행하는 저장소 로또 미션을 진행하는 저장소. Contribute to 0bliviat3/java-lotto-6 development by creating an account on GitHub. github.com 소스의 디렉토리 트리는 다음과 같다. src ├─main │ └─java │ ├─config │ │ CountMessage.java │ │ ErrorMessage.java │ │ GameConfig.java │ │ GameLauncher.jav..