분류 전체보기 538

Redis의 개념과 활용법

Redis란? Redis는 인 메모리 키 값 데이터 구조 스토어다. 일반 Database는 데이터를 디스크에 저장하지만, 레디스는 데이터를 서버의 주 메모리에 저장한다. 그렇기 때문에 전통적 Database보다 데이터 접근 시간이 약 1ms 정도로 월등히 빠르며, 다양한 형식의 데이터를 저장할 수 있다. 대표적으로는 List, Set, Hash, Bitmap 등이 있다. 메모리에 저장하다보니 데이터가 휘발하지 않을까?라는 생각이 들 수도 있지만, 예기치 못한 셧다운 등 필요한 경우 Snapshot을 떠서 저장할 수 있다. Redis의 활용법 캐시(Caching) 캐시는 데이터의 접근시간을 줄이기 위해 가져온 데이터를 복사해두는 임시 공간이다. Redis는 앞서 설명했듯 메모리에 데이터가 저장되어있어 캐시..

[안드로이드] VideoView 소리없이 비디오 재생하기

사용자의 폰에서 돌아가는 다른 미디어 플레이에 지장을 주지 않으면서 현재 비디오 뷰의 Volume을 줄여서 재생해야하는 경우가 있다. MediaPlayer.setVolume(0F, 0F)를 하게되면 볼륨은 줄여지지만, 동시에 미디어 볼륨에도 지장을 주므로 VideoView 내에서 AudioFocus를 AUDIOFOCUS_NONE으로 설정해주는 작업이 필요하다. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // MusicPlayer를 방해하지 않음 setAudioFocusRequest(AudioManager.AUDIOFOCUS_NONE) }

[Nginx] 리버스 프록시로 사용하기 (백업 서버 설정, 로드 밸런싱)

Upstream Nginx를 리버스 프록시로 이용하기 위해서는 nginx의 내장 모듈 중의 하나인 upstream 모듈을 사용하면 된다. upstream 모듈은 proxy_pass등의 지시자에 의해 참조되며 nginx가 받은 요청들을 처리할 서버의 집합을 정의할 수 있다. *리버스 프록시가 무엇인가요? 가정 lou-server1.com, lou-server-2.com, lou-server-3.com이라는 3개의 서버에 각각 웹 애플리케이션이 동작하고 있다고 가정한다. upstream 지시자 바로 뒤의 'backend' 부분은 서버 집합의 그룹명이다. 나중에 proxy_pass에서 이 이름을 가지고 참조 할 수 있다. upstream 블록안에는 현재 동작중인 서버 목록이 들어가게 된다. server 지시자..

DOMContentLoaded와 jQuery document.ready()의 중요한 차이점

포스팅을 보다보면 javascript의 DOMContentLoaded와 jQuery의 ready()가 동일하다고 설명되어있다. 결론부터 말하자면, 동일한 시점에 Trigger되는 것은 맞지만 이들의 작동방식에는 중요한 차이점이 있다. document.addEventListeners('DOMContentLoaded', function () {}) $(document).ready(function () {}) DOM이 준비되어 조작해도 되는 상태가 되면, ready()나 DOMContentLoaded가 호출 된다. 하지만 DOMContentLoaded의 경우 addListener를 한 시점이 이미 이벤트가 일어난 시점(DOM이 준비되어버린)인 경우에는 호출되지 않는다. 반면에, ready()의 경우에는 이미 ..

Ngnix의 개념과 작동방식 정리 (feat. Apache)

Nginx의 등장 배경: Apache 의 문제점 Apache 웹 서버에 대해서 들어본적이 있는가? 아주 어렸을때부터 수차례...(게임에 관심이 많았던 건지) 아파치 톰캣 서버 어쩌고 저쩌고를 많이 본 기억이있다. Apache는 Nginx의 등장 전 까지 가장 널리 쓰이던 웹 서버다. 웹 서버는 World Wide Web에서 만들어진 클라이언트 요청을 서비스하기위해 HTTP나 그 이외의 프로토콜(HTTPS/SMTP/FTP...)을 사용하는 SW/HW다. 하드웨어로서의 웹 서버는 웹 서버가 설치되어있는 컴퓨터를 의미하며, 소프트웨어로서의 웹 서버는 앞서말한 기능을 제공하는 컴퓨터 프로그램을 말한다. Apache, Nginx, IIS 등이 있다. 대부분은 웹 페이지 컨텐츠를 제공하는 역할을 한다. Nginx는..

[Okhttp3] Expected URL scheme 'http' or 'https' but no colon was found 해결방법

