java 47

[JUNIT] TDD 단위 테스트 (Unit Test) 생성 및 사용법

TDD TDD에 대한 설명은 아래 포스팅을 참고해주세요!https://annovation.tistory.com/23 TDD (Test-Driven Development) feat. JUNITTDD  TDD(Test-Driven Development는 테스트 주도 개발이라는 소프트웨어 개발 방법론입니다. 개발을 시작하기 전에 테스트를 먼저 작성하고, 그 테스트를 통과하도록 최소한의 코드를 작성한 뒤 점진annovation.tistory.com단위 테스트 (Unit Test)단위 테스트는 프로그램의 가장 작은 단위(주로 함수나 메서드)를 독립적으로 테스트하여, 해당 단위가 올바르게 동작하는지 확인하는 소프트웨어 테스트 방식입니다. * 목적코드를 작성한 의도대로 작동하는지 검증코드 변경이 다른 부분에 영향을 ..

[Java 문법] HashMap

HashMapHashMap은 Map 인터페이스를 구현한 대표적인 클래스입니다.해시 테이블(Hash Table) 기반으로 동작하며, 데이터를 빠르게 검색하고 저장할 수 있습니다.빠른 데이터 접근과 효율적인 검색이 필요할 때 사용합니다.특징 키와 값으로 구성된 데이터를 저장데이터는 내부적으로 해시 코드(Hash Code)를 사용해 저장됩니다.동일한 해시 코드가 발생하면 체이닝 방식으로 충돌을 처리합니다.검색 시에도 키의 해시 코드를 계산하여 해당 위치에서 값을 빠르게 찾습니다.빠른 검색 속도평균적으로 O(1)의 시간 복잡도로 데이터를 검색하거나 삽입할 수 있습니다.키는 고유, 값은 중복 가능키가 중복되면 기존 값을 덮어씁니다.null 허용하나의 null 키와 여러 개의 null 값을 허용합니다.순서를 보장하..

[Java 문법] Map

