평소 GitHub을 사용할 때 아무 생각 없이 HTTPS로 remote를 설정하거나 clone 받아서 사용하고 있었는데, 최근 GitHub에서 보안을 강화하겠다고 password 인증 방식을 없애버렸고, 그 에러를 해결하면서 SSH 인증 방식에 대해 알게 되었다. 이번 포스팅에서는 이 과정에서 알게된 SSH 방식으로 통신하도록 설정하는 방법을 정리하려고 한다. 로컬 Git을 GitHub과 연결하기 위해서는 어떤 방식으로 원격 저장소와 통신할 것인지를 설정해 주어야 한다. 그 방식으로는 현재 아래 3가지가 있다. HTTPS 방식 SSH 방식 GitHub CLI 방식 ※ 기존에는 1, 2번 방식만 있었는데 마이크로소프트가 GitHub을 인수하면서 GitHub CLI 방식이 추가 되었다. GitHub CLI는..
오늘도 여느 때와 같이 터미널에서 Github으로 push를 하려고 하는데 갑자기 아래와 같은 에러가 발생했다. remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. 에러 메시지를 확인해 보니 어제(8/13)부로 Https 통신할 때 사용하던 password 인증 방식을 지원하지 않는다고 한다. 즉, 이제는 무조건 personal access token을 사용해 인증해야 한다는 것이다. 이렇게 토큰을 이용해 추가 인증을 하는 방식을 2FA(Two-Factor Authentication)라고 하는데, GitHub에서 이를 통해 보안을 강화하려고 하..
ExoPlayer는 구글에서 만든 동영상 재생 라이브러리이다. MediaPlayer보다 훨씬 안정적이고 다양한 기능을 지원하기 때문에 유튜브나 인스타그램 등 많은 곳에서 ExoPlayer를 사용한다. 그래서 진행중인 프로젝트에서 ExoPlayer를 사용해 동영상이 준비되기 전에는 썸네일 이미지를 보여주고, 준비가 완료되면 자연스럽게 동영상을 재생하려고 했는데 재생 직전 검은 화면으로 깜빡이는 현상을 확인했다. 이번 포스팅에서는 이 문제의 원인과 해결 방법을 공유하려고 한다. ExoPlayer는 동영상을 재생하는 Player가 있고, 화면에 보여주는 PlayerView에 Player를 등록해서 사용한다. 그런데 PlayerView는 동영상을 재생하는 View이기 때문에 background 속성이 없고, 썸..
For Windows 단축키 설명 Shift + F6 동일하게 연결 되어 있는 변수명 변경 Shift 2번 프로젝트 내 클래스/파일/심볼/액션 찾기 Ctrl + F4 탭 닫기 Ctrl + B Ctrl + Click 선언부로 이동 Ctrl + Alt + B 구현부로 이동 Ctrl + Shift + I 선언부 팝업창으로 보기 Ctrl + F 현재 파일에서 찾기 (Find) Ctrl + Shift + F 전체 파일에서 찾기 (Find) Ctrl + R 현재 파일에서 바꾸기 (Replace) Ctrl + Shift + R 전체 파일에서 바꾸기 (Replace) Ctrl + D 라인 or 블럭 복제 (Duplication) Alt + 드래그 세로로 블럭 지정해서 한 번에 수정하기 Ctrl + H 클래스 계층(Hi..
안드로이드 스튜디오에서 내부 소스 코드를 보려고 할 때 위 처럼 모든 구현부가 RuntimeException을 던지는 파일이 나올 때가 있다. throw new RuntimeException("Stub!"); 메시지 내용은 다음과 같다. Decompiled .class file, bytecode version: 52.0 (Java 8) Sources for 'Android API 30 Platform' not found. 이 문제는 안드로이드 API 버전에 해당하는 Source가 다운로드 되어 있지 않아서 발생한 것이다. 여기서 두 번째 "Sources for 'Android API 30 Platform' not found." 메시지는 안드로이드 API 30 버전의 Source가 없으니 다운로드를 하라는..
이전 포스팅에서 RecyclerView의 아이템을 LiveData로 관리하는 방법에 대해 알아보았다. 이 때 함께 사용하면 좋은 ListAdapter에 대해 소개하려고 한다. RecyclerView를 사용하다보면 아이템을 변경할 일이 많고, 이럴 때 기존에는 notifyDataSetChanged()로 모든 아이템을 업데이트 하는 방법을 사용해 왔다. 하지만 이 방법은 아이템 개수가 많아질수록 비효율적일 수 밖에 없다. 물론 아래 notify- 메서드를 잘 이용하면 전체 데이터를 바꿀 필요가 없지만 position을 가지고 수동으로 관리해 주어야 하는 불편함이 있을 수 있고, 아이템의 정해진 순서가 없을 때는 이 기능을 사용할 수 없다. 이런 문제를 알고 구글에서는 DiffUtil이라는 매우 편리한 유틸리..
안드로이드에서 Context는 가장 많이 등장하고, 그만큼 핵심이 되는 개념이기 때문에 제대로 알고 사용하는 것이 좋다. 이번 포스팅에서는 Context의 역할 및 종류와 언제 사용하면 좋은지 알아 보려고 한다. Context란? Context는 어플리케이션 환경에 관한 전체 정보를 받을 수 있는 추상 클래스로 액티비티, 브로드캐스트, 서비스를 시작할 때도 사용되고 리소스에 접근할 때도 Context가 사용된다. 이처럼 어플리케이션과 관련된 정보에 접근하고자 하거나 어플리케이션과 연관된 시스템 레벨의 함수를 호출하고자 할 때 Context가 필요하다. 안드로이드는 어플리케이션 관련 정보를 ActivityManagerService에서 관리하고 있고, 어플리케이션과 관련된 정보에 접근하려고 할 때 해당 어플..
SQL Server 인스턴스를 만들 때 인증 방식을 혼합 모드로 만들어서 sa 계정을 만들어 놓고 그 뒤로 윈도우 인증 방식으로만 접속하다보니 sa 계정 비밀번호를 잊어버리는 사태가 발생한 적이 있었다.. 이 때 sa 계정이 필요했던 이유는 윈도우 인증 방식이 [컴퓨터 이름]\[인스턴스 이름]으로 인증하기 때문에 컴퓨터 이름을 변경하면서 사용할 수 없어졌기 때문이다. 이번 포스팅은 sa 계정 비밀번호를 변경하기 위해 여러 번의 구글링과 몇 번의 오류를 해결한 뒤에 성공했던 여정을 기록한 글이다. 시작! 먼저, 컴퓨터 이름을 다시 기존 이름으로 바꾼 뒤 윈도우 인증 방식으로 SQL Server에 접속한다. [개체 탐색기]에서 서버 이름을 우클릭한 뒤 [속성] > [보안] > [서버 인증]에 들어가서 [SQ..
- Total
- Today
- Yesterday
- python3
- RecyclerView
- AsyncListDiffer
- SQL Server
- MSSQL
- pecs
- SQLD
- SQL
- 내용제공자
- covariance
- 위험권한
- AndroidStudio
- SOCKET
- ViewHolder
- Java
- GitHub
- 파이썬
- 알고리즘
- Android
- 안드로이드
- Python
- SQLiteOpenHelper
- 부스트코스
- gson
- RuntimeException
- personal access token
- 프로그래머스
- Algorithm
- DiffUtil
- kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |