본문 바로가기

Language/Java33

Java 17 Sealed Class 문법 알아보기 (상속의 범위를 제어) Java는 OOP 언어로, 클래스를 상속해서 기능을 확장하거나 재정의하는 패턴이 매우 흔하게 사용된다.그런데 모든 클래스가 무제한으로 상속이 가능하다면, 의도치 않은 확장이나 보안상의 허점이 발생할 수 있다.이런 문제를 해결하기 위해 Java 17에서 Sealed Class라는 새로운 기능이 정식으로 도입되었다.이번 글에서는 Sealed Class 문법이 왜 필요하게 되었는지, 어떤 식으로 사용할 수 있는지 실제 코드와 함께 살펴보려 한다! Java 17부터 도입된 Sealed Class 문법이란?Sealed Class는 해당 클래스를 상속받을 수 있는 하위 클래스들을 명시적으로 제한할 수 있도록 해주는 기능이다.쉽게 말해서 "이 클래스를 상속받을 수 있는 애들은 내가 정한 애들만 가능해!"라는 의미.. 2025. 7. 23.
[Java API] 함수형 프로그래밍 익숙해지기(java.util.function 패키지) https://claremont.tistory.com/entry/Java-Stream-API%EC%99%80-%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D [Java] Stream API와 함수형 프로그래밍Java 8부터 도입된 Stream API는 프로그래밍 스타일을 완전히 바꿔놓았다고 해도 과언이 아니다. 처음에는 그냥 반복문을 대체하는 기능 정도로만 생각했는데, 쓰면 쓸수록 '이거 꽤 강력한데?'라는claremont.tistory.com먼저 함수형 프로그래밍이 뭔지! 개념에 대해 알고 오자 :> Java에서는 람다 표현식(Lambda Expressions)을 활용하여 간결한 코드 작성을 지원하기 위해 표준 함수.. 2025. 3. 17.
[Java] Stream API와 함수형 프로그래밍 Java 8부터 도입된 Stream API는 프로그래밍 스타일을 완전히 바꿔놓았다고 해도 과언이 아니다. 처음에는 그냥 반복문을 대체하는 기능 정도로만 생각했는데, 쓰면 쓸수록 '이거 꽤 강력한데?'라는 느낌이 든다. 특히, 함수형 프로그래밍 스타일과 맞물려서 사용하면 코드가 훨씬 깔끔해지고 유지보수가 편리해진다. ㅁStream API: 컬렉션(List, Set 등)의 요소들을 선언형(declarative) 방식으로 처리할 수 있게 도와주는 기능기존의 for-each 문을 사용한 코드보다 훨씬 간결하게 데이터를 필터링하거나 변환할 수 있다 (기존의 반복문 방식)public static void withoutStream() { String[] arrayOfStrings = {"A", "B", "C".. 2025. 3. 14.
[Java] 버전 수정 기여(김영한의 실전 자바 - 중급 1편) Java Spring 생태계의 거장이신 김영한님 강의를 매우 좋아한다김영한님의 많은 강의들을 결제했으며, 그중 Java 강의는 현재 중급 2편까지 완강한 상태이다! 오랜만에 다시 들어가서 강의를 보는데 재밌는 걸 발견했다 이전에 교재에 오타가 있어 제보를 했더니, 정말 감사하게 수정 이력에 내 이름을 넣어주셨다(클레어몬트) 물론 큰 기여는 아닐지라도, 내가 정말 좋아하는 강의에 보탬이 됐다는 게 행복하고 뿌듯하다 😊#SK, #SKALA, #SKALA1기 2025. 3. 14.
[Java API] 정렬 메서드(sort) 종류와 차이점 https://claremont.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%A0%95%EB%A0%AC-%EC%A0%95%EB%A6%AC-%EB%B0%8F-%EC%84%A0%ED%83%9D-%EB%A7%A4%EB%89%B4%EC%96%BC [알고리즘] 정렬 정리 및 선택 매뉴얼ㅇ버블정렬 - 실무에서는 아예 사용하지 말자 "제자리 + stable" O(n^2) ㅇ선택정렬: 우선순위 큐 (무순 리스트로 구현) "제자리 + unstable" O(n^2): 느리다 - 소규모 입력에 적합 ㅇ삽입정렬: 우선순위 큐claremont.tistory.com먼저 위 포스트를 통해 정렬에 대한 기본적인 공부를 하고 오는 것을 추천한다 자바에서 Primitive T.. 2024. 10. 29.
[Java] 컬렉션 프레임워크 선택 매뉴얼 https://claremont.tistory.com/entry/Java-API-%EC%BB%AC%EB%A0%89%EC%85%98-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%ACCollection-Framework [Java API] 컬렉션 프레임워크(Collection Framework)https://claremont.tistory.com/category/Computer%20Science/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0 'Computer Science/자료구조' 카테고리의 글 목록전자정보통신공학, 컴퓨터공학 전공claremont.tistory.comhttps://claremont.tistory.com/catclaremont.tistor.. 2024. 10. 27.
[Java API] java.util.Collections 메서드 https://claremont.tistory.com/entry/Java-API-%EC%BB%AC%EB%A0%89%EC%85%98-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%ACCollection-Framework [Java API] 컬렉션 프레임워크(Collection Framework)https://claremont.tistory.com/category/Computer%20Science/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0 'Computer Science/자료구조' 카테고리의 글 목록전자정보통신공학, 컴퓨터공학 전공claremont.tistory.comhttps://claremont.tistory.com/catclaremont.tistor.. 2024. 10. 27.
[Java API] Comparable, Comparator 인터페이스 Java에서 객체의 정렬을 구현할 때 주로 사용하는 두 가지 인터페이스인 Comparable과 Comparator에 대해 알아보겠다. 이 두 인터페이스는 컬렉션의 정렬 기준을 정의하는 데 중요한 역할을 하며, 각각의 특성과 사용법을 이해하는 것이 필요하다. 1. Comparable 인터페이스Comparable 인터페이스는 객체 자체에 기본 정렬 순서를 정의할 때 사용된다. 이 인터페이스를 구현하면, 해당 객체는 기본적인 정렬 기준을 가지게 되며, Collections.sort() 또는 Arrays.sort() 메서드를 사용할 때 자동으로 이 기준을 따르게 된다. [주요 메서드]- int compareTo(T o) : 현재 객체와 매개변수로 전달된 객체를 비교하여 순서를 결정하는 메서드이다. 이 메서드는 .. 2024. 10. 25.
[Java API] Iterable, Iterator 인터페이스 Java에서 Iterable과 Iterator는 컬렉션을 순회하기 위해 사용하는 두 가지 중요한 인터페이스이다. 이 두 인터페이스는 밀접하게 연관되어 있으며, 각각의 역할에 따라 순회를 수행한다. 이번 글에서는 Iterable과 Iterator의 차이점과 그 사용법에 대해 자세히 설명하겠다. 1. Iterable 인터페이스Iterable은 Java에서 반복 가능한 객체를 나타내는 인터페이스이다. Iterable을 구현한 클래스는 for-each문을 사용하여 요소를 순회할 수 있다. Java의 대부분의 컬렉션 클래스(List, Set, Queue 등)가 Iterable을 구현하고 있어, 이러한 클래스들은 손쉽게 for-each문으로 순회할 수 있다. [주요 메서드]- Iterator iterator() :.. 2024. 10. 25.