우아한 테크캠프를 진행하면서 프론트엔드는 물론 백엔드까지 직접 구성하는 경험을 하고 있다. 😇 지금까지 나에게 백엔드는 fetch, axios로 API 요청을 보내면 내가 기대하는 값을 보내주는 서버
일 뿐이었다. 버튼을 누르면 음료가 나오는 자판기 같은 느낌..?
내가 만들고 있는 자판기(서버)..
하지만 이제 그 자판기를 직접 만들어야하는 상황에 놓이게 되니, 어디서부터 어떻게 손을 대고, 공부해야하는지 너무 막막했다. 이 시리즈에서는 지금까지 우아한 테크캠프 활동을 진행하면서 학습한 백엔드 키워드들을 나열하고, 공부한 내용을 정리하면서 백엔드 생태계는 어떻게 구성되어 있는지
, 클라이언트에서 API 요청을 하면 어떤 과정을 거치면서 응답으로 돌아오는지
, 각 기술들에 대한 설명
등을 작성해볼 예정이다.
물론 미션을 진행하면서 부랴부랴 학습한 내용이라 구멍 숭숭 뚫린 글이 될 예정이니, 저를 위해서라도 잘못된 내용/추가해야 할 내용은 댓글로 지적해주시길 바랍니다.
대략적인 내용이고, 언제든 추가/수정/삭제 될 수 있습니다. 또한 각각의 포스팅으로 작성될 수도 있지만 모두 연관되어 있는 내용이기 때문에 묶여서 작성 될 수 있습니다.
Nods.js란 무엇인가?
일단 이 질문에 정확히 대답할 수 있는지
런타임 환경이란 무엇인지
브라우저와는 어떤 차이가 있는지 등
Node.js 환경에서 백엔드 서버를 구현할 때 가장 많이 사용하는 프레임워크
간단한 사용법, middleware, 자주 사용하는 외부 모듈, routing 등을 포괄적으로 다루어볼 예정
프로젝트를 구성할 때 어떤 기준으로 디렉토리를 나눌지, 이유는 무엇인지
Node.js로 구성하는 백엔드 구조를 중심으로.
여유가 된다면 다른 백엔드 환경/언어는 어떤 차이가 있을지 등
Pug와 같은 템플릿 엔진으로 서버 사이드 렌더링을 하는 방식
웹 초기에 사용 됐던 서버 사이드 렌더링에서 클라이언트 사이드 렌더링으로 넘어온 이유 등에 대해
그리고 최근 다시 서버 사이드 렌더링(주로 초기화면)을 사용하며 클라이언트 사이드 렌더링과 병행하는 이유 등
Node.js 환경에서 로그인 / 회원가입을 구현하는 각종 방법
보안을 위한 여러 도구들 (uuid, express-session, bcrypt)
위에서 언급한 로그인 구현을 위해 사용하는 도구 중 세션, 쿠키에 대해서
프론트엔드도 포함해서 백엔드와 각각 어떻게 다루어야할지
데이터베이스를 사용하는 이유 / 데이터베이스의 조건 등
NeDB로 간단하게 구현하는 데이터베이스
mysql을 기반으로 EC2에 직접 설치도 해보고, ORM(sequelize)도 사용해본다.
mysql workbench를 사용한 ERD 그리기.
여유가 된다는 다른 ORM(typeORM, Prisma)에 대해서도
Web
의 전체적인 구성을 포함해서, 웹 서버와 웹 어플리케이션의 차이, 각각의 역할이 무엇인지Github Passport
를 사용해서 express 서버에서 구현하는 OAuth
OAuth가 무엇인지, 왜 사용하며 어떤 장/단점이 있는지 등
구현하면서 겪었던 에러 사항들
origin이란 무엇이고, same / cross 의 상황은 무엇인지
프론트 / 백엔드에서 각자 어떤 역할을 하며 이를 해결하는지 등
EC2에 서버 띄우기
nginx로 웹 서버, pm2 로 웹 어플리케이션 서버 작동
자동 배포 스크립트와 이를 실행하기 위한 crontab 사용법