분류 전체보기

WEB(BE)/express.js

Set-Cookie 헤더로 응답 받은 쿠키가 요청 헤더에 없을 때

분명히 서버로 부터 쿠키를 받았다. 그런데 그 뒤로 요청을 보낼 때 쿠키 요청이 안 보내지는 경우가 있다. 몇시간의 구글링 끝에 이것도 설정해보고 저것도 설정해봤지만 해결이 되지 않던 찰나 한가지 정보를 발견했다. (물론 withCredential 속성 설정 확인은 기본이다) https://developers.google.com/search/blog/2020/01/get-ready-for-new-samesitenone-secure?hl=ko 새로운 SameSite=None; Secure 쿠키 설정에 대비 | Google 검색 센터 블로그 | Google Developers 의견 보내기 새로운 SameSite=None; Secure 쿠키 설정에 대비 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를..

Infra/Firebase

[Firebase] Postman에서 회원가입 요청시 auth/admin-restricted-operation 에러 해결법

포스트맨으로 회원가입 테스트를 하려는데 이런 오류가 떴다. 구글링도 해보고 공식 문서 에러 리스트를 보기도 했지만 원인을 못찾았다가 스택오버플로우를 탐방하던 중 해결책을 찾았다. const credential = await createUserWithEmailAndPassword(auth, email, password); 일단 요청은 요런식으로 보냈다고 가정한다. 스택 오버플로우를 보니까 auth만 보내고 이메일 비밀번호를 전달을 안하는 경우에 이런 오류가 발생한다고 한다. 질문자의 코드에는 정말 이메일과 패스워드를 아예 인자로 넘기고 있지 않았었다. 처음엔 나는 인자로 잘 넘겼으니까 문제없다고 생각했었다. 그러다 혹시 내가 넘긴 이메일과 패스워드 값에 문제가 있진 않을까? 하는 의심이 들었고 바로 req..

자기계발/코딩테스트, 대회

2022 국방오픈소스아카데미(OSAM) 군장병 온라인 해커톤 선발 후기

https://youtu.be/7Dbu5M2utEA 2022 군장병 온라인 해커톤에 참가하게 되어 해커톤을 신청한 과정을 소개합니다. 나중에 이 해커톤을 나가실 분들에게 참고가 되었으면 좋겠습니다. 국방오픈소스아카데미 사이트에 회원가입을 하고 로그인하면 위와 같은 메뉴가 보입니다. (팀블로그 메뉴는 해커톤 참가 이후 팀빌딩이 완료되면 보입니다) 해커톤 메뉴에서 해커톤 공지를 확인하고 팀빌딩도 진행됩니다 해커톤 신청은 2022년 기준 위와같이 진행되었습니다. 9월 4일까지 온라인 교육을 마치고 이론평가를 본 후 코딩테스트를 보고 개발계획서를 작성하여 제출하면 됩니다. 참가신청 & 온라인 교육 참가신청은 WEB, APP, IoT, Cloud 4가지 분야 중 하나를 골라서 신청하게 됩니다. 이 단계에서는 참가..

알고리즘 (PS)/BOJ

[백준] 1796 - 신기한 키보드 (G4)

https://www.acmicpc.net/problem/1796 1796번: 신기한 키보드 동혁이의 키보드에는 버튼 세 개와 LCD창 한 개가 달려 있다. LCD창에는 문자열 S가 쓰여 있다. 그리고 커서는 문자열의 가장 왼쪽 글자에 위치해 있다. 버튼 세 개는 왼쪽, 오른쪽, 엔터키이다. 왼 www.acmicpc.net 옛날에 봤을 땐 분명 골드5 문제였는데 어느샌가 골드4로 올라간 문제이다. 풀고나서 보니까 왜 누구는 골드5로, 누구는 실버1로 매겼는지 알 것 같았다. 문제 상황을 프로그래밍적으로? 정의하고 나면 되게 간단해지기 때문이다. 그런데 이 문제는 그 정의가 어려운 문제였다 그래서 나도 이 문제 난이도에 골드4를 줬다. 문제는 간단하다. 좌우버튼과 엔터 버튼만으로 구성된 키보드를 이용해 주..

알고리즘 (PS)/BOJ

[백준] 2098 - 외판원 순회 (G1)

전에 풀었던 문제인데 2달전 재채점 때 틀려서 다시 풀어보았다. 다시 풀려니까 도저히 풀리질 않아서 외판원 순회 아이디어를 읽었는데도 모르겠었다. 그래서 결국 내가 전에 티스토리에 썼던 글을 보았는데, 신기하게 그걸 보니까 작성할 수 있었다. 나는 내가 제일 잘 아는건가ㅋㅋ 하지만 그 글에서 헷갈렸던 부분이 있어서 다시 정리하려고 한다. 1. 외판원 순회는 어디에서 시작해도 값이 같다. "도시" 가 아니라 "간선" 을 기준으로 보면 바로 이해된다. 1-3-2-1 이 최적해라고 하자. 그럼 최적해를 구성하는 간선은 1-3 3-2 2-1 이렇게 3개이다. 만약 3에서 시작했다고 하면 최적해는 3-2-1-3 이렇게 된다. 최적해의 구성 간선은 3-2 2-1 1-3 순서만 다르지 아까와 똑같다. 따라서 어디에서..

