본문 바로가기

전체 글

(104)
내배캠 12/27 TIL 코드 Formatter 자바스크립트 코드를 작성하다보면, 가끔 "" (쌍따옴표)를 쓰느냐, ''(일반) 을 쓰느냐로 은근히 갑론을박이 있었고, Python의경우 들여쓰기(탭) 간격이 4칸인데 반해 (이 들여쓰기 법칙을 지키지 않으면 컴파일이 안되는 경우도 종종 봤다) 또한 줄바꾸는건 또 언제 바꿔야 하는건지... 그리고 제일 궁금했던건, 콜백함수에서 인자를 전다할때 예를들어 (data) => {} 로 할건지, 아니면 어차피 한개만 전달하면 생략을 하던지 등등 이게 사용자 편의를 위해 제공되었다 하더라도, 사실 '내 코드를 남이 읽을때' 어떻게 보여야하는가를 신경쓰지 않을수가 없다. 나도 kt알파에 있을때 남이 쓴 함수를 도대체 이걸 어떻게 한건지 정신없을정도로 가독성이 떨어진 코드를 보고 쩔쩔맸던 기억이..
내배캠 12/26 TIL 인증 TOKEN생성시 키 관리는 어떻게? - 로그인과 인증(Auth)을 진행하다보면 private key라는걸로 일종의 비밀번호 비슷한걸 설정하게 된다 그런데 명색이 비밀 키인데 이걸 VSC 안에서 Const 변수로 남겨놓는게 맞나? 이거 잘못하다가 Github에 올리면 다른사람이 다 보는거 아닌가?? 뭐 이런 의문점을 품기 시작했다. 내가 배운 방법은 .env 환경변수 파일을 만들어서 각종 config 사항의 값을 입력하고, dotenv를 설치한 후, 따로 config.js파일을 만들어 config들을 객체로 만들어 접근하는 방식이었다. 사실 아예 코드상에서 os.env로 접근해버려도 가능하기는 한데, 코드가 길어질 뿐만 아니라 가독성이 굉장히 나쁘기때문에 객체를 만들어 접근하는 방식이 더 좋다고 생각..
내배캠 12/23 TIL 오늘은 저번주 개인과제였던 블로그 백엔드 (글,댓글)을 처음부터 다시 해보면서 알게된것들 위주로 적어보려고 한다. 1. -v란 무엇인가? Versionkey라는 필드로서 몽구스를 통해 데이터를 생성하면 자동생성된다. 기본값은 0인데 이게 재밌는 점이, 구글에 -v 몽구스 라고 치면 왠 동물 몽구스 얘기만 잔뜩나와서 당황한 적이 있다. 여튼 스키마 생성시 versionKey : false로 설정하면 해결된다 2. git checkout과 switch의 차이 깃 체크아웃은 두가지 기능이 있었다. 하나는 branch의 변경, 또 하나는 restore의 기능. 그런데 2019년 깃 업데이트를 통해 switch와 restore로 분할되었다. 이렇게 쓰는것을 깃에서도 권장하고 있다고 한다. 앞으론 더 익숙해져야겠다..
내배캠 12/22 TIL 로그인 기능 구현시 ID와 PW 불일치를 한꺼번에 표시하는 이유 - 이건 뭐 Node 이런것보다도, 보안의 본질을 꿰뚫고, 오랫동안 궁금한것이 해결되어서 언급하려 한다. 내가 기억하기로는 거의 모든 사이트에서 로그인을 할 때, ID가 틀리면 ID가 잘못되었다고 나오거나, PW가 틀리면 PW가 잘못되었다고 나오곤 했다. 그런데 최근에는 ID가 틀렸는지, PW가 틀렸는지 명시하지 않고 '사용자 정보가 올바르지 않다' 라고 뜨는 경우가 많다. 특히 블리자드의 Battlenet이 그런 경우. 이는 쉽게 설명하면 혹시나 모를 해커의 공격에 대비해, 개인정보를 최대한 숨기는데 그 목적이 있다. 사실 ID와 PW를 만들때, 아이디가 kang이면 비밀번호는 kang으로 하던가, kang 1234로 하는 경우가 꽤 있다..
내배캠 12/21 TIL sanitization 이란? - Validation시 필요한 절차로서, 원 뜻은 소독(?)이다. 즉, 우리의 데이터를 한번 소독하고 validation을 해야한다는 뜻이다. 예를들면, JSON으로 이름을 보낼때 피치못할 내부 오류로 공백이 들어가서 " KANG"이 들어갔다고 하자. 유효성 체크에서는 Type을 체크하기 때문에, 해당 내용은 String으로 판별되어 공백이 그대로 유효하게 되어버린다. 컴퓨터에서 틈만 나면 얘기하는게 Bug 인데, 이러한 것들을 Bug라고 보면 되고, 그것을 소독하는것인데, 예를들어 Trim() 같은 메소드는 (trim : 깎다) 공백을 제거해주며, Normalize는 이메일 등에서 갑자기 튀어나온 대문자를 바꿔주기도 한다. 물론 DB 인서트시 스키마(몽구스)등으로 체크를..
내배캠 12/20 TIL 쿠키와 세션, 그리고 JWT - 기본적으로 http는 stateless한 특성을 가지고 있다. 한국어로 풀자면 '상태가 없다' 정도인데 좀 더 간단히 이해하자면, 요청을 받고 처리만 해주면 끝나는것이지 계속 state가 유지되지 않는다는 뜻이다. 그렇기에 별다른 처리를 해주지 않으면, 로그인 페이지를 만들어놓아도 다른 페이지로 이동하면 로그인이 풀려버린다. 로그인 결과로 인해 response를 날리면 그걸로 서버가 할 일은 다 끝났기 때문이다. 이 문제를 해결하기 위해 쿠키랑 세션을 사용한다. 쿠키는 서버에서 클라이언트로 내려주는 데이터 파일같은건데, 클라이언트 내부에서 보관한다. 쿠키의 쉬운 예는, 인터넷 브라우저를 종료하고 다시 열어도 사이트 로그인 관련 쿠기만 남아있으면, 로그인 상태가 유지되는것 ..
내배캠 12/19 TIL Param과 Query 차이점 - 왠지는 모르겠지만 이 두가지가 굉장히 헷갈려서 쪼금 고생했다. 파라미터같은 경우는 매개변수, 즉 글번호 1, 2... 등등으로 할때 (현재 작성하는 티스토리 블로그 글도 순차적으로 번호가 매겨지는것 같다.)그 번호를 지칭하고, 쿼리는 쉽게 얘기하면 지금도 구글에 암궈나 쳐 보면 주소창에 search? 어쩌고저쩌고 뒤에 주렁주렁 붙어있는데, ? 이후 부분이라고 보면 된다. 이게 DB에서도 쓰이는데 사실상 그 개념과 다르지 않다. SQL 쿼리는 해당 정보를 찾기 위해 DB에 어떠어떠한 정보를 찾고있다는 명령문이고, 웹에서의 쿼리 역시 웹(검색엔진)에서 이러이러한 검색을 하고싶다는 뜻이니까. 트위터 클론 시작 - 전에 드림코딩에서 끊어놓은 강의가 있어서 내배캠 진행하면서 같이..
Twitter clone 프로젝트 (시작) 프로젝트명 : Dwitter(아마 T에서 D로 바꾼거 아닐까 생각) 사용기술 : FE - (3종세트와 React) - 다만 이건 템플릿 제공이라 별 의미 없음 BE - Node.js, MySQL, MongoDB