본문 바로가기

분류 전체보기

(124)
走る-直感が走った。 走る「はしる」 하시루는 "달리다" 라는 뜻으로 초급 과정에서 접하게 되는 쉬운 동사이다. "달리다" 뜻만 가지고 있는 줄 알았는데, 여러가지 뜻을 가지고 있는 동사였다. https://www.weblio.jp/content/%E8%B5%B0%E3%82%8B 走る(はしる)の意味や使い方 Weblio辞書 出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/02 02:44 UTC 版) 走る(はしる、奔る、趨る)とは、足(脚)をすばやく動かして前に移動すること[1]。人間は二足歩行をするとき、 www.weblio.jp 여기에서 11번의 뜻을 보면 感覚・感情などが一瞬現れて消える。「背中に痛みが—・る」「顔に皮肉なかげが—・る」 감각, 감정 등이 짧은 시간 동안 나타나고 사라진다 라고 적혀 있다. 위의 예문은 ..
[Java] 2021 위클리 챌린지 6주차 - 복서 정렬하기 복서들의 승패 정보를 가지고 정렬을 하면 되는 문제이다. 전체 승률이 높은 복서의 번호가 앞쪽으로 갑니다. 아직 다른 복서랑 붙어본 적이 없는 복서의 승률은 0%로 취급합니다. 승률이 동일한 복서의 번호들 중에서는 자신보다 몸무게가 무거운 복서를 이긴 횟수가 많은 복서의 번호가 앞쪽으로 갑니다. 자신보다 무거운 복서를 이긴 횟수까지 동일한 복서의 번호들 중에서는 자기 몸무게가 무거운 복서의 번호가 앞쪽으로 갑니다. 자기 몸무게까지 동일한 복서의 번호들 중에서는 작은 번호가 앞쪽으로 갑니다. 위 4가지 조건으로 정렬을 시키면 된다. 그래서 복서의 정보를 담을 class를 선언해주고, 해당 값들을 저장한다. 승률의 경우 플레이한 게임의 수가 0인 경우에 0/0 이 되지 않도록 주의를 기울이면 쉽게 해결이 가..
ffmpeg 로 m3u8 파일 다운로드 방법 ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i 파일명.m3u8 -c copy 출력파일명.mp4 ffmpeg으로 m3u8확장자의 파일을 다운로드 받을 수 있다. 단, ts 파일들을 순차적으로 다운로드 받으므로 시간이 오래걸린다. wsl2 를 이용하여 window에서도 간단하게 terminal에서 ffmpeg을 설치하여 진행할 수 있다. -i 옵션뒤에 m3u8 확장자의 파일명 또는 m3u8파일을 다운로드 받을 수 있는 URL이 들어갈 수 있다. 파일을 받는 도중에 한 ts 파일이 connection timeout이 나서 다운을 못받게 되면, mp4 비디오에서 그부분의 영상이 잘린채로 건너뛰어지게 된다. ts파일들이 없다고 에러가 나는 경우 인터넷..
Mixed Content 해결 방법 브라우저의 정책으로 인해서 https 로 로드된 웹페이지에서, http 프로토콜의 resource를 요청하면, Mixed Content 에러가 발생하게 된다. 해결 방법 이를 해결하기 위해서는 브라우저의 사이트 설정에서 안전하지 않은 컨텐츠를 허용해주면 된다. 1. 왼쪽 위의 자물쇠 표시를 클릭하여 사이트 설정에 들어간다. 2. 안전하지 않은 컨텐츠를 허용으로 바꿔준다. 3. 웹 페이지를 새로고침하고, 왼쪽 상단의 자물쇠 표시가 주의요함으로 바뀐 것을 확인한다. 이제 http의 resource도 요청할 수 있는 상태가 되었다. 여담 우리가 http에서 https 프로토콜로 넘어간 이유는 요청하는 컨텐츠들이 외부로 노출되지 않기 위함이다. 예를들어, naver에 로그인하기 위해서 아이디와 패스워드를 입력하..
[Java] 2021 위클리 챌린지 5주차 - 모음 사전 A, E, I, O, U 5개의 모음을 사용하여 만들 수 있는 길이 5 이하의 모든 단어가 수록된 단어집이 있다. 단어는 사전순으로 배열되어 있으며, 첫번째 단어는 "A"이고, 두번재 단어는 "AA"이고 마지막 단어는 "UUUUU"이다. word를 input으로 받을 때, 이 단어가 단어집에서 몇번째째 단어인지 return 하는 문제이다. 대략적으로 계산해보았을 때 총 단어의 개수는 6^5 = 7776 개를 넘을 수 없다. 단어의 위치를 알 수 있는 규칙을 찾는 것도 방법이겠지만, 단어의 수가 많지 않으니 brute force 방법을 이용해 풀어도 된다. orderMap이라는 map변수를 만들어서 (단어, 순번) 조합으로 map에다 저장을 하고, solution에는 map에서 순번을 찾아서 return하..
Adapter Pattern 과 SLF4J 1. 어댑터 패턴 어댑터 패턴은 어떤 클래스의 인터페이스를 클라이언트에서 구하는 다른 인터페이스로 변환하는 것을 말한다. 일상 생활에서 예시를 들어보면, 돼지코라고 알려진 어댑터 플러그가 어탭터 패턴이 적용된 사례라고 볼 수 있다. 클라이언트(client)는 동그란 모양의 플러그이고, 일본의 11자 모양의 콘센트는 어댑티(adaptee)이다. 11자 모양의 콘센트를 적응시켜주는 돼지코가 어댑터(adapter)이다. 클래스 다이어그램으로 그려보면 위그림과 같다. 클라이언트는 타겟 인터페이스를 사용하여 어댑터의 request를 호출한다. 그러면 어탭티의 specificRequest가 호출되어서 request가 수행되게 된다. 이는 어댑티의 인터페이스를 타겟 인터페이스로 변환 시켜주어, 클라이언트가 어댑티를 ..
Log4j 알아보기 1. Overview 로깅이란 무엇일까? 로깅이란 프로그램에서 발생한 이벤트들을 기록하는 것을 말한다. 실행중인 프로그램에서 문제가 발생하였을 때, 로그를 이용해 문제의 원인을 찾고 해결할 수 있다. 코드에 log를 심어두는 방식은 디버거를 사용할 수 없을 때, 유용하게 사용될 수 있다. Java로 개발을 하면서 System.out.println 을 사용하여 디버깅을 해본 경험이 있을 것이다. 로깅을 할 때, System.out.println을 사용하지 않고, log4j, sfl4j, logback, log4j2와 같은 라이브러리에 구현된 logger를 사용하는 이유는 무엇일까? 바로 이들 logger가 제공해주는 기능들이 System.out.println 보다 더 유용하기 때문이다. 1996년 초 E...
Volatile Java Volatile 키워드를 사용하는 이유는? - 멀티 스레드 환경에서 변수의 visibility를 보장하기 위해서 사용한다. 멀티 스레드 환경에서 어플리케이션의 정상적인 동작을 보장하기 위해서는 2가지 요소가 필요하다. 1. Mutual Exclusion - 한 스레드만이 임계영역에서 실행된다. 2. Visibility - 한 스레드가 공유 데이터를 변경한 경우, 일관성을 유지하기 위해 다른 스레드에서도 변경된 데이터가 보인다. volatile 키워드를 사용하게 될 경우, mutula exclusion없이 두번째 요소인 visibility를 쉽게 보장할 수 있다. 참고문서 https://www.baeldung.com/java-volatile