Map Map은 Java에서 키(key)-값(value) 쌍으로 데이터를 저장하는 인터페이스입니다.키는 고유하며, 각 키는 하나의 값에 매핑됩니다.값을 저장하거나 조회할 때 키를 사용합니다.Java Collections Framework의 일부이며, 데이터 구조의 일종입니다.특징 키는 중복 불가하나의 Map에서 같은 키를 두 번 사용할 수 없습니다.새로운 값을 추가하면 기존 값을 덮어씁니다.값은 중복 가능여러 키가 같은 값을 가질 수 있습니다.Null 허용 여부키와 값 모두 null을 허용하는지 여부는 구현체에 따라 다릅니다.주요 메서드 메서드설명put(key, value)키-값 쌍 저장 또는 기존 키의 값을 갱신get(key)키에 매핑된 값을 반환 (키가 없으면 null 반환)getOrDefault(k..

[Java 문법] 삼항 연산자 (ternary operator)

삼항 연산자 (ternary operator) 삼항 연산자는 조건에 따라 두 가지 값 중 하나를 선택하는 데 사용됩니다. 형식은 다음과 같습니다 조건식 ? 참일 때의 값 : 거짓일 때의 값;  * 활용 삼항 다항식은 기본 삼항 연산자를 중첩하여 여러 조건을 처리하는 방식으로 확장됩니다. 조건1 ? 값1 : (조건2 ? 값2 : (조건3 ? 값3 : 기본값));  위의 형식은 다음과 같은 의미를 가집니다조건1이 참이면 값1을 반환조건1이 거짓이고, 조건2가 참이면 값2를 반환조건1과 조건2가 모두 거짓이고, 조건3이 참이면 값3을 반환모두 거짓이면 기본값을 반환예제  1. 조건에 따라 점수 등급 결정int score = 85;String grade = score >= 90 ? "A" ..

[Java 문법] Getter, Setter

Getter, Setter Getter와 Setter는 클래스의 필드(멤버 변수)에 접근하거나 수정하기 위해 사용하는 메서드입니다. 객체 지향 프로그래밍(OOP)에서 캡슐화(Encapsulation)의 원칙을 따르기 위해 사용됩니다. Getter필드 값을 읽기 위한 메서드메서드 이름은 일반적으로 get 접두어를 사용하고 필드 이름을 이어서 작성반환값이 필드의 데이터 타입과 동일 Setter필드 값을 변경하기 위한 메서드메서드 이름은 일반적으로 set 접두어를 사용하고 필드 이름을 이어서 작성반환값은 void, 매개변수로 필드와 동일한 타입의 값을 받음사용하는 이유   직접 접근 방지 : 클래스 외부에서 필드에 직접 접근하지 못하게 하고, 메서드를 통해 제어된 방식으로 접근데이터 무결성 유지 : 필드 값에..

[Java 문법] Stream API

Stream APIJava Stream은 Java 8에서 도입된 기능으로, 데이터를 선언적이고 효율적으로 처리할 수 있는 도구입니다.기존의 반복문(for, while)을 사용한 명령형 방식과 달리, Stream은 함수형 프로그래밍 스타일을 제공합니다.간단히 말해, Stream은 데이터를 처리하기 위한 파이프라인입니다.데이터를 필터링, 변환, 정렬, 집계 등의 작업을 간단하고 직관적으로 수행할 수 있습니다. * API 란? API(Application Programming Interface)란, 프로그래밍에서 특정 작업을 수행하도록 설계된 도구들의 집합입니다.Java의 Stream API는 데이터를 필터링, 변환, 집계하는 작업을 간단히 수행할 수 있도록 설계된 도구입니다.Stream API는 데이터를 다..

[Java 문법] 람다식 Lamda

람다 (Lamda)란?  람다(Lambda)는 Java 8에서 도입된 기능으로, 익명 함수(anonymous function)를 나타냅니다.즉, 이름이 없는 함수로, 단순히 입력값을 받아 작업을 수행한 후 결과를 반환하는 간결한 방식의 함수 표현입니다.람다는 주로 간단한 코드를 함수형 스타일로 작성할 때 사용되며, 코드의 가독성을 높이고 반복적인 작업을 줄이는 데 유용합니다. 익명 클래스를 간단히 표현한 문법추상 메서드가 여러 개인 인터페이스나 일반 클래스를 상속하는 익명 클래스는 람다식으로 변환할 수 없습니다.익명 클래스 (Anonymous Class)  익명 클래스(Anonymous Class)는 이름이 없는 클래스로, 일회성으로 사용할 객체를 정의하기 위해 만들어집니다.익명 클래스는 인터페이스나 추..

[Java 문법] 어노테이션 (Annotation)

어노테이션 (Annotation) Java에서 어노테이션(Annotation)은 코드에 메타데이터(추가 정보)를 제공하는 도구입니다.어노테이션은 클래스, 메서드, 필드, 매개변수, 패키지 등에 붙여서 컴파일러, 런타임, 또는 도구에게 특정 동작을 수행하거나 정보를 전달하는 역할을 합니다. 역할  컴파일러 지시컴파일러에게 코드 검사와 관련된 정보를 제공합니다.ex. @Override는 메서드가 부모 클래스 또는 인터페이스의 메서드를 재정의하고 있음을 컴파일러에 알림.코드 설명문서화나 코드의 동작을 설명하는 데 사용됩니다.ex. @Deprecated는 더 이상 사용되지 않는 코드임을 나타냅니다.런타임 동작 변경런타임 시 어노테이션 정보를 읽어 특정 동작을 수행합니다.ex. @Entity, @Controlle..

[Java 문법] 쓰레드 (Thread)

쓰레드 (Thread) 쓰레드(Thread)는 프로그램 내에서 실행되는 가장 작은 작업 단위입니다.자바에서 쓰레드는 하나의 프로세스 내에서 여러 작업을 동시에 수행(병렬 처리)할 수 있도록 지원하는 기능입니다.프로세스(Process) : 실행 중인 프로그램.쓰레드(Thread) : 프로세스 내에서 실행되는 작업 단위특징  멀티스레딩(Multithreading)하나의 프로세스에서 여러 쓰레드가 동시에 실행되는 방식.예: 웹 브라우저에서 하나의 쓰레드가 화면을 렌더링하고, 다른 쓰레드가 파일을 다운로드.공유 메모리쓰레드는 같은 프로세스 내에서 메모리를 공유하므로, 서로 데이터를 쉽게 주고받을 수 있음.하지만 공유 자원을 동시에 접근할 때 동기화 문제가 발생할 수 있음.경량성쓰레드는 프로세스보다 가볍고 생성,..

[Java 문법] 래퍼 클래스 (Wrapper Class)

래퍼 클래스 (Wrapper Class ) Java의 래퍼 클래스 (Wrapper Class)는 기본 자료형(primitive types)을 객체로 다룰 수 있도록 만들어진 클래스입니다. 기본 자료형은 값만 저장하는 단순한 데이터 타입이고 객체는 값과 함께 메서드와 속성을 가질 수 있기 때문에, 기본 자료형을 객체처럼 다룰 수 있도록 Java에서 제공하는 클래스입니다.기본 자료형과 Wrapper Class의 매핑 기본 자료형 (Primitive Type)래퍼 클래스 (Wrapper Class)byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean 사용하는 이유  객체가 필요한 경우Java 컬렉션 프레임워크(..