본문 바로가기
공부

백엔드 로드맵!

by sky1to 2021. 2. 22.

1. 인터넷(복습 중)

  1. 인터넷은 어떻게 작동될까요?
  2. HTTP란?(▲)
  3. 브라우저와 동작 원리
  4. DNS와 동작 원리(Okay)
  5. 도메인 네임이란?
  6. 호스팅이란?

2. 기본적인 프론트엔드 지식(기본적인 프론트 지식 Okay)

  • HTML
  • CSS
  • JavaScript
    • 현재 Java 기초 책 읽는중
    • VueJs 공부 중

3. OS 및 일반적인 지식

  • 터미널 사용방법(▲)
  • OS의 일반적인 작동 방식
  • 프로세스 관리
  • 스레드와 동시성
  • 기본적인 터미널 명령어
    • grep, awk, sed, lsof, curl, wget, tail, head, less, find, ssh, kill
  • 메모리 관리
  • 프로세스간 통신 (IPC)
  • POSIX 기초
    • stdin, stdout, stderr, pipes
  •  기본적인 네트워크 개념

4. 언어배우기(Okay)

  • Java(Okay)
  • C# (배워보고 싶다)
  • PHP
  • JavaScript(Okay)
  • Python(Okay)
  • Ruby(Okay)

5. 버전관리(Version Control System) -

  • 버전 관리란? 사용이유?
    • 많은 코드 파일들을 관리하기 위해서!
  •  저장소 호스팅 서비스 - 계정 생성 및 깃허브 (Github) 사용 방법 배우기

    1) Gihub(Okay)

    2) Gitlab

    3) Bitbucket

 

6.관계형 데이터베이스

    1) PostgreSQL(okay)

    2) MySQL(Okay)

    3) MariaDB

    4) MS SQL

    5) Oracle

 

7. 데이터베이스 상세정보

  1. ORM
  2. ACID(원자성, 일관성, 고립성, 지속성)
  3. 트랜잭션
  4. N+1 문제
  5. 데이터베이스 정규화
  6. 인덱스와 작동 방식
  7. 데이터 레플리케이션
  8. 샤딩 전략
  9. CAP 이론

7.1. NoSQL 데이터베이스

    1) MongoDB

    2) RethinkDB

    3) CouchDB

    4) DynamoDB

 

8. API에 대해서 배우기

    1) HATEOAS

    2) 오픈 API 스펙과 Swagger

    3) 인증

        (1) Cookie 기반

        (2) OAuth(다른 서비스의 회원 정보를 안전하게 사용하기 위한 방법)

        (3) 기본적인 인증

        (4) 토큰 인증

        (5) JWT

        (6) OpenID

        (7) SAML

    4) REST - Roy Fieiding의 Poper 읽기

    5) JSON SPIs

    6) SOAP

 

9. 캐싱

    1) CDN(Contents Delivery Network)

  • Cache Server에 해당 Content를 저장(캐싱)하고 Content 요청시에 Cache Server가 응답을 주는 기술이다.

    2) 서버 사이드

        (1) Redis

        (2) Memcached

    3) 클라이언트 사이드

  • 클라이언트 사이드 캐싱을 사용하면, 어플리케이션은 자주 사용되는 쿼리의 응답을 어플리케이션 메모리 내에 직접 저장하여, 나중에 데이터베이스에 다시 쿼리하지 않고 응답을 재사용할 수 있도록 한다.

10.웹 보안 지식

    1) 

        (1) MD5와 사용하지 않는 이유

        (2) SHA Family

        (3) scrypt - 해시 알고리즘

        (4) bcrypt - 해시 알고리즘

    2) 

        (1) HTTPS

        (2) 컨텐츠 보안 정책

        (3) CORS

        (4) SSL/TLS

        (5) OWASP 보안정책

11. 테스팅

    1) 통합 테스트

    2) 단위 테스트

    3) 기능 테스트

 

