local 4

레디스를 로컬이 아닌 외부에 두는 이유

레디스를 로컬이 아닌 외부에 두는 이유 보통 우리가 공부할 때에는 레디스를 로컬에서 실행한다. 근데 회사를 가면 열에 아홉은 외부 레디스를 쓸 것이다. 로컬에서 실행할때 얻을 수 있는 장점은 빠른 속도 외부 레디스의 경우 통신 과정이 필요하므로 레이턴시가 걸리게 된다. 개발 및 테스트 개발 환경에서의 접근과 설정, 테스트가 용이하다. 정도일 것이다. 단점은 무엇일까?? 어쩌면 뻔하다고 생각될 수 있지만 다음과 같다. 데이터 손상 로컬에 레디스가 존재하는 경우 데이터가 손실될 염려가 더 크다. ex) 서버가 중단되는 경우 데이터의 손상 또 외부에 두게 되면 Redis자체적으로 제공되는 스냅샷을 백업하거나 디스크 로그에 저장하는 등등을 통해 데이터를 조금 더 편하게 저장 가능하다. 확장성 결국 로컬 컴퓨터에..

lambda에서의 지역 변수 final, effectively final

lambda에서의 지역 변수 lambda식에서 지역 변수는 final의 특성을 가져야 한다. 즉, 람다식에서 지역변수를 읽어오는 것은 가능하지만, 값을 변경하는 것은 불가능해야 한다는 것이다. final, Effectively Final 한번 일단 작성해보자 @FunctionalInterface public interface SumInterface { public int sum(int x, int y); }이런 FunctionalInterface가 있고 public void test() { int a = 5; int b = 10; SumInterface si = (x, y) -> (x+y); int ans = si.sum(a, b); System.out.println(ans); }이런 식으로 sum을 해..

이론 정리/java 2023.01.09

ThreadLocal - 쓰레드로컬 이란?

ThreadLocal - 쓰레드로컬 이란? Comment 이름 그대로… 쓰레드 단위 로컬 변수 할당임ㅇㅇ 사실 이 Thread local에 대해서는 잘 몰랐는데, 놀랍게도 java1.2버전부터 제공되고있던 유서깊은 클래스였다고 한다. 그게 뭔데 일단 보통 java에서는 멀티 쓰레드를 이용해 한번에 작업을 처리해서 성능상의 이점을 얻을 수 있다. 근데 이 멀티 쓰레드 간에 리소스를 어떻게 공유해야 할지, 그리고 그 리소스의 동시성 문제를 어떻게 해결할 수 있을지 고민해야 한다. 그 방안 중 하나가 바로 Thread local이다. 그거 어떻게 하는건데. 일단 ThreadLocal의 내부는 Map구조를 갖고 있는데, key - thread정보, value - 변수 요렇게 저장한다. 그래서 각각의 쓰레드는 자..

이론 정리/java 2022.12.28

local VM에 fluent 구성하기!

local VM에 fluent 구성하기! 사전 준비 먼저 fluent 설치 이전에 ruby(3.0이상)과 bundler를 설치해야 한다. 밑준비 1. Ruby와 Passenger빌드에 필요한 헤더파일 설치 yum install openssl-devel readline-devel zlib-devel curl libyaml-devel2. Apache 설치 yum install httpd httpd-devel3. ImageMagick 설치 yum install ImageMagick ImageMagick-develruby 설치 1. local 위치로 들어가기 cd /usr/local2. 루비 tar파일 가져오기 wget http://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0...