개인 프로젝트/[2022] 유튜브 뮤직 클론코딩

[유튜브 뮤직 클론코딩] 8. forever를 이용한 배포 자동화 & 플레이어 추가

지난달까지는 이 프로젝트를 배포할 때 nodemon을 이용해서 배포를 하였다. nodemon으로 배포하고 있을 때는 소스코드를 수정한 결과물을 자동으로 반영해주어서 결과물을 확인하기 좋았기 때문이다. 하지만 단점도 있었다. 매번 프로젝트를 할 때마다 노드몬을 키고 끄는 작업을 반복해야했기 때문이다. 물론 노드몬 자체를 백그라운드로 실행시킬 수도 있겠지만 나중에 노드몬을 끌 때 프로세스 아이디를 읽고 꺼야하는 귀찮음이 있어서 하고 싶지 않았다. 이 작업이 너무 번거롭다고 생각해서 백그라운드에서 배포하는 방법을 알아보았다. 검색을 해보니 nodemon말고도 forever와 pm2 등 선택지가 더 있었다. 그 중에서 나는 forever를 선택했다. 그 이유는 다음과 같았다. forever start 명령어로 ..

개인 프로젝트/[2022] 유튜브 뮤직 클론코딩

[유튜브 뮤직 클론코딩] 7. 로그인 시 발생할 수 있는 에러처리

사실 에러처리는 전에도 이미 해놨었다. 하지만 그때는 간단한 메세지를 alert 함수로 표현하는 식이어서 마음에 들지 않았다. 가능하면 alert는 사용하지 않는 것이 사용자 경험에 좋다고 들었기 때문이다. 그래서 로그인 화면에 에러메세지를 위한 공간을 만들고 평소에는 안보이게 해두다가 에러가 뜨면 보이도록 만들었다. ShowErrorMessage 함수를 만들어서 에러메세지를 표시하도록 했다. const ShowErrorMessage = function(errorMessage) { const error_msg_div = document.getElementById("error-msg"); error_msg_div.style.visibility = "visible"; error_msg_div.textCont..

Infra/오라클 클라우드

[Powershell] ssh 인스턴스 원격 접속 방법

사진은 생략하고 정리합니다. 1. 개인키를 변환해둔다. PuttyGen -> 키 로드 -> Conversion -> Export Open SSH .. -> .ppk 로 저장 2. 변환해서 저장한 키의 권한을 수정한다. 윈도우에서 권한 수정하기 : 변환한 키 파일 우클릭 - 속성 - 보안탭 - 고급 - 상속 사용 안함 - 추가 - 보안 주체 선택 - 사용할 계정 명 입력 - 이름 확인 - 쭉 적용하면서 창 닫기 3. ssh 명령어 입력 ssh (접속할 호스트) -i (키파일 경로) -l ubuntu 키 파일이 없거나 로그인 계정을 설정하지 않아서 루트로 접근하게 되면 퍼미션 오류가 뜸. 이 방법으로 푸티 없이 vscode 쉘에서 원격 접속을 할 수 있다

개인 프로젝트/[2022] 유튜브 뮤직 클론코딩

[유튜브 뮤직 클론코딩] 6. 프로젝트 구조 수정과 로그인 구현

지난 포스팅에 이어 로그인을 구현해보았다. 이 로그인 구현에 정말 시간을 많이 투자했다. 우선은 로그인 페이지 구현을 위해 프로젝트 구조를 수정했다. 현재는 이렇게 외부에서 요청이 들어오면 NGINX가 정적 html파일과 css. js 파일을 반환하면서 프론트를 서비스한다. 그리고 프론트에 뿌려줄 데이터는 다른 오리진으로 분리된 백엔드 서버에서 받아온다. 원래의 내 목표는 로그인에 성공하면 세션을 주어 로그인을 유지하는 기능을 구현하는 것이었다. 하지만 이렇게 구현하였더니 프론트가 유저 정보를 백엔드로 보내 로그인에 성공해도 세션이 백엔드 서버에 대해 생기는 문제가 발생했다. everdu.ga 라는 프론트 도메인이 있고 api.everdu.ga 라는 백엔드 도메인이 있을 때 로그인 처리를 백엔드에서 하면..

독서/Inside Javascript

[Inside Javascript] 7. 함수 생성

자바스크립트의 함수는 다른 언어의 함수와 마찬가지로 코드의 묶음으로도 역할을 하지만, 모듈화 / 클로저 / 객체 생성 등의 역할을 하기도 한다. 자바스크립트에서 함수를 생성하는 방법은 3가지가 있다. 1. 함수 선언문 함수 리터럴 형태로 함수를 선언한다. function func(a, b) { return a + b; } // use function var result = func(1,2); // result = 3 function 키워드, 함수 이름, 매개변수와 함수 몸체로 구성된다. 함수 이름은 원래 생략하여 익명함수로도 리터럴 함수를 생성할 수 있지만, 함수 선언문 방식으로 함수를 선언할 때는 함수 이름을 반드시 입력해야한다. ( 보통 익명함수는 콜백함수를 인자로 넘길 때 많이 사용한다. ) // ..

에버듀
'분류 전체보기' 카테고리의 글 목록 (39 Page)