통합테스트는 모듈을 통합(Integrate)하는 단계에서 수행하는 테스트이다.
단위 
테스트를 우선 수행하여 모듈들이 각각 정상적으로 작동이 되는 것을 확인했다면 이제 이 모듈들을 연동하여 테스트를 수행하게 되는데 이것이 통합 테스트이다.

12. CI / CD

13. 개발과 설계 원칙

    1) GOF 디자인 패턴

    2) 도메인 주도 설계

    3) 테스트 주도 개발

    4) SOLID(객체 지향 개발 5대 원리)

  1. SRP(단일책임의 원칙: Single Responsibility Principle)
  2. OCP(개방폐쇄의 원칙: Open Close Principle)
  3. LSP(리스코브 치환의 원칙: The Liskov Substitution Principle)
  4. ISP(인터페이스 분리의 원칙: Interface Segregation Principle)
  5. DIP(의존성역전의 원칙: Dependency Inversion Principle)

    5) KISS( Keep It Simple Stupid!) 심플하게 심플하게!

    6) YAGNI(You aren't gonna need it) 개발자가 필요하다고 간주할 때 까지 기능을 추가하지 않는 것

    7) DRY(Don't repeat yourself)

 

13.1 아키텍처 패턴

    1) 모놀로틱 앱

    2) 마이크로서비스

    3) SOA

    4) CQRS와 이벤트 소싱

    5) Serverless

14. 검색엔진

    1) Elasticsearch

    2) Solr

15. 메세지 브로커

    1) RabbitMQ

    2) Kafka

16. 컨테이너화  vs 가상화

    1) Docker

    2) rkt

    3) LXC

17. GraphQL

    1) Apollo

    2) Relay Modern

18. 그래프 데이터베이스

    1) Neo4j

19. 웹소켓

20. 웹서버

    1) Niginx

    2) Apache

    3) Caddy

    4) MS IIS

21. 확장성 - 프로덕트 지속 가능성에 대해 배우며 관심을 기울여야 하는 일반적인 주제

    1) 마이그레이션 전략

        (1) Graceful

        (2) Degradation

        (3) Throtting

        (4) Backpressure

        (5) Loadshifting

        (6) Circuit Breaker

    2) 차이점 이해 

        (1) 측정

        (2) 모니터링

        (3) 원격 측정

    3) 수평선 확장 vs 수직적 확장

    4) 관찰 가능성을 고려한 확장

        - 문제가 발생시 문제를 디버깅하고 해결하는데 도움이 되는 측정 로그와 기타 관찰 가능한 항목

 

 


  • 웹 생태계의 스펙
    • HTML, HTTP(1.1 , HTTP/2)
  • 기본 SDK, 라이브러리/프레임워크 이해와 활용
  • 클라이언트를 위한 API 설계
  • 서버/컴퍼넌트/객체 간의 역할 분담/의존성/통신 방법 설계
  • 저장소 활용
    • DBMS 설계
    • Cache 적용
      • Global/Local cache 적용범위, 라이프 싸이클, 솔루션 선택
    • 파일 저장 정책/솔루션 선택 활용
  • 검색엔진 연동 방식 결정
  • 빌드 도구
    • Maven/Gradle
  • 배포 전략
  • 성능 테스트/프로파일링/튜닝
    • JVM 레벨의 튜닝 (GC 옵션 등)
      • 웹 서버(Nginx,Tomcat)등의 설정/튜닝
    • OS 설정의 주요 값 확인
  • 인접 기술에 대한 이해
    • DBMS, Front End 등
  • 서버 개발자에만 해당하지는 않는 항목
    • 테스트 코드 작성/리팩토링 기법
    • 버전 관리 전략
      • branch 정책 등

'공부' 카테고리의 다른 글

수학 기말고사 준비  (0) 2020.12.18
법선 벡터  (0) 2020.09.23
W3Schools-CSS  (0) 2020.08.16
아이디어1  (0) 2020.06.24