나를 기록하다
article thumbnail
[JUnit - 1] Junit 5란 무엇인가? (어노테이션, 정의, 테스트 클래스와 메서드)
Java 2023. 11. 1. 15:20

우아한테크코스의 프리코스를 진행하며 테스트의 중요성을 계속해서 느끼고 있다. 프리코스를 경험하기 전까지 테스트 코드에 전혀 무지했기에 자바 진영에서 가장 많이 사용되는 Junit, 그리고 그중에서 최신 버전인 Junit5에 대해서 정리하고자 한다. JUnit 5란 무엇인가? 공식 홈페이지를 살펴보면 아래와 같이 설명한다. 해석하자면 아래와 같다. Junit5는 세 가지 하위 프로젝트의 여러 모듈로 구성되어 있다. Junit 5 = Junit Platform + Junit Jupiter + Junit Vintage Junit Platform JVM에서 테스트 프레임워크를 실행하기 위한 기반 역할 플랫폼에서 실행되는 테스트 프레임워크를 개발하기 위한 TestEngine API를 정의 콘솔 런처를 제공하여 플..

article thumbnail
[모던 자바 인 액션] 자바의 변화(8 ~ 11)
Java/모던 자바 인 액션 2023. 10. 31. 19:29

자바 8 등장 전과 후 과거의 코드 Collections.sort(inventory, new Compartor() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()); } }); 자바 8을 이용한 자연어에 더 가까운 코드 inventory.sort(comparing(Apple::getWeight)); 자바 8이 제공하는 새로운 기술들 스트림 API 메서드에 코드를 전달하는 기법 인터페이스의 디폴트 메서드 자바 8은 병렬 연산을 지원하는 스트림이라는 새로운 API를 제공한다. 데이터베이스 질의 언어에서 고수준 언어로 원하는 동작을 표현하면, 구현(자바에서는 스트림 라이브러리가 이 역할을 수행)에서..

article thumbnail
[java] private static은 언제 필요할까?(접근 제한자, static 키워드, static 메모리 구조)
Java 2023. 10. 26. 21:00

우아한테크코스 1주차 프리코스 과제인 숫자 야구 게임이 끝나고 코드 리뷰를 하면서 private static 메서드를 발견했다. 접근 제한자부터 static과 메모리 구조까지 기초 개념들을 다시 확실하게 정리하고자 여러 블로그와 자료를 참고하여 정리한다. 참고한 자료들은 하단 참고자료란에 모두 기재해두었다. 접근 제한자 우선 접근 제한자의 종류는 다음과 같다. 접근 제한자 적용 대상 접근 가능 대상 public 클래스 / 필드 / 생성자 / 메서드 모든 대상 protected 필드 / 생성자 / 메서드 같은 패키지 또는 자식 클래스 default 클래스 / 필드 / 생성자 / 메서드 같은 패키지에 소속된 클래스 private 필드 / 생성자 / 메서드 클래스 내부 Static 키워드 사전적 정의 정적인,..

article thumbnail
[Java] 클래스 내의 public 변수와 getter 메서드의 대체 방법
Java 2023. 10. 25. 20:00

클래스 내의 public 변수 선언시 주의사항 우아한테크코스 프리코스를 진행하면서 사용자 클래스를 생성했는데, userNumbers를 static으로 선언하여 외부 클래스에서도 접근하여 볼, 스트라이크를 구하고 유효성 검사를 수행이 가능하도록 설계했다. 하지만 이때 경고 밑줄이 등장하면서 내가 잘못 설계한 두 가지 오류를 알려준다.하나씩 설명하겠다. Utility classes should not have public constructors 위 오류는 이전 발행 글에 기재하였다. static으로 선언하여 인스턴스를 생성하지 않고 바로 사용할 수 있도록 설계하였기에, 혹시 모를 실수를 방지하려면 설계 시 private 생성자를 이용하여 인스턴스 생성을 막아둬야 한다. 자세한 내용은 아래 글을 참고하기 바란..

article thumbnail
[Java] private 생성자의 사용 이유, final, 자바 메모리 구조
Java 2023. 10. 25. 15:00

sonarlint의 코드리뷰 프리코스를 진행하면서 내 코드를 자동으로 리뷰해주는 IDE 확장 플러그인인 sonarlint의 도움을 많이 받았다. sonarlint는 코드에 문제가 있다고 판단되면 해당 코드에 물결표 밑줄 표시를 하고 마우스를 가져가면 해당 코드의 문제점에 대해서 설명해준다. 아래에 출력을 담당하는 GameOutput 클래스의 클래스명에 밑줄로 경고를 하는데 이유가 뭘까? 위 사진처럼 출력을 담당하는 기능을 하는 GameOutput에 따로 생성자를 만들지 않고 메서드들을 static으로 선언하여 외부 클래스에서도 GameOutput.{메서드명}과 같이 사용할 수 있도록 하였다. 이유 그런데 여기서 왜 이슈가 발생했을까? 이유는 아래에 sonarlint가 자세하게 설명해준다. 설명 설명은 다..

article thumbnail
[Java] 익명클래스, 람다와 스트림
Java 2023. 10. 11. 23:34

익명 클래스 이름이 없는 클래스 내부 클래스 중 특별한 클래스 1회성 코드. 해당 객체 하나만을 위한 클래스 [예시] 카페에서 커피 주문. 특별한 손님을 위한 익명 클래스 public class Main { public static void main(String[] args) { //익명 클래스 Coffee c1 = new Coffee(); c1.order("아메리카노"); System.out.println("------------------------"); Coffee c2 = new Coffee(); c2.order("카페라떼"); System.out.println("------------------------"); //굉장히 친한 친구 방문 Coffee specialCoffee = new Coffe..

profile on loading

Loading...