좋아하는 일 그리고 잘하는 일, 그 사이 어딘가
close
프로필 배경
프로필 로고

좋아하는 일 그리고 잘하는 일, 그 사이 어딘가

  • 분류 전체보기 (64)
    • 회고 (0)
    • Java (11)
      • Java (9)
      • Testing (1)
    • 리팩토링 (26)
    • Redis (1)
    • C# (11)
    • Unity (3)
      • Unity (3)
    • DB (1)
      • MySQL (1)
    • Data structure (2)
    • 일상 (8)
    • 만화 (1)
  • 홈
  • 일상
  • 방명록
[Java] 공변성으로 알아보는 제네릭과 와일드카드

[Java] 공변성으로 알아보는 제네릭과 와일드카드

서론 공변성과 제네릭 그리고 와일드카드에 대해서 알아보고 마지막으로 @SafeVarargs 어노테이션을 소개로 마무리한다. 공변성과 배열 자바의 공변성은 하위 클래스의 객체를 상위 클래스의 참조 변수로 참조할 수 있는 성질을 의미한다. 다르게 말하면 상속 관계에서 파생된 클래스의 객체가 부모 클래스의 객체처럼 취급될 수 있음을 말한다. 자바에서 공변성을 만족하는 대표적인 예시가 바로 배열이다. 예를 들어, 배열의 원소 타입이 상속 관계를 가질 때, 배열 자체의 타입 간에도 상속 관계가 유지된다. 간단히 말하면 하위 타입의 배열은 상위 타입의 배열로 취급될 수 있다. @Test void test_array() { Number[] numbers = new Number[4]; numbers[0] = 1; nu..

  • format_list_bulleted Java/Java
  • · 2023. 12. 6.
  • textsms
JMH(Java Microbenchmark Harness) 사용 예제

JMH(Java Microbenchmark Harness) 사용 예제

JMH(Java Microbenchmark Harness) JMH는 Java 언어로 작성된 코드의 성능을 측정하는 도구로, 특히 벤치 마이크로벤치마크를 수행하는 데 사용한다. 마이크로벤치마크는 작은 단위의 코드에 대한 경과 시간, 명령어 처리 속도 등을 측정하는 프로그램을 의미한다. 이는 성능 최적화나 코드 변경에 대한 영향을 정량적으로 측정할 때 유용하게 사용할 수 있다. 환경 설정 신뢰할 수 있는 결과를 얻기 위해서는 Maven을 사용해서 jar 파일로 빌드하고 이를 실행해서 테스트하길 권장하고 있다. IDE에서 실행하는 테스트는 결과의 신뢰성이 떨어진다는게 공식 문서의 입장이다. 샘플 maven project 생성 $ mvn archetype:generate -DinteractiveMode=fals..

  • format_list_bulleted Java/Testing
  • · 2023. 11. 19.
  • textsms
[Java] Enum을 활용하는 방법

[Java] Enum을 활용하는 방법

✍️ 서론 논리적으로 연관된 상수를 정의할 때 사용하는 자료형 enum. enum은 심볼릭하게 그 자체로도 의미를 가지지만 필요에 따라 필드를 추가하거나 메서드를 추상화해서 enum이 책임질 수 있는 코드를 구현할 수 있다. 🍊 simple enum enum의 가장 단순한 사용법으로 보통 상태 값이나, 분기를 위한 플래그로 사용된다. public enum Operator { PLUS, MINUS, MULTIPLY, DIVIDE; } public class Calculator { public double calculate(double a, double b, Operator op) { if (op == Operator.PLUS) { return a + b; } else if (op == Operator.MI..

  • format_list_bulleted Java
  • · 2022. 12. 6.
  • textsms
[Java] JWT (JSON Web Token) 개념 및 예제 코드

[Java] JWT (JSON Web Token) 개념 및 예제 코드

✍️ JWT (JSON Web Token) 개념 JWT(JSON Web Token)란 선택적 서명 혹은 선택적 암호화를 사용해 데이터를 만드는 인터넷 표준으로, 헤더, 페이로드, 서명으로 구성된다. 페이로드는 클레임(claim)을 담은 JSON 형태이며 서명은 무결성과 인증을 위해 사용된다. 쉽게 말하면 JSON 포맷을 이용해서 사용자 정보를 저장하는 Web Token으로, 클라이언트 서버 구조에서 주로 인증과 데이터 전달에 사용된다. 여기서 선택적 서명과 선택적 암호화라는 말이 나오는데 JWT에 서명을 추가하면 무결성이 보장되는 JWS가 되고, 암호화를 추가하면 무결성과 기밀성이 보장되는 JWE가 된다. 비유하자면 JWT를 확장한 클래스가 JWS 혹은 JWE라고 할 수 있다. 하지만 JWT를 이야기할 ..

  • format_list_bulleted Java/Java
  • · 2022. 10. 4.
  • textsms
[Java] 쓰레드 로컬 (ThreadLocal)

[Java] 쓰레드 로컬 (ThreadLocal)

✍️ Stack, Heap, Thread 결론부터 말하면 ThreadLocal이란 Thread마다 독립적인 변수를 갖도록 지원하는 클래스이다. 쉽게 말하면 Thread마다 독립적으로 읽고 쓰는 변수를 제공하는 클래스이다. ThreadLocal을 이해하기 전에 JVM 메모리 정책을 가볍게 짚고 넘어갈 필요가 있다. Java 8 이후 기준, 메서드 파라미터와 지역 변수는 Stack에 할당되고 그 외의 것들은 Heap에 할당된다. 엄밀히 말하면 틀린 설명이지만 메서드에 정의된 것들은 Stack, 그 외의 것들은 Heap 영역이라고 생각하자. Thread(이하 쓰레드)란 한 프로세스 내에서 실행되는 흐름의 단위이다. 한 프로세스당 기본적으로 하나의 쓰레드를 갖는데 이를 메인 쓰레드라고 부른다. 만약 별도의 쓰레..

  • format_list_bulleted Java/Java
  • · 2022. 8. 26.
  • textsms
[Java] 어노테이션(Annotation), @

[Java] 어노테이션(Annotation), @

📝 Contents 어노테이션 개념과 샘플 코드 ✍️ Annotation 자바 어노테이션은 잘만 사용하면 매우 유용한 자바의 문법이다. 기본적인 종류는 한정되지만 원하는 대로 커스텀 어노테이션을 만들 수 있어서 적재적소에 활용 가능하다. 먼저 어노테이션은 1. 문서화 2. 컴파일러 체크 3. 메타데이터 용도로 사용된다. 문법적으로 @기호가 붙은 심볼을 사용하며 패키지, 클래스, 메서드, 프로퍼티, 변수에 명시할 수 있다. 어노테이션이 붙은 코드를 컴파일 시에 수집해서 API 문서화에 사용되기도 하지만 JavaDoc이라는 좋은 문서화 도구가 있기에 문서화는 가장 비중이 낮은 어노테이션 사용법이다. 이외에도 컴파일 타임에 에러나 경고를 발생시켜 개발자에게 위험 요소를 알리는 목적으로도 사용된다. (= @Ov..

  • format_list_bulleted Java/Java
  • · 2022. 8. 23.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
전체 카테고리
  • 분류 전체보기 (64)
    • 회고 (0)
    • Java (11)
      • Java (9)
      • Testing (1)
    • 리팩토링 (26)
    • Redis (1)
    • C# (11)
    • Unity (3)
      • Unity (3)
    • DB (1)
      • MySQL (1)
    • Data structure (2)
    • 일상 (8)
    • 만화 (1)
인기 글
최근 글
최근 댓글
태그
  • #C#
  • #코딩테스트
  • #카카오 기출
  • #알고
  • #알고리즘
  • #BFS
  • #C++
  • #프로그래머스
  • #코딩
  • #SQL
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바