etc 40

자바 함수형 인터페이스(Functional Interface) 정리

함수형 인터페이스란? 함수형 인터페이스는 1개의 추상 메소드(abstract method)를 갖고 있는 인터페이스입니다. SAM(Single Abstract Method)이라고도 부릅니다. 일반형 인터페이스 파라미터 타입 리턴 타입 Runnable, Callable Function T R Consumer T Predicate T boolean Supplier T UnaryOperator T T Runnable은 java.lang 패키지에, Callable은 java.util.concurrent 패키지에, 나머지 함수형 인터페이스는 java.util.function 패키지에 들어 있습니다. 위 인터페이스들을 기본형으로, 인자가 2개인 BiConsumer, BiPredicate 등이 추가로 정의되어 있습니다..

etc 2022.09.04

트위치 채팅창에서 유저 차단하는 법

평화로운 트위치 채팅창에 어그로를 끄는 유저가 있는 경우가 있는데, 차단해서 그 유저의 채팅을 무시할 수 있습니다. 유저 차단 방법을 알아봅시다 먼저 채팅창에서 차단하고 싶은 유저의 아이디를 클릭합니다. 다음 메뉴를 클릭해 '~~ 차단' 메뉴를 누릅니다. 그러면 이렇게 '~님을 차단하시겠습니까?' 창이 나옵니다. 여기서 차단 버튼을 클릭해주시면 됩니다. /ignore 아이디 또는 닉네임 채팅창에서 바로 차단하려면 위 명령어를 입력하면 됩니다. 한글 닉네임으로 차단할 수도 있습니다. 아이디가 길어서 헷갈린다면 아이디를 몇 글자만 치면 하단에 그 아이디에 해당되는 유저 목록이 나와서 선택할 수 있습니다.

etc 2020.09.24

[MySQL] 사운덱스 (Soundex)

영어 이름은 발음은 비슷하거나 거의 같은데 철자가 다른 경우가 많습니다. 예를 들면 루이스라는 이름의 철자는 Lewis, Luis, Louis, ... 여러가지가 나올 수 있습니다. 그래서 이런 헷갈리는 이름의 경우 전화로 이름을 말할때는 스펠링까지 말하기도 합니다. 1920년대에 미국 국립문서기록관리청(NARA, National Archives and Records Administration)에서 인구조사 기록을 효율적으로 관리하기 위해 유사한 발음을 갖는 이름을 그룹화하기 위한 사운덱스 알고리즘을 개발했는데 모든 문자열을 알파벳+3자리 숫자로 표기하는 방식입니다. 알고리즘은 위키에 잘 나와있으니 찾아보시고요, 결과물을 보면 helo=hello=hallow=H400 이런식으로 색인이 만들어집니다. SO..

etc 2020.09.24

[MySQL] 영어 소문자, 대소문자 만들기 (LOWER, UPPER)

LOWER LOWER(str) str: 문자열 문자열 str의 모든 문자가 소문자가 되도록 현재 캐릭터 셋에 따라 반환합니다. 기본값은 utf8mb4입니다. mysql> SELECT LOWER('QUADRATICALLY'); -> 'quadratically' LOWER(+ 후술할 UPPER)는 바이너리 문자열(BINARY, VARBINARY, BLOB)에는 적용되지 않습니다. 그래서 바이너리 문자열에 이 함수를 적용하려면 적절한 캐릭터셋으로 변환한 뒤 LOWER 함수를 적용해줘야 합니다. mysql> SET @str = BINARY 'New York'; mysql> SELECT LOWER(@str), LOWER(CONVERT(@str USING utf8mb4)); +-------------+-------..

etc 2020.09.24

[MySQL] 문자열 앞, 뒤 특정 문자열 제거 (TRIM)

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM([remstr FROM] str) str: 문자열 remstr: 지울 문자열 TRIM 함수는 문자열 앞이나 뒤의 특정 문자열을 제거하는 함수입니다. 지울 위치를 설정할 수 있는데요, BOTH는 앞, 뒤 양쪽에서 시작하는 부분 문자열을 제거하고, LEADING은 앞부터, TRAILING은 뒤의 문자열을 제거합니다. 위치의 기본값은 BOTH입니다. remstr은 지울 문자열로, 기본값은 공백입니다. mysql> SELECT TRIM(' bar '); -> 'bar' mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); -> 'barxxx' mysql> SELECT TR..

etc 2020.09.24

[MySQL] 부분 문자열 함수 (LEFT, RIGHT, SUBSTRING)

MySQL에서 부분 문자열을 가져오는 함수인 LEFT, RIGHT, SUBSTRING에 대해 알아봅시다. LEFT LEFT(str, len) str: 문자열 len: 가져올 문자의 개수 문자열 str에서 왼쪽부터 len 만큼 문자열을 가져옵니다. mysql> SELECT LEFT('abcdefg', 5); -> 'abcde' 예제입니다. 왼쪽부터 다섯글자를 가져온 모습입니다. RIGHT RIGHT(str, len) str: 문자열 len: 가져올 문자의 개수 문자열 str에서 오른쪽부터 len 만큼 문자열을 가져옵니다. mysql> SELECT RIGHT('abcdefg', 3); -> 'efg' 문자열 'abcdefg'에서 오른쪽 세글자를 가져온 예제입니다 SUBSTRING 부분 문자열, 즉 서브스트링..

etc 2020.09.24

[Python] 문자열 (str)

(파이썬 버전: 3.8.2) 파이썬에서 문자열은 유니코드 코드 포인트의 불변(immutable) 시퀀스입니다. 문자열 사용법을 간략히 알아보겠습니다. 텍스트 시퀀스 str 사용법 파이썬은 작은따옴표('...') 또는 큰따옴표("...")로 텍스트를 표현할 수 있습니다. 작은 따옴표와 큰 따옴표를 썼을 때 문자열에 차이는 없는데, 이스케이핑할 때만 다른 결과를 가집니다. >>> 'abc'# 작은따옴표 'abc' >>> "abc"# 큰 따옴표 'abc' >>> 'doesn\'t'# \'로 작은 따옴표 이스케이핑 "doesn't" >>> "doesn't"# 큰따옴표를 사용하면 작은따옴표 이스케이핑 필요 없음 "doesn't" 저같은 경우 보통 작은 따옴표를 쓰고, 문자열 안에 작은 따옴표가 들어가는 경우 이스..

etc 2020.09.23

[Python] 숫자 자료형 (정수 int, 실수 float, 복소수 complex)

(파이썬 버전: 3.8.2) 파이썬 내장 자료형(builtin type) 중 숫자 자료형에 대해 알아보겠습니다. 파이썬에는 세 가지 숫자형이 있는데 정수, 실수, 복소수입니다. 파이썬에서 논리형(bool)은 정수의 하위 유형으로 정의되어 있습니다. 각 숫자형의 자세한 정보를 알아보겠습니다. 숫자 연산 복소수를 제외한 모든 숫자형은 아래와 같은 연산을 지원합니다. 연산 설명 x + y x와 y의 합 x - y x와 y의 차 x * y x와 y의 곱 x / y x와 y의 나눗셈 x // y x와 y의 정수 나눗셈 x % y x / y의 나머지 -x 음의 x +x x 그대로 abs(x) x의 절댓값 int(x) 정수로 변환된 x float(x) 실수로 변환된 x complex(real, imag) real +..

etc 2020.09.23

VS code 80글자 세로선 만드는 방법

젯브레인(Jetbrains) 계열 에디터는 보통 문자 80개가 되는 위치에 세로로 선이 그어져 있습니다. 왜 그럴까요? 옛날부터 터미널 크기는 대개 80x24 크기였는데요, 그 이유는 IBM punch card(천공카드)가 80열 24행으로 이루어져있었기 때문입니다. PuTTY의 기본 윈도우 사이즈가 80열 24행인 것도 그 이유입니다. De Facto라고 생각하시면 되겠습니다. 어쨌거나 한 줄에 80글자 이상 넘어가게되면 너무 길다고 느끼는 사람도 있는데요, 이런 분들을 위해 에디터들은 몇 글자 되는 부근에 세로로 선을 그어주기도 합니다. 비주얼 스튜디오 코드는 기본값으로는 설정되어있지 않아 직접 설정해줘야 합니다. VS code 세로선(Rulers) 만들기 메뉴에서 File - Preferences ..

etc 2020.09.22

github 'remote rejected'로 푸시 실패하는 경우 해결방법 (access token scope)

깃허브에 푸시할 때 'remote rejected'라고 나오면서 푸시에 실패하는 경우가 있는데 원격 저장소에서 푸시를 거부하는 원인은 여러가지가 있습니다. 이번 게시물에서는 액세스 토큰 권한이 없어서 푸시가 안되는 경우의 해결방법을 알아보겠습니다. 참고로 Windows 10 환경에서 git이 Windows Credential Manager를 사용하는 상황입니다. github access token scope 때문에 remote 푸시 실패하는 경우 ! [remote rejected] master -> master (refusing to allow an OAuth App to create or update workflow `.github/workflows/build.yml` without `workflow`..

etc 2020.09.21