PS, 언어 공부/JAVA 5

[Java] 자바 가상스레드의 정의와 원리 파헤치기

서론모 회사에서 면접 도중, 가상 스레드에 대한 질문이 들어왔었다. 프로젝트엔 아직 사용해보지 않았고, JDK 21이 현업에서 잘 사용되지 않는 점(정확히는 나온지 얼마 안되서 사용되지 않는다. 마이그레이션이 필요한 곳은 하는듯) 등을 이유로 따로 공부를 하진 않았기에, 간략하게나마 알고있는 내용으로 답변했었다.JDK 17이 나왔을 때와 달리 지금은 필드에서도 17을 쓰는 회사가 꽤 많이 보인다. 이처럼 상위 버전이 출시되고 시간이 지나면 자연스럽게 현업에 녹아들게 되므로, 빠르게 체득해야 시장에서 경쟁력 있는 개발자로 성장할 수 있을 것 같다.본 포스팅에선 이러한 배경을 토대로 자바 가상스레드와, 공부를 진행하며 내가 궁금했던 점들을 꼬리질문 형식으로 되물어보도록 하겠다.참고https://techblo..

[Java] CompletableFuture의 개념과 동작원리, Thread, Future와의 비교

서론모 회사에서 라이브 코딩테스트를 진행하며 스레드(혹은 비동기 태스크)를 활용한 비동기 프로그램 코딩을 진행했다.검색 허용이 되서, 내가 알고있던 Thread를 쓸까 하다가 너무 기본적인 예제같은 느낌이 들어서 더 좋은 방법이 있나 찾아봤고, CompletableFuture 라는것에 대해 알게되었다.기존 Thread랑 무슨 차이가 있는지, CompletableFuture는 뭔지 알아보도록 하자.참고https://stackoverflow.com/questions/49865210/thread-vs-completablefuture {do something}); thread.start(); VS CompletableFuture..." data-og-host="stackoverflow.com" data-og-s..

[JAVA] JVM 구조 및 작동원리

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 자바는 JVM(Java Virtual Machine)을 이용해 프로그램이 실행됩니다. 자바 개발자라면 JVM의 작동원리를 명확히 인지하고 있어야, 프로그램 설계 시 좀 더 명확하고 섬세한 프로그램 명세가 가능하다고 생각합니다. 워낙 기본적인 내용이지만, 깊게 파고들수록 끝도 없는 영역입니다. 최대한 이해하기 쉬운 언어들로 구성하여 설명해드리도록 하겠습니다. 본 포스팅에선 JVM의 구조와, 작동원리에 대해 작성하고자 합니다. 참고 https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EA%B0%80%EC%83%81_%EB%A8%B8%EC%8B%A0 자바 가상 머신 - 위키백과, 우리 모두의 백과사전 위키..

[JAVA] 자바의 직렬화(Serialization)

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 개요 자바 시스템에서, 각자 PC의 OS마다 서로 다른 가상 메모리 주소 공간을 사용하기 때문에, 이들끼리 통신하기 위해선 직렬화 라는 작업을 진행해야 합니다. 본 포스팅에선 직렬화란 어떤건지, 어떤 방식으로 이루어지는지, 어떤 상황에서 필요한지, 장단점과 유의점에 대해 알아보도록 하겠습니다. 참고 https://parkadd.tistory.com/134 [Java]자바 직렬화 (Serialization) 모든 예시 코드는 이곳에서 볼 수 있습니다. 자바 직렬화는 다음의 고민을 해결하는데 사용할 수 있다. 자바 객체를 컴퓨터에 저장했다가 다음에 다시 자바 객체로 변환할 수 없을까? 네트워크 parkadd.tistory.com https://g..

[JAVA] 가변 배열에서의 확률 뽑기

이 글은 Notion에서 작성 후 재편집한 포스트입니다. 목차 개요 업무를 진행하면서 뽑기 확률로 진행되는 이벤트에 관한 로직을 짜야했다. 고정적인 값으로 들어오는 확률로 뽑는건 너무 단순해서 구글링하면 많이 나오지만, 가변리스트의 경우는 생각보다 별로 없어서 그냥 나름대로 한번 만들어봤다. 짱구를 좀 굴려봤다. 확률 알고리즘이 대충 어떤느낌으로 돌아가는지만 알아보고 나머지는 직접해봤다. 혹시 더 좋은 방법이 있다면 댓글 부탁드립니다. 참고 yoonbumtae.com/?p=518 Java 예제: 랜덤박스 (Math.random 이용) - BGSMM 일본산 온라인 과금 게임같은 경우 랜덤박스로 카드를 뽑을 수 있는 시스템이 있습니다. 여기서 나오는 카드의 등급은 희소성을 기준으로 SSR(Super-supe..