Java 10

[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

[Android] Tablayout, Viewpager 사용하기

이 글은 Notion에서 작성 후 재편집한 포스트입니다. 오늘의 목표 1. Tablayout, Viewpager 사용하기 참고 re-build.tistory.com/25 [Android] TabLayout과 ViewPager 포스팅 하려는 목록들을 정리하다 보니, 생각보다 많아 언제 다하지.. 하는 생각만 드네요.. 욕심이 과한 걸까요..ㅠ 그래도 포기하지 않고 천천히라도 하나씩 하나씩 포스팅해봐야겠어요.! 오늘 re-build.tistory.com 개발환경 안드로이드 스튜디오 3.6.3 JDK 14.0.1 진행 과정 1. Tablayout과 Viewpager란? 안드로이드를 공부하다보면 Tabhost 라는 친구가 있다. 관련한 포스팅을 이전에도 한 적이 있는데, 탭호스트는 탭을 클릭해야만 이동할 수 있..

[JAVA] 백준 온라인저지 9093

문제 코드 Scanner대신 BufferedReader, Writer를 써봤다. 이걸로 쓰는 습관을 들이는게 좋을듯. 먼저 어떻게 풀지 생각해보면.. 개행문자나 공백을 구분해서 역순으로 출력해야한다. 이 경우 스택을 쓰는게 간편하고, 일반적인 배열로도 풀 수 있지만 효율이 안좋으니 그건 패스하도록 하겠다. (그냥 문자열 입력받고, 배열의 크기만큼 for문돌려서 뒷 인덱스부터 출력하면된다. 근데 스택이있잖아?) 암튼 전체 코드다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader..