본문 바로가기

분류 전체보기417

[JAVA] 바이트 코드 조작 코드 커버리지는 어떻게 측정할까? JaCoCo(Java Code Coverage) Java 애플리케이션에서 테스트 커버리지를 측정하는 오픈 소스 라이브러리이다. 주로 단위 테스트, 통합 테스트 등을 실행할 때 각 코드가 얼마나 실행되었는지(커버리지)를 확인하기 위해 사용된다.JaCoCo는 Maven, Gradle 같은 빌드 도구와 쉽게 통합할 수 있어, 테스트를 실행할 때 자동으로 코드 커버리지 리포트를 생성한다. 이 리포트는 HTML, XML, CSV 등의 다양한 포맷으로 제공되며, 이를 통해 코드가 충분히 테스트되고 있는지 파악하고, 테스트를 추가해야 할 부분을 쉽게 찾을 수 있다.JaCoCo 문서 https://www.eclemma.org/jacoco/trunk/doc/index.html간단하게 테.. 2024. 10. 10.
[JAVA] 프로그래머스 LEVEL2 [3차] 파일명 정렬 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT > [3차] 파일명 정렬  난이도: LEVEL2알고리즘 유형: 구현 + 정렬 문제 분석 먼저 맨 처음 String 으로 받는 파일명들을 정렬 조건에 맞게 파싱 한다.그리고 파싱한 결과를 나는 File 클래스에 담았다.  File 클래스 static class File{ String original; // 원본 파일 이름 .. 2024. 10. 10.
[JAVA] 프로그래머스 LEVEL2 [3차] 압축 https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT > [3차] 압축 난이도: LEVEL2알고리즘 유형: 구현 문제 분석 그렇게 어려운 난이도는 아니었지만 여러 가지 분기 처리를 해줘야 했다.  나는 HashMap을 사용해서 문제를 풀었다. 우리는 사전에 맞게 숫자를 출력하고 사전에 없으면 숫자를 추가하는 게 목표이다. HashMap먼저 길이가 1인 문자들을 HashMap에 초기화 .. 2024. 10. 9.
[JAVA] JVM 전체 구조 정리 해당 그림은 자바 7 이하 버전의 전체 구조이다. 자바 7 이하 버전의 메소드 영역 PermGen(Permanent Generation) ↔ 메소드 영역(Method Area) 자바 7 이하 버전에서는 메소드 영역에 해당하는 메모리 공간이 PermGen 영역에 있었다.클래스 메타데이터(클래스 이름, 메소드, 상수 풀, 클래스 변수 등)를 저장하는 영역  PermGen에 저장되는 정보들// 클래스 이름 / 부모 클래스 (Object) -> 저장 Opublic class Example { // 클래스 변수 (Static Field) -> 저장 O public static String CLASS_NAME = "ExampleClass"; // 인스턴스 변수 -> 저장 X priva.. 2024. 10. 8.
[JAVA] 자바, JVM, JDK, JRE JVM (Java Virtual Machine) 자바 가상 머신으로 자바 바이트 코드 (.class 파일)를 OS에 특화된 코드로 변환(인터프리터 JIT 컴파일러)하여 실행한다.바이트 코드를 실행하는 표준(JVM 자체는 표준)이자 구현체(특정 밴더가 구현한 JVM)이다. JVM 밴더: 오라클, 아마존, Azul, ...JVM 스팩: https://docs.oracle.com/javase/specs/jvms/se11/html/특정 플랫폼에 종속적이다.자바 컴파일 과정자바 소스 코드 (.java 파일)자바로 작성한 코드를 컴파일러(Javac)를 사용하여 바이트 코드로 변환바이트 코드 (.class 파일).java에서 바이트 코드로 변환하여 생성된 파일은 OS에 독립적인 바이트 코드 형식을 가지고 있다. 즉,.. 2024. 10. 8.
[JAVA] 프로그래머스 LEVEL2 후보키 https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코딩테스트 연습 > 2019 KAKAO BLIND RECRUITMENT > 후보키 난이도: LEVEL2알고리즘 유형: 구현 + 완전탐색 틀린 코드import java.util.*;class Solution { static int n,m; // 컬럼의 개수 / row 개수 static boolean [] local; // 현재 상태 금지 컬럼 static int answer = 0.. 2024. 10. 8.