Fatal Exception: java.lang.IllegalArgumentException Expected URL scheme 'http' or 'https' but no colon was found okhttp3.HttpUrl$Builder.parse$okhttp (HttpUrl.java:1260) okhttp3.HttpUrl$Companion.get (HttpUrl.java:1633) okhttp3.Request$Builder.url (Request.java:184) okhttp3.Cache$Entry.response (Cache.java:641) okhttp3.Cache.get$okhttp (Cache.java:183) okhttp3.internal.cache.CacheInterceptor.int..

맥에서 ANSI 인코딩 txt 파일 읽는 간단한 해결법

Windows에서 ANSI 인코딩으로 저장된 메모장 txt 파일을 맥에서 읽어들이려하면 다음과 같은 문구가 뜨면서 열리지 않을 것이다. 문서 ~을(를) 열 수 없습니다. 유니코드 (UTF-8) 텍스트 인코딩이 적용되지 않습니다. 파일이 다른 텍스트 인코딩을 사용하여 저장되었거나, 텍스트 파일이 아닐 수 있습니다. 해결방법은...간단하다. 크롬 브라우저를 열어서 해당 txt 파일을 끌어다 놓으면 파일이 열린다. ㅋㅋㅋ 그대로 글자를 긁어서 저장하면 완성! Converter같은걸 찾고 있었는데...너무 어렵게 생각한듯 하다.

[마인크래프트] server.properties 속성 총 정리

server.properties 파일에 대한 간략 설명 server.properties는 마인크래프트 서버 옵션을 설정할 수 있는 파일이다. 메모장, VS code등 일반적인 텍스트 에디터로 수정가능하다. 키와 값의 쌍으로 이루어져있으며 등호 뒤의 내용을 바꿈으로서 값을 바꿀 수 있다. allow-flight=true를 allow-flight=false 이렇게 말이다. 또한 #으로 주석처리를 할 수 있어서 메모하거나 백업용으로 쓸 수 있다. 아래는 그 예시. #max-players=999 max-players=20 # 복돌체크를 끈다. online-mode=false 변경 후 적용방법 서버 실행중에도 변경가능하며, 서버 재시작 또는 /reload 명령어를 통해서 바뀐 내용을 적용 시킬 수 있다. 속성들 ..

[안드로이드] Koin에서 Hilt로, Hilt 배워보기

단지 쉽다는 이유만으로 Koin 라이브러리를 사용하고 있었는데 최근 앱의 리팩토링 고민을 하면서, 다른 프로젝트 코드들을 읽어보다가 내가 Hilt에 대해서 너무 모르는거 아닌가라는 생각이 들었다. 참고자료에 있는 Droid Knights 2020 영상에 따르면 상위 10,000개의 안드로이드 앱 중 74%가 Dagger를 사용하고 있다고 한다... github에 올라온 많은 프로젝트들도 Dagger/Hilt를 사용하고있으니 이번기회에 확실히 짚고 넘어가면 좋을 것 같다. Koin의 특징 Koin은 확실히 쉽다. Hilt가 쉬워졌다고 하지만 Koin급은 아니다. 그리고 어노테이션을 사용하지 않고 Stub 파일을 만들지 않기 때문에 빌드 시간이 빠르다. 하지만 런타임에 바이트 코드를 생성하기 때문에 Hilt..

[잠실 아쿠아가든] 비주얼 깡패 - 오징어먹물 감태스콘

잠실 롯데몰 아쿠아가든은 물생활에 관심이있는 분들이라면 꼭꼭 가보면 좋은 카페다. 해수어는 없지만 열대어, 금붕어, 거북이, 민물고기들, 베타까지 다양한 종이 사는 수조가 수십개씩있다. 몇백만원을 호가하는 디자인된 수조들도 많아서 이쪽에관심이 잇으신분들도 참고하기 좋다. 일어서서 돌아다니며 수조만 구경해도 30분은 걸리는거같다 ㅋㅋㅋ 하지만 오늘 리뷰하고 싶은 것은 오징어 먹물 감태스콘 메뉴다. 방금 어항에서 꺼낸 것같은 비주얼때문에 딱 봐도 아! 이곳의 시그니쳐 메뉴구나! 생각이 들어서 시켜보았다. 돌처럼 생긴 것은 오징어 먹물 스콘 소스는 명란마요, 가장 위에올린 것은 감태다. 원래 음식은 눈으로 한번 코로 한 앜! 물고기 사료냄새 플래티를 키울때 주던 팰릿형 물고기 사료냄새가 난다. 그냥 다른 장소..

나/리뷰 2021.09.26