Java(35)
-
JUnit : 자바 단위 기반 테스트
[JUnit 기본 개념]1. JUnitJUnit은 Java에서 단위 테스트를 작성하고 실행할 수 있도록 도와주는 프레임워크단위 테스트 (Unit Test): 하나의 작은 기능이 기대한 대로 동작하는지 검증하는 테스트 테스트 자동화 지원: JUnit은 메서드가 올바르게 동작하는지 자동으로 검증할 수 있다. 2. JUnit을 사용하는 이유"그냥 main() 메서드에서 System.out.println()으로 출력해서 확인하면 되지 않나?" 라는 생각이 들 수도 있지만, 테스트 자동화의 핵심은 테스트를 반복적으로 빠르고 정확하게 실행하는 것이다. 2-1. System.out.println() 방식의 단점public static void main(String[] args) { Calculator cal..
2025.03.04 -
SOLID 원칙 : 객체 지향 설계 원칙
1. 단일 책임 원칙 (SRP: Single Responsibility Principle)클래스는 단 하나의 책임만 가져야 한다.하나의 클래스가 변경되어야 하는 이유는 단 하나뿐이어야 한다.예: 보고서 생성과 저장 두가지 역할을 하는 클래스 -> 보고서 생성, 파일 저장 클래스로 분리2. 개방-폐쇄 원칙 (OCP: Open-Closed Principle)소프트웨어 요소(클래스, 모듈, 함수 등)는 확장에 열려 있고, 수정에는 닫혀 있어야 한다. 새로운 기능이 추가될 때 기존 코드를 수정하지 않고도 확장할 수 있어야 한다.다형성 (인터페이스와 추상 클래스)를 활용한다.예: Payment 인터페이스를 사용해서 신용카드, 카카오페이 등의 결제수단 클래스를 구현한다.그리고 결제를 진행하는 메서드의 매개변수 타..
2025.03.04 -
스트림 API
참고: 자바에서 사용되는 스트림 2가지 자바에서 스트림은 데이터 흐름을 다루는 개념이며, 크게 두 가지로 나눌 수 있다. 단어는 같아도 사용 방식은 전혀 다른 개념이므로 헷갈리지 않아야 한다. 입출력 스트림 (I/O Stream) 자바 8 스트림 API (Stream API) 사용 파일, 네트워크, 메모리 같은 곳에서 데이터를 주고받는 데 사용 리스트, 배열 같은 컬렉션 데이터를 효율적으로 처리하는 데 사용 목적 데이터 입출력 용도(순차적 처리) 데이터 가공 및 연산 용도(함수형 처리)데이터 형태바이트, 문자 기반객체(컬렉션) 기반방식파일에서 텍스트 읽기, 소켓 통신리스트 필터링, 데이터 변환 1. 스트림 APIStream API는 컬렉션(List, Set 등) 데이터를 함수형 스타일로 처리할 수..
2025.02.28 -
익명 클래스, 람다식, 메소드 참조
1. 익명 클래스1-1. 익명 클래스 인터페이스명 변수명 = new 인터페이스명() {};익명 함수 = 이름 없는 함수자바에서는 익명 함수를 지원하지 않고, 익명 클래스가 대신 사용된다. 익명 함수 () → 함수 자체에 이름이 없음익명 클래스 {} → 인터페이스를 구현하는데, 클래스의 이름이 없음자바는 객체지향 언어라 원래 익명 함수를 지원하지 않았지만, 익명 클래스로 비슷한 역할을 한다. 인터페이스를 클래스로 직접 구현하지 않고, 익명 클래스를 통해 간편하게 구현하여 사용할 수 있다. 1-2. 익명 클래스 사용 예시1) 일반적인 클래스 사용interface Calculator { int add(int a, int b);}// 보통은 이렇게 클래스를 별도로 정의해서 인터페이스 구현class MyC..
2025.02.28 -
자바 정렬 - Comparator, Comparable
1. 일반 배열, 리스트 정렬//1. 일반 배열 정렬: Arrays.sort()int[] intArr = {5, 2, 8, 1, 3};Arrays.sort(intArr);System.out.println(Arrays.toString(intArr)); // [1, 2, 3, 5, 8]Integer[] integerArr = {5, 2, 8, 1, 3};Arrays.sort(integerArr, Collections.reverseOrder()); //객체 배열만 가능System.out.println(Arrays.toString(integerArr)); // [8, 5, 3, 2, 1]//2. 일반 리스트 정렬: Collections.sort()List intArrayList = Arrays.asList(5,..
2025.02.27 -
Collection 인터페이스
1. Collection 1-1. Collection이란? 많은 데이터들을 효과적으로 처리할 수 있는 방법을 제공하는 클래스들의 집합Collection 인터페이스는 List, Set, Queue 로 크게 3가지 상위 인터페이스로 분류 된다.(컬렉션은 List, Set, Queue에서 사용하는 공통사항을 뽑아 만든 인터페이스) List, Set, Queue는 Collection 인터페이스를 상속 받지만, 구조 상의 이유로 Map은 따로 구현되어 있다.1-2. Collection을 사용하는 이유일관된 API: Collection 에서 제공하는 규격화된 메소드를 사용함으로 일관된 사용과 유지보수가 가능하다.프로그래밍 비용 감소: 이미 제공된 자료구조를 활용하는 것으로 low-level의 알고리즘을 고민할 시간..
2025.02.26