자바 16

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

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

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

[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 자바 가상 머신 - 위키백과, 우리 모두의 백과사전 위키..

[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

[Android] RecyclerView 기본 사용법

개요 이번에 멀티메모 스와이프 삭제 기능 구현에 대해 공부하면서, 리사이클러 뷰에 대해 알게되었다. 일단 기본적인 개념은 해당 포스트에 굉장히 설명이 잘 되어있었다. 이 포스트는 아래 블로거님의 포스트를 기반으로 공부하여 나름대로 요약한 포스트이다. https://recipes4dev.tistory.com/154?category=790402 불러오는 중입니다... 요약하자면, 기존의 리스트뷰는 데이터의 조작이나 변경이 일어나면 매번 아이템 뷰를 전체적으로 새로 구성하지만, 리사이클러 뷰는 해당 부분만 바꿔주므로, 성능 측면에서 우수하다고 볼 수 있다. 한마디로 리스트뷰의 업그레이드버전. 그렇다면 리사이클러 뷰를 한번 만들어보자. 구성 요소 우리는 리스트뷰의 아이템 하나 하나를 원하는 모양으로 커스터마이징..