Java

·Java/김영한
김영한의 실전 자바 - 기본편 강의 | 김영한 - 인프런김영한 | 실무에 필요한 자바 객체 지향의 핵심 개념을 예제 코드를 통해 쉽게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문www.inflearn.com 접근 제어자자바는 `public`, `private`와 같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. 이런 접근 제어자가 왜 필요하는 지 예제를 통해 이유를 알아보자. 스피커 객체를 만들어보자.스피커는 음량을 높이고, 내리고, 현재 음량을 확인할 수 있는 단순한 기능을 제공한다. 요구사항 대로 스피커의..
·Java
자원이란?Java에서 자원(resource)이란 일반적으로 프로그램이 실행되는 동안 사용되는 외부의 한정된 시스템 자원을 의미한다. 자원은 다양한 형태로 존재하며, 적절히 관리하지 않으면 누수(resource leak)가 발생하거나 시스템 성능에 악영향을 미칠 수 있다. 따라서 자원을 다 쓰고 난 후에는 close와 같은 자원 해제를 해줘야 한다. Java 7 버전 이전에는 사용하고 난 자원을 반납하기 위해 `try-catch-finally` 구문을 사용했었다.  Java 7 버전부터 추가된 `try-with-resources` 구문은 `try` 블록에서 리소스를 선언하고 `try` 블록이 종료되면 자동으로 반납(close)해주는 구문이다.   자원의 예파일: 파일 읽기/쓰기와 관련된 `File` 또는 ..
·Java
Stream이란?Java의 Stream API는 일련의 데이터 흐름을 표준화된 방법으로 쉽게 처리할 수 있도록 지원하는 클래스의 집합(패키지)이다. 오라클 공식 문서에서는 Stream 패키지를 요소들의 Stream에 함수형 연산을 지원하는 클래스라고 정의하고 있다.  즉, Java의 Stream을 이용하면 일련의 데이터를 함수형 연산을 통해 표준화된 방법으로 쉽게 가공, 처리할 수 있다. `Stream`는 데이터 요소의 연속된 시퀀스로서, 데이터 소스를 기반으로 필터링, 변환, 집계 등의 작업을 처리할 수 있다.데이터 소스 변경 금지: Stream은 데이터 소스를 직접 수정하지 않는다.목적: 컬렉션과 달리 데이터 요소를 직접 관리하지 않고, 선언전 데이터 처리를 수행하기 위함이다.Stream의 구성 요소..
·Java
static`static` 키워드는 주로 메모리 관리를 위해 사용되며, 변수나 메서드와 같은 멤버가 특정 클래스의 인스턴스에 속하는 것이 아니라 클래스 자체에 속함을 의미한다. 따라서 객체의 인스턴스를 생성하지 않고도 정적 멤버에 접근할 수 있다. 일반적으로 우리가 정의한 클래스는 메모리의 Static 영역에 생성되며, `new` 연산자를 통해 생성한 객체는 Heap 영역에 할당된다. Heap 영역에 생성된 객체는 Garbage Collector에 의해 자동으로 관리되지만, Static 영역에 생성된 데이터는 Garbage Collector의 관리 대상이 아니다.  Static 영역의 데이터는 프로그램이 종료될 때까지 메모리에 유지되며, 이는 모든 객체가 해당 데이터를 공유할 수 있는 장점을 제공한다. ..
·Java
커스텀 예외가 필요한 이유일반적으로 자바 예외는 대부분의 상황을 다룰 수 있지만, 비즈니스 로직에 특화된 예외나 세분화된 예외 처리가 필요할 때가 있다. 이 경우는 커스텀 예외를 통해 문제를 보다 명확하게 전달할 수 있다. 주요 사용 이유비즈니스 로직에 따른 예외 처리: 특정 비즈니스 로직에서 발생할 수 있는 오류를 명확하게 표현기존 자바 예외를 세분화하여 특정 상황에 맞게 처리하기자바의 예외는 크게 체크 예외와 언체크 예외로 나눌 수 있다. 다음 섹션에서는 두 경우 모두에 대해 사용자 정의 예외를 구현해본다.사용자 정의 체크 예외(Custom Checked Exception)체크 예외는 코드에서 명시적으로 처리해야 하는 예외이다. 예를 들어, 파일을 읽는 코드에서 파일이 존재하지 않는 경우 예외를 던진..
·Java
AssertJ 없이 테스트하는 경우예외가 발생했는지 테스트하려면, 예외를 직접 catch 후 assertion을 수행해야 한다:try { // ...} catch (Exception e) { // assertions}하지만, 예외가 발생하지 않으면 테스트가 통과해 버리므로, 테스트가 실패하도록 명시적으로 설정하는 것이 필요하다. 이는 코드가 불필요하게 복잡해질 수 있음을 의미한다. AssertJ로 테스트하기Java 8 이상 버전부터는 AssertJ와 람다 표현식을 이용해 예외를 더 간단하게 검증할 수 있다. `assertThatThrownBy()` 사용리스트에서 인덱스가 범위를 벗어나는 경우, IndexOutOfBoundsException`이 발생하는 지 확인해보자.assertThatThrow..
G.H
'Java' 카테고리의 글 목록 (7 Page)