[백엔드는 처음이라..] 1. 백엔드 학습 키워드

DD·2021년 7월 29일
5
post-thumbnail

우아한 테크캠프를 진행하면서 프론트엔드는 물론 백엔드까지 직접 구성하는 경험을 하고 있다. 😇 지금까지 나에게 백엔드는 fetch, axios로 API 요청을 보내면 내가 기대하는 값을 보내주는 서버일 뿐이었다. 버튼을 누르면 음료가 나오는 자판기 같은 느낌..?

내가 만들고 있는 자판기(서버)..


하지만 이제 그 자판기를 직접 만들어야하는 상황에 놓이게 되니, 어디서부터 어떻게 손을 대고, 공부해야하는지 너무 막막했다. 이 시리즈에서는 지금까지 우아한 테크캠프 활동을 진행하면서 학습한 백엔드 키워드들을 나열하고, 공부한 내용을 정리하면서 백엔드 생태계는 어떻게 구성되어 있는지, 클라이언트에서 API 요청을 하면 어떤 과정을 거치면서 응답으로 돌아오는지, 각 기술들에 대한 설명 등을 작성해볼 예정이다.

물론 미션을 진행하면서 부랴부랴 학습한 내용이라 구멍 숭숭 뚫린 글이 될 예정이니, 저를 위해서라도 잘못된 내용/추가해야 할 내용은 댓글로 지적해주시길 바랍니다.




앞으로 작성할 내용들

대략적인 내용이고, 언제든 추가/수정/삭제 될 수 있습니다. 또한 각각의 포스팅으로 작성될 수도 있지만 모두 연관되어 있는 내용이기 때문에 묶여서 작성 될 수 있습니다.


Node.js

Nods.js란 무엇인가?

  • 일단 이 질문에 정확히 대답할 수 있는지

  • 런타임 환경이란 무엇인지

  • 브라우저와는 어떤 차이가 있는지 등

Express

  • Node.js 환경에서 백엔드 서버를 구현할 때 가장 많이 사용하는 프레임워크

  • 간단한 사용법, middleware, 자주 사용하는 외부 모듈, routing 등을 포괄적으로 다루어볼 예정

디렉토리 구조

  • 프로젝트를 구성할 때 어떤 기준으로 디렉토리를 나눌지, 이유는 무엇인지

  • Node.js로 구성하는 백엔드 구조를 중심으로.

  • 여유가 된다면 다른 백엔드 환경/언어는 어떤 차이가 있을지 등

SSR (Server Side Rendering) / CSR (Client side Rendering)

  • Pug와 같은 템플릿 엔진으로 서버 사이드 렌더링을 하는 방식

  • 웹 초기에 사용 됐던 서버 사이드 렌더링에서 클라이언트 사이드 렌더링으로 넘어온 이유 등에 대해

  • 그리고 최근 다시 서버 사이드 렌더링(주로 초기화면)을 사용하며 클라이언트 사이드 렌더링과 병행하는 이유 등

로그인 / 회원가입

  • Node.js 환경에서 로그인 / 회원가입을 구현하는 각종 방법

  • 보안을 위한 여러 도구들 (uuid, express-session, bcrypt)

세션 / 쿠키

  • 위에서 언급한 로그인 구현을 위해 사용하는 도구 중 세션, 쿠키에 대해서

  • 프론트엔드도 포함해서 백엔드와 각각 어떻게 다루어야할지

데이터베이스

  • 데이터베이스를 사용하는 이유 / 데이터베이스의 조건 등

  • NeDB로 간단하게 구현하는 데이터베이스

  • mysql을 기반으로 EC2에 직접 설치도 해보고, ORM(sequelize)도 사용해본다.

  • mysql workbench를 사용한 ERD 그리기.

  • 여유가 된다는 다른 ORM(typeORM, Prisma)에 대해서도

웹 서버 / 웹 어플리케이션 서버

  • Web의 전체적인 구성을 포함해서, 웹 서버와 웹 어플리케이션의 차이, 각각의 역할이 무엇인지

OAuth

  • Github Passport를 사용해서 express 서버에서 구현하는 OAuth

  • OAuth가 무엇인지, 왜 사용하며 어떤 장/단점이 있는지 등

  • 구현하면서 겪었던 에러 사항들

same / cross origin

  • origin이란 무엇이고, same / cross 의 상황은 무엇인지

  • 프론트 / 백엔드에서 각자 어떤 역할을 하며 이를 해결하는지 등

HTTP

  • HTTP 통신에 대한 이야기. 흐름

AWS EC2

  • EC2에 인스턴스를 생성해서, 키를 받아서 서버를 띄우는 것 까지

Deploy(배포)

  • EC2에 서버 띄우기

  • nginx로 웹 서버, pm2 로 웹 어플리케이션 서버 작동

  • 자동 배포 스크립트와 이를 실행하기 위한 crontab 사용법

profile
기억보단 기록을 / TIL 전용 => https://velog.io/@jjuny546

0개의 댓글