# 4. 구글 로그인 인증 (OAuth2 / OIDC)
·
JAVA
1. 직접 로그인 처리를 하지 않고 제 3자를 거치는 이유로그인 처리를 직접 하는 경우, 다음과 같은 부담이 생긴다.비밀번호를 안전하게 해싱 및 저장사용자는 서비스마다 새롭게 회원가입2단계 인증과 같은 보안 장치도 직접 구현OAuth2는 위와 같은 부담을 신뢰할 수 있는 제 3자(ex. 구글, 네이버 등)에게 위임한다.우리는 비밀번호를 아예 보지 않는 대신, 앞서 말한 제 3자가 증명해주는 내용을 받는다. 2. Authorization Code Flow - 리다이렉트 왕복 구조1. "구글 로그인" 버튼 클릭2. 서버가 사용자를 구글 로그인 페이지로 리다이렉트3. 사용자가 구글 계정으로 로그인 + 권한 동의4. 구글이 사용자를 다시 서버 콜백 URL로 리다이렉트 → 금방 만료되는 authorization ..
4. CloudFlare Tunnel 연결
·
홈 서버 구축기
이제 CloudFlare와 연결하는 일만 남았다. 1. 도메인 구매난 namecheap.com에서 구매했다. 다른 곳은 모르겠지만, 일단 가격이 매우 저렴하다.내가 구매한 도메인은 연 0.98달러였다.카드 정보와 주소 입력을 지나서 선택사항이 뜨는데, 나는 무슨 소린지 몰라서 클로드의 도움을 받았다.자동 갱신(auto-renewal) 체크박스켜두면: 매년 만료일 전에 자동으로 결제해서 도메인이 계속 유지됨 (깜빡하고 갱신 안 해서 도메인을 잃어버리는 일 방지)꺼두면: 매년 직접 갱신해야 하고, 깜빡하면 도메인을 잃을 수도 있음 (심하면 남이 채감)Domain Registration chatshire.sitechatshire.site 도메인 자체 등록 비용메인 구매 항목PremiumDNS for chats..
3. 외부 접속 허용 - Tailscale
·
홈 서버 구축기
원래는 기존 전통 방식대로 공유기 관리 페이지에서 외부 포트를 서버 내부 IP:22로 포워딩하려고 했으나, 보안 이슈가 있다고 해서 Tailscale을 사용하기로 했다. 1. 리눅스 노트북 설정다음 명령어로 리눅스에 Tailscale을 설치한다.curl -fsSL https://tailscale.com/install.sh | sh 그러면 진행창이 도로록 뜨다가, 이런 문장이 화면에 출력된다. Installation complete! Log in to start using TailScale by running:sudo tailscale up 뭐 다들 다 알겠지만, 설치가 잘 됐다.sudo tailscale up을 치면 다음과 같은 문구가 뜬다. To authenticate, visit: ht..
2. 노트북에 리눅스 설치 (Ubuntu Server)
·
홈 서버 구축기
1. 노트북 스펙Lenovo Ideapad 100을 사용했다.지금 이미 리눅스를 설치해 놓은 상황이라 자세한 스펙은 알 수 없지만, 상당히 오래됐고, 부팅에도 오래 걸리고 그냥 뭘 실행하는 것도 시간이 꽤 걸렸다...이런 것도 가능한 걸 보면 다들 집에 노트북이 돌아가기만 한다면 얼마든지 홈 서버를 구축할 수 있을 것 같다. 2. 리눅스 설치리눅스 설치 자체는 레퍼런스도 많이 있으니 대략적인 흐름만 적어놓으려고 한다. 1. 국가를 선택하는 설정은 English(US)로 설정한다. (키보드, 언어 등)2. 웬만하면 Done 누르고 넘어간다 (기본값)3. SSH Setup에서 Install SSH Server를 반드시 선택: 원격 접속 시 필요4. Profile Setup의 항목들은 다음과 같다. - ..
1. 리눅스 부팅
·
홈 서버 구축기
1. 홈 서버를 구축하려는 이유? 개인 프로젝트와 팀 프로젝트를 마무리하면서 본격적으로 배포하려고 많은 서버 호스팅 서비스들을 알아보았다. 많은 서비스 중에서 AWS를 선택한 후 EC2 인스턴스를 만들어 무료 티어로 시작했지만, IPv4인지 탄력적 IP인지 그 외의 부가적으로 돈이 나가는 요소들을 알지 못해 요금 폭탄을 맞게 되었다. 사실 요금 폭탄이래봤자 5만원 내지 6만원 정도 되는 돈이긴 했지만, 취준생이라 돈이 부족한 나에게는 적은 돈이 아니었다. aws 외에도 다른 서비스들을 알아보았지만 내가 생각하는 것 만큼 서비스가 좋지 않았다. 그러던 중 이전에 교육받았을 때 어떤 분이 강연에서 하신 말씀이 생각났다.개발자라면 집에서 돌아가는 홈 서버 하나정도는 구축해 놓으세요.쓰지 않는 노트북 혹은 데스..
#3. Arrays 메소드
·
JAVA
1. 배열 복사: copyOf() / copyOfRange() int[] a = {1, 2, 3, 4, 5, 6, 7}; int[] b = Arrays.copyOf(a, a.length) // copyOf(원본 배열, 복사할 길이) // b = {1, 2, 3, 4, 5, 6, 7} int[] c = Arrays.copyOfRange(a, 1, 4); // copyOfRange(원본 배열, 시작 인덱스, 끝 인덱스) : 끝 인덱스는 포함하지 않음 // c = {2, 3, 4} 2. 배열 항목 비교: equals() / deepEquals() int[][] a = { {1, 2}, {3, 4} }; // 얕은 복사 int[][] b = Arrays.copyOf(a, a.length); System.out...