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
빠진 내용들이 있긴하나, 제가 공부하기에는 충분한 내용이라고 생각이 듭니다.
위 내용들을 모르면 취업안된다거나 그런것은 아니겠으나, 제가 불편하고
많고많은 정보들을 알고 있으면, 어떤 이슈에 대응하거나 예방을 할 수도 있고
어떤 이슈에 대해서 접근하는 생각과 태도가 바뀔 것으로 생각이 듭니다.
이상입니다.
'공부 > 서버' 카테고리의 다른 글
[공부/서버] MSA (MicroService Architecture) (0) | 2022.05.09 |
---|---|
[공부/서버] 백엔드 개발자 지망생, 앞으로 공부해야할 것들 (0) | 2022.03.28 |
[공부/서버] 프록시 서버란? (0) | 2022.02.25 |
[공부/서버] CORS란? (0) | 2022.02.24 |
[프로그래머스] 스킬업/주문관리 API 서버 개발 (0) | 2022.02.13 |