공부/서버

[공부/서버] 앞으로 공부해야할 것들

오잎 클로버 2022. 3. 18. 09:27
728x90

현재 Spring 백엔드를 공부하면서 취업에 나가기 위해 공부해야할 것들

그리고 개인 혹은 협업 프로젝트를 보다 효율적으로 개발하기 위해 공부해야할 것들

이렇게 2가지 정도를 목표로 하여 앞으로 공부해야할 것들 한 번 더 작성하고자합니다.

본 글은 여기서 가져왔습니다.

1. 📡NETWORK

  • 쿠키, 세션, JWT 토큰
    • Cookie / Session
    • 세션 기반 인증 / 토큰 기반 인증
    • JWT (Json Web Token)
  • 네트워크 시스템의 Layered Architecture
    • 웹의 동작 방식
    • TCP/IP 5 계층
    • OSI 7 계층
    • TCP, UDP, IP, PORT
  • HTTP, HTTPS
    • HTTP / HTTPS
    • HTTP 2.0
  • 로드 밸런서 (Load Balancer)
    • 로드 밸런싱
    • Scale out, Scale up
  • 프록시 (Proxy)
    • 포워드 프록시, 리버스 프록시
    • DMZ
  • 네트워크 보안(Network Security)
    • 보안 3대 요소, 웹 해킹, 방화벽
    • IPSec, SSL과 TLS
    • SQL Injection, OS Command Injection, XSS, CSRF
  • 웹 소켓 (Web Socket)
    • HTTP Polling, HTTP Long Polling
    • HTTP vs 웹 소켓
    • SocketJS와 Socket.io
  • CORS (Cross Origin Resource Sharing)
    • CORS
    • SOP
    • 스프링 부트에서 CORS 해결하는 방법
  • REST와 RESTful
    • REST 구성 요소와 기본 원칙
    • REST API 디자인 가이드
  • OAUTH (Open Authorization)
    • OAUTH 1.0, OAUTH 2.0
    • 일반 로그인과 OAUTH 로그인 차이
    • 인증 절차 종류
OS (Operation System) → Skip

2. 💾DATABASE

  • RDMS vs NoSQL
    • RDMS와 NoSQL 차이
    • RDMS에서 서버 확장하는 방법 (Master and Slave)
  • ElasticSearch
    • 검색엔진, 검색 시스템, 검색 서비스
    • 검색 시스템 구성 요소
    • 색인과 역색인
    • 검색기 품질
    • 관계형 데이터베이스와의 차이점
    • 엘라스틱서치 주요 API
  • Transaction
    • 트랜잭션을 사용하는 이유
    • ACID
    • 트랜잭션 격리 수준
    • 트랜잭션 격리 수준을 설정할 때 발생하는 문제점들
  • Redis
    • Redis
    • Look Aside Cache, White Back
    • CAP
  • DB Lock
    • Lock의 종류와 단위
    • 블록킹 (Blocking)
    • 데드락 (Dead-Lock)
  • 정규화, 반정규화
    • 이상 현상
    • 정규화와 반정규화
  • Index, Hint
    • 순차 I/O, 랜덤 I/O
    • 쿼리 튜닝의 목적
    • B-Tree Index, Hash Index, InnoDB Adaptive Hash Index
    • MySQL에서 B-Tree를 사용하는 이유
    • 인덱스 레인지 스캔, 인덱스 풀 스캔
    • 클러스터링 인덱스, 논 클러스터링 인덱스
    • MySQL에서 PK를 인조키로 사용하고 AUTO_INCREMENT를 사용하는 이유
    • Hint
  • 동시성 제어
    • 동시성 제어를 하지 않을 시 발생하는 문제점
    • 동시성 제어 방법
  • Oracle Sequence
    • 시퀀스 개념 및 사용법
    • 시퀀스 사용의 장단점
  • Join
    • Inner Join
    • Natural Join
    • Outer Join
    • Semi Join
  • MySQL Architecture
    • MySQL 엔진
    • 스토리지 엔진
    • 핸들러 API
    • MySQL 스레딩 구조
    • 메모리 할당 및 사용 구조
    • 쿼리파서, 전처리기, 옵티마이저, 실행 엔진
    • 스레드풀, 트랜잭션 지원 메타데이터
  • 스키마 (Schema)
    • 스키마 3 계층과 3 계층으로 나누어 사용하는 이유
    • 테이블 vs 스키마
  • DB 클러스터링, 리플리케이션
    • 클러스터 사용 장점과 구현 방법
    • 리플리케이션, 리플리케이션 레그
    • 파티셔닝
    • 샤딩
  • Trigger
    • 트리거 종류 (행 트리거, 문장 트리거)
    • 트리거 장단점
    • 트리거 문법과 예시
  • ConnectionPool
    • 커넥션 풀 개수 설정 방법
    • 커넥션 풀 작동원리 (HikariCP)
    • 커넥션 풀의 장점

3. 💻Computer Architecture

  • RAID
    • RAID 사용 이유
    • RAID에서 쓰이는 3가지 기술
    • RAID 종류와 특징
  • 가상 머신, 가상 메모리
    • 가상 머신과 사용 이유
    • 가상 메모리 이점 및 원리
    • 요구 페이징

4. ☕JAVA

  • 자바 역사와 버전별 특징
  • 자바 언어의 특징
  • 프로그램 실행 과정
  • JVM 아키텍처와 JVM
  • Garbage Collection
  • 객체지향 언어의 특징
    • 캡슐화, 상속, 다형성
  • 클래스
  • 인터페이스
  • 데이터 타입
  • Call By Value vs Call By Reference
  • Promotion, Casting
    • Boxing, UnBoxing
  • Reflection
  • Annotation
  • JDBC
  • Collection Framework
  • SOLID
  • Stream
    • 스트림 기초
    • 스트림 활용
  • 마샬링과 직렬화
  • 제네릭
  • POJO, JavaBeans, Entity, VO, DTO
  • 깊은 복사와 얕은 복사
    • equals와 hashCode
  • 쓰레드
  • 예외처리
  • Immutable, Synchronized (불변, 동기화)
  • Logging
  • Lambda, Funtional Interface, Method References
  • JDK Dynamic Proxy, CGLIB

5. 🍃Spring

  • AOP
  • Weaving
  • IOC, DI
  • PSA
  • Filter, Interceptor
  • Servlet
  • MVC1 vs MVC2
  • Spring vs SpringBoot
  • HttpMessageConverter
  • ArgumentResolver
  • @Scheduled, @Async, @SessionAttribute vs @SessionAttributes
  • Bean Scope
  • ViewResolver
  • Converter, Formatter

 

빠진 내용들이 있긴하나, 제가 공부하기에는 충분한 내용이라고 생각이 듭니다.

위 내용들을 모르면 취업안된다거나 그런것은 아니겠으나, 제가 불편하고

많고많은 정보들을 알고 있으면, 어떤 이슈에 대응하거나 예방을 할 수도 있고

어떤 이슈에 대해서 접근하는 생각과 태도가 바뀔 것으로 생각이 듭니다.

 

 

이상입니다.