Search
Duplicate
📌

멘토링

회의 날짜
2021/10/07
회의 내용
회의 날짜_formatted
Oct 07
참여자
인스턴스 종료가 종료가 아니라 서버 삭제 (폐기) 이다!
그래서 잠깐 껏다키려고 하면, 중지를 눌러야한다.
작업→인스턴스설정→종료방지기능 변경→활성화
이렇게 하면 지우고싶어도 안지워진다. 다시 비활성화해야 종료가 된다.
작업→인스턴스설정→종료동작변경→중지로 설정
종료 비활성 해야됨
db 비번바꾸기

보안

가장 확실하고 빠른 방법 : https 설정을 해야한다.
근데 도메인 써야댐... ㅜ.ㅜ → 무료로 ssl 해야된다....

코드리뷰

swagger.js

별도 디렉토리로 만들면 싱크가 안맞을 수 있다.
가우터 내에서 쓰면 가독성이 너무 구리다.
둘 중에 좋은 것을 선택하면 된다.
구조는 잘 잡았다.

expres.js

어떤 패턴을 사용해서 짰는지 용어들을 알아두면 좋다.
구구절절 가독성 좋으려고 나눠서 했다... 이렇게 하기보단,
디자인 패턴 용어를 설명하면 된다.
면접관을 무시하면 안됨!
담당 분야가 다를 수 있기 때문에, 각 면접관이 어떤 분야에 전문가인지 눈치채고 대응을 잘 해야함!
그래서 전문 용어를 잘 알아둬야한다.

app.js

나머지는 잘 되어있다.

index.js - route

user
코드는 신경써서 잘 짠거 같다! ycha 칭찬들음 ~~
최근에 멘토링한 코드 중에서 젤 깔끔하게 짰다.
대박 칭찬 계속 들음!
나중에는 unit 테스트도 하면 좋다.
Jest 를 가장 많이 쓴다.
내가 만든 API를 자동으로 해주는 툴이 있다. → 이것 까지 자동화 하면 완벽하다!
Q. 테스트를 뭐를 해야하나요? A. 코드의 모든 기능들, 사용자 만들기, 삭제하기, DB 통신 등 모두 처리한다.
그래서 가짜 데이터를 만들어서 하는데 Jest를 사용해야한다.
하지만 그걸 전부 이해하려면, 한달은 걸린다.
백엔드는 너무 잘 되어 있다.

멘토님 생각

멘토님은 처음부터 새로 짜는 것 보다는 심패소생술이 중요하다고 생각한다!

API 구성 질문

Q. 슬래시에 할지 쿼리에할지 바디에할지 고민이 된다.
A. 설계자의 철학이기 때문에 그냥 하면 될 것 같다.
DB
정답을 찾으려고 하지마라... 너무 고민을 깊게 많이 하지 마라...

보안

1.
서버 구성 암호화
실용적인 보안
TLS → node.js에 넣지는 않는다.
앞단에 있는 webserv에 넣는다.
nginx 혹은 아파치
설정들을 하면 되는 것!
https 등..
클라이언트 - nginx - node
ㄴ https ㄴ http
reverse proxy 라고 검색해보기
하나의 서버로 하려면 webserv를 443 으로 두면 됨
같은 ec2에 nginx 깔아서 포트 연결
nginx 안에서 ssl 하고 다 하는 거임!
실제로는 ELB (로드밸런서) 사용한다.
인증서도 AWS가 해줌..(돈만주면됨)
돈주고 하면 아무 생각도 안해도됨
알고만 있고 안해도된다... 일단 그냥 nginx에 ssl 정도만..
let's enoryp → 철자 맞는지 모르겠음
reboot은 ip가 바뀌지 않는다.
도메인 사기!
도메인 산 사이트에서 ec2랑 연결할 수 있음
2.
데이터 암호화
DB 컬럼 암호화
ex)
id: "heelo"
pw: "asdf"
둘다 varchar로 할거냐?
암호 필드는 암호화를 해야한다.
단방향 암호화를 해야한다.
hash값이 같은지 보는게 있다.
DB자체 기능활용 or 코드에서 할 것이냐
일반적으로는 코드에서 암호화
하고 DB에 string으로 저장
하지만 멘토로서는 그냥 DB자체 기능을 활용하는게 좋아보인다.
기능의 차이는 없는데 기업들에서 왜 안하냐면, 그냥 정형화 돼서 그렇다.
간단하게 비교하면 라이브러리 쓸 것이냐, 손으로 직접 짤 것이냐의 차이다.
3.
인증
인증 라이브러리를 쓰면 된다.
js passport 를 가장 많이 쓴다. 모든 인증 기능을 다 제공한다.
인증한 결과를 어떻게 할지
"세션"기반 ... 등 → 이것도 정답이 없다.
공부를 해서 적절한 것 골라야한다.
용어 위주로 공부하면서 다음단계를 준비하면 된다.
상태관리
쇼핑몰 장바구니 기능 으로 비유할 수 있다. ( 결과만 서버에 보내는 방법으로 성능을 올릴 수 있다.)
사용자 정보를 어디에 저장할지, 어떻게 사용할지
클라이언트 vs 서버 → 둘다 됨 적절히 알아서 사용한다. 장단점을 보고 결정해야 한다.
우리 프로젝트에는 뭘 선택하든지 상관이 없다.
sudo lastb
Bash
복사
대단...
유저 패스워드 설정 하면 안되는거임...
원래는 키방식으로 접속해야함..
id랑 keygen한거로만 해야함.
su 가 해야하는 역할이 그거임..
알면 알수록 할게 많아진다!
다음 멘토링 일정 : 10월 마지막 혹은 11월 첫째주
Unit test
Jest
> 모든 기능을 점검해야된다..
> 실제 DB 통신까지 한다..
> 가짜 DB를 만들어서 삽입하고한다....
> 근데 일반적으로 익숙하게 쓰려고 하면 한달은 잡아야된ㄷ... 그래서 급하게 할필요없음..