Java 12

[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..

[Redis & Kafka] Redis와 kafka를 활용한 선착순 이벤트 시스템 개발(Feat. 인프런 강의)

서론 최근 신입 & 주니어 백엔드 엔지니어에게 사용해본 오픈소스 중 경험이 있다면 좋다고 생각 되는 것이 Redis나 Kafka라고 생각한다. 왜냐하면, 백엔드 엔지니어에게 중요하게 요구되는 사항 중 하나가 바로 '대용량 트래픽 핸들링 경험' 인데, 관련 업무를 수행하기 위해 거의 필수적으로 사용되는 것이 Redis와 Kafka이기 때문이다. 특히 Kafka의 경우, 최근 많은 회사에서 도입하거나, 기존에 사용하면서 인기도가 많이 올라간 것이 체감된다. 면접을 볼 때나, 공고에 걸린 JD를 볼 때도, Kafka 경험이 있으면 우대사항이 있더라. 그래서 평소에도 Redis나 Kafka에 관심이 많은 상태였는데, 저번 주에 봤던 면접에서 Kafka 사용 경험과, 내가 이전 직장에서 담당했던 선착순 이벤트에 ..

강의 정리 2024.01.26

[Spring Batch] @JobScope, @StepScope

서론 프로젝트를 진행하며 막바지에 간단하게 스프링 배치를 찍먹할 겸, 적용하기로 했다. 강의와 예제를 참고하면서 코드를 작성하는데, 강의에서 @JobScope 와 @StepScope 라는 어노테이션이 사용되었다. 강의에서 안알려주길래 궁금해서 찾아봤다. 참고 https://heekng.tistory.com/178 [Spring Batch] @JobScope와 @StepScope @JobScope와 @StepScope Scope란? 스프링 컨테이너에서 빈이 관리되는 범위 singleton, prototype, request, session, application이 있으며 기본은 singleton으로 생성된다. 스프링 배치 스코프 @JobScope, @StepScope @Bean @JobSc heekng.t..

[Spring/Springboot] 스프링 bean과 등록 방법

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 스프링 컨테이너 내부에서 서로 어떤 역할을 하는지는 대부분의 @어노테이션으로 해결이 가능합니다. 대표적으로 MVC모델에선 @Controller, @Service, @Repository 등의 어노테이션이 각각 컨트롤러, 서비스, 레파지토리를 나타내는 것으로 사용됩니다. 본 포스트에선 스프링 bean을 어떻게 등록하는지와 그 원리에 대해 알아보도록 하겠습니다. 김영한님의 인프런 스프링 강의 내용을 정리한 내용입니다. 참고 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8..

[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..

[개발일지] for문으로 xml resource 가져오기(feat.getIdentifier())

이 글은 Notion에서 작성 후 재편집한 포스트입니다. 목차 오늘의 목표 for문으로 xml resource 가져오기 참고 okky.kr/article/819296?note=2151849 OKKY | 안드로이드 for문으로 변수 값 넣어주기 관련 질문입니다. 안녕하세요, 다음과 같이 선언되있는 UI에 for문으로 데이터를 집어넣고 싶습니다. ImageView simArticleImg1 view.findViewById(R.id. simArticleImg1 ) ; TextView simArticleTitle1 view.findViewById(R.id. simArticleTitle1 ) ; Tex okky.kr 내 질문임 ㅋㅅㅋ 진행 과정 for문으로 xml resource 가져오기 현재 내가 작업하고자 하..

[개발일지] ArrayList<hashmap> 형태 활용하기

이 글은 Notion에서 작성 후 재편집한 포스트입니다. 목차 오늘의 목표 MainActivity에서 Intent로 넘겨주기 네트워크 상태 확인하고 연결 안되있으면 토스트 메세지 띄우고 리턴하기 fragment결과화면 구성하기 참고 stackoverrun.com/ko/q/3484098 ArrayList의 HashMap 키에서 모든 값 가져 오기 Java 좋은 하루였습니다. 지금은 혼란스러워서 (뇌의 동결!) 무언가가 누락 된 것 같습니다. 내가 HashMap로 채울 ArrayList가 있습니다. 이제는 내 HashMap과 arraylist를 넣었습니다. Map.put(DATE, value1); Map.put(VAL stackoverrun.com 진행 과정 1. MainActivity에서 Intent로 데..

[JAVA] java.sql.timestamp 계산, 연산하기

이 글은 Notion에서 작성 후 재편집한 포스트입니다. 목차 개요 Timestamp 형식은 계산해주는 메서드가 딱 정해져 있지 않다. 그래서 Calendar 객체를 사용해서 한번 거쳐가줘야 한다.. 그래서 이 포스팅에선 이 Timestamp 를 계산하는 방법에 대해 쓰고자 한다. 아, 참고로 Timestamp는 그냥 java.security 안에 있는 Timestamp와 java.sql에 있는 Timestamp가 있는데, security는 구글링 하면 많이 나온다. java.sql.timestamp에 대해서 서술하도록 하겠다. 참고 stackoverflow.com/questions/7450045/how-do-i-increment-a-java-sql-timestamp-by-14-days How do I ..

카테고리 없음 2020.11.17