DEV/Java

· DEV/Java
Java의 로그 남기기 - 🐥 카카오 테크 캠퍼스 Java 로깅은 애플리케이션 런타임 동안 로그 메시지를 기록하고 저장하는 데 사용되는 메커니즘입니다. 로깅의 주요 목적은 개발자가 응용 프로그램에서 발생할 수 있는 문제를 식별할 수 있는 방법을 제공하고 디버깅 및 성능 조정을 지원하는 것입니다. Java는 개발자가 콘솔이나 파일과 같은 다른 대상에 메시지를 기록할 수 있는 java.util.logging이라는 기본 제공 로깅 패키지를 제공합니다. 또한 로깅 패키지는 SEVERE, WARNING, INFO, CONFIG, FINE, FINER 및 FINEST를 비롯한 여러 가지 로깅 수준을 제공합니다. 이러한 수준은 메시지의 심각도를 나타내며 기록되는 메시지를 결정합니다. Logger 생성 Java에서 로..
· DEV/Java
Java의 예외처리 예외 처리의 궁극적인 목적은 런타임 오류를 처리하고 이를 복구하고 애플리케이션의 정상적인 흐름을 유지하기 위한 메커니즘을 제공하는 것입니다 즉 오류를 복구하고 프로그램을 완전히 중단시키는 대신 프로그램 실행을 계속하는 메커니즘을 제공하는 것입니다. 또한, 실행 오류가 발생한 경우 오류의 과정을 재현하는 것은 현실적으로 힘들기 때문에 에러 발생시 log를 남겨서 추후 log 분석을 통해 그 원인을 파악하여 bug를 수정하는 것이 중요합니다 오류의 종류 : 컴파일 오류 VS 실행 오류 컴파일 오류(compile error) 프로그램 코드 작성 중 발생하는 문법적 오류 최근에는 IDE에서 대부분의 컴파일 오류는 detection 됨 실행 오류(runtime error) 실행 중인 프로그램이..
· DEV/Java
Java의 Reduce() Java의 reduce() 연산은 프로그래머가 정의한 연산을 스트림의 요소에 적용합니다. T reduce(T identity, BinaryOperator accumulator) reduce() 메서드의 두 번째 인수는 람다 식 또는 작업을 지정하는 BinaryOperator 구현 클래스입니다. reduce() 작업은 최종 작업이 호출될 때 수행되며 스트림의 요소를 소비합니다. reduce() 작업의 결과는 두 번째 인수로 전달된 람다 식 또는 BinaryOperator 구현 클래스에 의해 결정됩니다. 예: reduce() 작업을 사용하여 배열에 있는 모든 요소의 합을 찾습니다. Arrays.stream(arr).reduce(0, (a,b)->a+b); reduce() 메서드의 ..
· DEV/Java
Stream - Collection 요소(List,Queue) 등의 데이터 흐름 처리하는데 사용 된다 - 일반적으로 stream - 가공 - 수집 단계를 거친다 스트림(Stream)은 자바 8부터 추가된 기능으로, 데이터의 흐름을 처리하는 데 사용되는 추상화된 기능입니다. Collection 요소(List,Queue)를 람다식으로 처리하도록 지원하는 함수형 프로그래밍 기법이라고 볼 수 있습니다. 스트림을 사용하면 반복자를 사용하지 않고도 원하는 데이터를 필터링하고 맵핑하는 등의 복잡한 연산을 수행할 수 있습니다. 스트림은 원본 데이터를 변경하지 않고, 새로운 결과를 생성합니다. 또한, 스트림은 "지연 연산"을 합니다. 즉, 필요한 최종 결과를 만들기 위해 중간 연산을 실행하지 않고 최종 연산 시점에 한번..
· DEV/Java
Java의 Lambda 람다 식은 순수 함수를 사용하는 프로그래밍 패러다임인 함수형 프로그래밍을 지원하는 방법으로 Java 8에 도입되었습니다. 람다 식을 사용하면 익명 함수(Lambda)를 간결하게 만들고 코드를 더 읽기 쉽게 만들 수 있습니다. 다음은 람다 식에 대한 몇 가지 핵심 사항입니다. 람다 식은 이름이 없는 익명 함수를 생성합니다. 0개, 1개 또는 여러 매개변수를 가질 수 있습니다. 매개변수가 하나뿐이고 그 데이터 유형이 유추되는 경우에는 괄호를 생략할 수 있습니다. 람다 식에 문장이 하나만 있는 경우 중괄호를 생략할 수 있습니다. 예시 조각 코드 람다식으로 표현 (int x, int y) -> {return x+y;} 매개 변수가 하나인 경우 자료형과 괄호 생략가능 str->{System..
· DEV/Java
Java의 내부 클래스(Inner Class) - 🐥 카카오 테크 캠퍼스 클래스 내부에 선언하는 클래스(또는 중첩 클래스)입니다. 자신이 속한 외부 클래스와 함께 사용하는 경우가 잦습니다 다른 외부 클래스에서 사용할 일이 거의 없는 경우에 내부 클래스로 선언해서 사용합니다. 내부 클래스의 종류 인스턴스 내부 클래스, 정적(static) 내부 클래스, 지역(local) 내부 클래스, 익명(anonymous) 내부 클래스 인스턴스 내부 클래스 내부적으로 사용할 클래스를 선언 (private으로 선언하는 것을 권장) 외부 클래스가 생성된 후 생성됨 ( 정적 내부 클래스와 다름 ) private이 아닌 내부 클래스는 다른 외부 클래스에서 생성할 수 있음 주의 사항 이너 클래스는 외부 클래스가 생성 될 때 자동으..
· DEV/Java
Interface의 활용 - 🐥 카카오 테크 캠퍼스 Interface의 정의와 사용 자바에서 인터페이스란 추상 메서드와 상수 필드만을 가지는 클래스와 유사한 형태의 추상 타입이다. 인터페이스를 사용하면 클래스간의 의존성을 낮출 수 있으며, 다형성을 구현할 수 있다. 인터페이스는 다른 클래스에서 해당 메서드를 구현함으로써 인터페이스를 사용하는 클래스에서 해당 메서드를 호출할 수 있도록 한다. Strategy 패턴의 정의와 사용 Strategy 패턴은 객체의 행위를 클래스에서 구현하는 것이 아니라, 행위를 구현한 전략을 가진 객체를 전달받아 실행하는 패턴이다. Strategy 패턴을 사용하면 실행시간에 알고리즘을 선택할 수 있으며, 기존 코드의 변경 없이 새로운 알고리즘을 추가할 수 있다. Strategy ..
· DEV/Java
Interface 인터페이스는 메소드의 틀만 정의하고, 구현체는 없는 상태에서 받아들인다. interface 인터페이스 이름 { public static final float pi = 3.14F; public void makeSomething(); } 모든 변수는 상수로 선언된다 - public static final 모든 메서드가 추상 메서드로 선언된다 - public abstract 인터페이스의 핵심 원리 인터페이스는 클래스와 같은 타입이다. 클래스와 다르게 인터페이스는 상속이 아닌 구현을 통해 사용된다. 인터페이스는 구현부가 없는 추상 메소드를 가지고 있어, 클래스가 인터페이스를 구현하면 해당 추상 메소드를 반드시 구현해야 한다. 하나의 클래스는 여러 개의 인터페이스를 구현할 수 있다. 타입 상속을..
· DEV/Java
타입 상속 자바에서 타입 상속(Type Inheritance)이란, 클래스와 인터페이스 간의 관계를 나타내는 것으로, 부모 클래스나 인터페이스의 멤버들을 자식 클래스나 인터페이스에서 사용할 수 있도록 하는 것을 말합니다. 타입 상속을 통해 자식 클래스나 인터페이스는 부모 클래스나 인터페이스의 멤버들을 물려받아 사용할 수 있습니다. 이를 통해 코드의 재사용성을 높일 수 있고, 클래스나 인터페이스 간의 계층 구조를 표현할 수 있습니다. 자바의 타입 상속 원리 자바에서 타입 상속은 extends 키워드를 사용해 부모 클래스를 지정하거나, implements 키워드를 사용해 인터페이스를 구현하여 구현됩니다. 자식 클래스나 인터페이스는 부모 클래스나 인터페이스를 상속받음으로써, 부모 클래스나 인터페이스의 멤버들을..
· DEV/Java
추상클래스(Abstract Class) 추상 클래스란 인스턴스화 할 수 없는 클래스로, 하나 이상의 추상 메소드(abstract method)를 포함하는 클래스입니다. 추상 메소드는 선언만 있고 구현이 없는 메소드입니다. 추상 클래스는 하위 클래스에서 공통된 기능을 상속하면서, 하위 클래스가 구현해야 할 기능을 강제하는 역할을 합니다. 특징 추상 클래스는 인스턴스를 생성할 수 없습니다. 따라서, 추상 클래스를 상속받은 자식 클래스의 인스턴스를 통해 사용할 수 있습니다. 추상 클래스는 추상 메소드와 일반 메소드를 모두 포함할 수 있습니다. 추상 클래스를 상속받은 자식 클래스는 추상 클래스에 선언된 추상 메소드를 모두 구현해야 합니다. Example. 코드로 알아보자 abstract class Animal ..
berom
'DEV/Java' 카테고리의 글 목록 (6 Page)