본문 바로가기

Backend/Java

(6)
[Java] JaCoCo를 활용하여 code coverage 측정하기 안녕하세요. 이번 포스팅에서는 JaCoCo라는 Java Code Coverage Library를 활용하여 코드 커버리지를 간단한 예제와 함께 측정해보겠습니다. 우선 Code Coverage란 무엇일까요? Code Coverage Code Coverage란 소프트웨어에서 test code가 본 코드를 얼마나 커버하고 있냐를 측정해주는 지표입니다. 테스트를 진행하였을 때 코드 자체가 몇% 나 실행되었느냐로 생각하실 수 있을 것입니다. 원래 원칙적으로 test code는 모든 시나리오에 대해서 설계되어야 합니다. 실제로 배포하는 서비스라면 더욱더 모든 시나리오를 커버하려 합니다. 하지만 현실적으로 내가 지금 작성한 테스트 케이스가 모든 케이스를 커버하는지를 객관적인 지표로 확인할 수 있는 방법 중에 하나가 C..
[Java] Collections framework 이해하기 이번 포스팅에서는 Collections Framework에 대해 이해하는 시간을 갖도록 하겠습니다. 본 포스팅은 생활코딩님의 Java Collections framework를 참고하였습니다. (https://www.youtube.com/watch?v=KaPbVAxi5LE) 1.ArrayList import java.util.ArrayList; public class MainClass { public static void main(String[] args) { String[] objectArr = new String[2]; objectArr[0] = "1"; objectArr[1] = "2"; // objectArr[2] = "3"; ArrayList al = new ArrayList(); al.add("..
[Java] 제네릭 이해하기 안녕하세요. 오늘 포스팅에서는 JDK1.5 이후로 추가된 자바의 제네릭스에 대해 포스팅해보겠습니다. 1. 제네릭이란? Generics add stability to your code by making more of your bugs detectable at compile time. – Oracle Javadoc 제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. – 생활코딩 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. – 자바의 정석 기본적으로 클래스 내부에서 사용할 데이터타입을 사전에 정의하지 않기 때문에 인스턴스 생성 시에 해당 클래스 안의 데이터 타입을 동적으로 넘겨줄 수 있습니다. 또한 ..
[Java] static 제어자 이해하기 이번 포스팅에서는 자바의 static 키워드에 대해 이해해보는 시간을 갖도록 하겠습니다. static 키워드는 '클래스의' 혹은 '공통의'라는 의미를 내포하고 있습니다. 가령 class Cards { static int width = 5; static int height = 4; String kind; int numberOfCard; public Cards(String k, int n) { this.kind = k; this.numberOfCard = n; } } 다음과 같은 class가 있다고 해보겠습니다. 저희는 Card Class를 통해 여러 가지의 Card 인스턴스를 만들 수 있습니다. 가령 클로버 4의 카드, 스페이드 A의 카드, 하트 3의 카드 등등 문양별로, 숫자별로 카드를 만들 수 있습니다..
[Java] 프록시 패턴이란? 원래 Spring 카테고리에 AOP에 대한 글을 포스팅하고 있었는데, Spring에서 제공하는 AOP를 이해하기 위해서는 기본적인 프록시 패턴에 대한 이해가 필요하기 때문에 프록시 패턴에 대한 포스팅을 먼저 진행하기로 했다. 우선 본 포스팅을 진행하기에 앞서 프록시 패턴에 대해 잘 설명한 reference가 있어서 참고하였다. https://refactoring.guru/design-patterns/proxy Proxy There are dozens of ways to utilize the Proxy pattern. Let’s go over the most popular uses. Access control (protection proxy). This is when you want only specifi..
[JAVA] JVM과 JAVA code의 실행 과정 Java... 흔히들 우리나라에서 가장 많이 사용되는 언어가 무엇인지에 대해 묻는다면, Java라고 대부분이 답할 것이다. Java는 몇 년도에 누가 만들었고, 라는 형식적인 글보다는 왜 Java가 선택받았는지에 대해 나는 궁금했다. 필자는 C++/Python을 주로 사용하여 그동안 프로젝트를 대부분 진행하였다. 그 이유는 OOP(Object-Oriented Programming)을 메인으로 코드를 디자인하지만, 어느 정도 절차적인 언어의 형식도 있어야 뭔가 코딩하는 입장에서 더 편했다. (개인적으로 C++/Python 코드가 Java 코드보다 더 예쁘다...) 위 두 언어와 다르게 Java는 모든 코드가 Class로 이루어진 객체 지향 프로그래밍 언어이며 따라서 어느정도 초심자의 입장에서 진입장벽이 있..