업데이트 메서드 put/patch 차이
참고링크
https://programmer93.tistory.com/39
https://velog.io/@vagabondms/%EA%B8%B0%EC%88%A0-%EC%8A%A4%ED%84%B0%EB%94%94-PUT%EA%B3%BC-PATCH-%EC%B0%A8%EC%9D%B4
https://stackoverflow.com/questions/28459418/use-of-put-vs-patch-methods-in-rest-api-real-life-scenarios/39338329#39338329
put: 전체 수정
patch: 일부 수정
정규표현식
참고링크
https://youtu.be/t3M6toIflyQ
https://regexr.com/5mhou
https://regexone.com/
Groups and ranges
| 또는
() 그룹
[] 문자셋, 괄호안의 어떤 문자든
[^] 부정 문자셋, 괄호안의 어떤 문가 아닐때
(?:) 찾지만 기억하지는 않음
Quantifiers
? 없거나 있거나 (zero or one)
* 없거나 있거나 많거나 (zero or more)
+ 하나 또는 많이 (one or more)
{n} n번 반복
{min,} 최소
{min,max} 최소, 그리고 최대
Boundary-type
\b 단어 경계
\B 단어 경계가 아님
^ 문장의 시작
$ 문장의 끝
Character classes
\ 특수 문자가 아닌 문자
. 어떤 글자 (줄바꿈 문자 제외)
\d digit 숫자
\D digit 숫자 아님
\w word 문자
\W word 문자 아님
\s space 공백
\S space 공백 아님
예시)
email찾기
/[a-zA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.]+
유튜브 주소에서 아이디값만 찾기:
(?:https?:\/\/)?(?:www\.)?youtu.be\/([a-zA-Z0-9-]{11})
Q1) mongoose에서 sequelize로 변경했을 때, 많은 코드 변경이 있었나요?
있었다면 어떤 코드에서 변경사항이 많았나요?
Q2) 닉네임과 비밀번호에 대한 요구사항 검증은 어떻게 진행하였나요?
만약 정규표현식을 사용하였다면 어떤 정규표현식으로 구현하였나요?
Q3) ERD를 먼저 작성 후 개발을 진행했을 때, 좋은 점은 어떤 것들이 있었나요?
Q4) JWT를 이용해 사용자 인증은 진행하였을 때, 어떤 장점과 단점이 존재하였나요?
Q5) 게시글 조회 API Response를 어떻게 구성하였나요? 왜 그렇게 구성하였나요?
후발대강의 복습
메모리구조
코드영역
실행할 프로그램의 코드가 저장되는 영역
컴퓨터가 이해할 수 있는 바이너리 코드가 저장되는 영역
CPU (정확히는 PC 레지스터)가 참조하여 프로그램을 실행할때 사용
데이터 영역
프로그램의 전역 변수, 정적 변수가 저장되는 공간
프로그램 시작 시 할당되고 종료 시 해제되는 특징
전역 변수 사용시 편하다는 장점이있고, 메모리가 부족할 수 있다는 단점이 있음
힙(Heap) 영역
사용자(프로그래머) 에 의해 관리되는 영역
프로그래머가 할당/해제하는 메모리 공간
런타임시에 크기가 결정
예시) 객체 타입 - 클래스, object, array 등
스택(Stack) 영역
프로그램이 자동으로 사용하는 임시 메모리 영역
LIFO (Last In First Out) 의 특징
함수 호출이 완료되면 할당된 영역이 해제
예시) 함수, 지역 변수 선언시 할당
호이스팅 (Hoisting)
스코프의 정의
실행 컨텍스트에서 변수에 접근할 수 있는 범위
함수 스코프
변수(var로 선언됨) 가 호이스팅 되는 시작점의 기준이 가장 가까운 함수
블록 스코프
let, const 키워드로 선언한 변수가 블록 스코프에 해당
변수가 호이스팅 되는 시작점의 기준이 가장 가까운 블록이 됨
블록은 중괄호 {} 로 열고 닫는 영역의 범위
클로저
디버깅
sequelize 특강
sequelize db:create 하기 전에
mysql -u root -p (단, root->admin)
show databases
api.rest 파일을 생성해서 api 호출하는 방법도 있음
extention 설치 : REST client
사용법: api.rest 파일에서: 메서드+호출주소+send request
예)
GET http://localhost:3000/api -> 상단의 Send Request 클릭
// api 나눌때는 ### 으로 나누고 새 api 요청
###
POST http://localhost:3000/users
Content-Type: application/json
{
}