기록

인프런 초보 백엔드 개발자 로드맵 강의 수강 본문

TIL*

인프런 초보 백엔드 개발자 로드맵 강의 수강

mnmhbbb 2023. 6. 21. 20:22

https://www.inflearn.com/course/%EC%B4%88%EB%B3%B4-%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A1%9C%EB%93%9C%EB%A7%B5

 

[무료] 초보 백엔드 개발자 로드맵 - 인프런 | 강의

웹, CI/CD, API 작성법, DB, 배치 처리 등 백엔드 개발자가 알아야 하는 기본적인 지식들을 소개합니다., - 강의 소개 | 인프런

www.inflearn.com

인프런 초보 백엔드 개발자 로드맵 강의 수강하면서 자유롭게 메모함

 

 

이 강의와 이 글을 같이 읽으면 전체적인 맥락 파악에 도움이 될 것(https://yozm.wishket.com/magazine/detail/2064/)

  • json은 다양한 언어에서 사용 가능함
  • yaml은 주석이 가능
  • yaml 야믈?은 learn yaml 사이트에서 자세히 알 수 있음
  • 리눅스 명령어

-> iterm2 단어 선택 등 단축키 세팅 다시 함
참조: https://stackoverflow.com/questions/6205157/how-to-set-keyboard-shortcuts-to-jump-to-beginning-end-of-line

단어 단위로 삭제하려면 option + backspace

  • 인증 Authentication
    Who you are 누구인지 확인
  • 인가 Authorization
    What you can do 무엇을 할 수 있는지 확인
  • NestJS
    express.js 미들웨어를 사용할 수 있다는 장점
  • spring
    • 기업용 애플리케이션을 만드는데 필요한 것을 모두 갖추고 있는 프레임워크
    • 태생 자체가 기업용 애플리케이션을 위해 만들어졌기 때문에 많은 것을 학습해야 함
    • 같이 사용하는 JPA, spring batch, 시큐리티 등의 퀄리티도 매우 높음.
    • spring은 이와 같이 학습량이 많음
    • java는 발전이 더딘 편이나 코틀린이 나와서 이 부분이 어느정도 해소 됨
    • 큰 회사에서는 대부분 스프링을 사용하기 때문에 취업에 유리하고, 커뮤니티가 큼
  • FastAPI
    • 파이썬 api만 작성하는 용도라면 적합하다고 생각.
  • DB = 검색과 축적이 쉽도록 정리된 데이터의 모음
  • RDB에는 MySQL, Oracle, PostgreSQL 등이 있지만 MySQL만 알아두면 다른 것도 문제없이 다룰 수 있을 것
  • NoSQL = Not Only SQL
  • RDB는 수정 삭제가 용이하지만, 성능을 높이려면 다른 장치를 고안해야 함 = 분산서버
  • NoSQL은 RDB에 비해 그런 것이 잘 되어 있음
  • 특히 MongoDB는 JSON과 매우 비슷하게 생긴 BSON 이라는 문서 모델을 저장함.
  • 또한 클러스터를 지원해서 확장이 용이하고, 따라서 많은 요청이 오는 경우에도 속도가 늦어지지 않도록 잘 지원하고 있음
  • redis는 key value 기반의 NoSQL 데이터베이스, 분산 캐시로 많이 사용함
  • key를 기반으로 데이터를 잘 관리할 수 있도록 해 주기 때문에 DB 범주에 넣어도 된다고 생각함
  • 빠른 성능을 지원하기 때문에 대부분의 회사에서 거의 기본으로 사용하고 있음
  • ORM 오브젝트 릴레이션 매핑의 약자로, 클래스 오브젝트와 테이블의 관계를 클래스로 가져올 수 있도록 해주는 프로그램, 특정 클래스의 메서드를 실행하면 쿼리 생성을 하거나 해당 쿼리를 실행해줌
  • 따라서 ORM을 사용하면, 쿼리 작성없이 DB 조작이 가능하고, 직관적으로 데이터를 관리할 수 있음
  • 반면, 통계 쿼리 같은 복잡한 쿼리는 ORM이 아닌 RAW 쿼리를 사용하는 것이 더 좋은 경우가 많다.
  • ACID 액시드는 원자성/일관성/격리성/내구성을 의미함. DB에서 데이터의 일관성을 유지할 수 있도록 해주고, 문제가 생길 시에는 이전으로 되돌릴 수 있게 해줌
  • 트랜잭션: DB의 상태변화를 시키기 위해서 수행하는 작업의 단위
  • 트랜잭션을 쓰기 때문에 동시다발적으로 발생하는 데이터가 변경 요청 중에도 DB 데이터가 안전하게 변경될 수 있도록 해줌
  • N + 1: ORM 사용 시 많이 맞닥뜨리는 문제로, 관계된 클래스를 조회할 때 데이터 개수만큼 쿼리가 발생하는 것을 말함
  • 의도한 쿼리는 조인을 사용해서 한 번만에 데이터를 가져오는 것을 의도했는데, 그게 아니라 N + 1번 실행돼서 불필요하게 많은 쿼리가 발생하는 것을 말함
  • REST API

REST API

 

  • GraphQL

  • 현업에서의 API: 둘다 사용하는 방식을 많이 씀

 

  • 배치처리: 일정기간 동안 데이터를 모아두었다가, 대량의 데이터 작업을 한 번에 하는 것을 말함. 또는, 일정 시간마다 주기적으로 실행해야 하는 작업을 말하기도 함. 즉, 스케줄링을 해서 작업을 처리하는 것을 말함
    • crontab(리눅스)
    • jenkins(주기적으로 빌드)
    • spring batch
    • node-schedule
    • aws lambda
    • azure function
    • gcp cloud function
  • 배포
    • 도구없이 사용하면 FTP로, 파일 압축해서 배포
    • CI: 배포 전 과정을 자동화하는 것
    • CD: 배포하는 것을 고도화 하는 것
    • CD - 롤링배포, 블루/그린 배포, 까나리 배포 등

  • 도커
  • OAuth
  • 클라우드
    • IDC 환경이 아닌 곳에서는 클라우드를 쓸 거임
    • 유저가 서버를 가상으로 만들어서 서비스를 만들 수 있도록 해줌.
    • 구름!
  • 보안
  • OWASP

'TIL*' 카테고리의 다른 글

'next' 모듈을 찾을 수 없습니다.  (0) 2023.08.17
nvm 설치 도중 알게 된 .zshrc 에러  (0) 2023.08.16
Vim  (0) 2023.06.15
focus-visible  (0) 2022.08.02
TypeScript !(Non-null assertion operator, Definite Assignment Assertions)  (0) 2022.07.29
Comments