인터넷은 어떻게 작동될까요?
HTTP란?
브라우저와 동작 원리
DNS와 동작 원리
도메인 네임이란?
호스팅이란?
HTML
CSS
JavaScript
현재 Java 기초 책 읽는중
VueJs 공부 중
터미널 사용방법(▲)
OS의 일반적인 작동 방식
프로세스 관리
스레드와 동시성
기본적인 터미널 명령어
grep, awk, sed, lsof, curl, wget, tail, head, less, find, ssh, kill
메모리 관리
프로세스간 통신 (IPC)
POSIX 기초
stdin, stdout, stderr, pipes
기본적인 네트워크 개념
Java(Okay)
C# (배워보고 싶다)
PHP
JavaScript(Okay)
Python(Okay)
Ruby(Okay)
버전 관리란? 사용이유?
많은 코드 파일들을 관리하기 위해서!
저장소 호스팅 서비스 - 계정 생성 및 깃허브 (Github) 사용 방법 배우기
1) Gihub(Okay)
2) Gitlab
3) Bitbucket
1) PostgreSQL(okay)
2) MySQL(Okay)
3) MariaDB
4) MS SQL
5) Oracle
ORM
ACID(원자성, 일관성, 고립성, 지속성)
트랜잭션
N+1 문제
데이터베이스 정규화
인덱스와 작동 방식
데이터 레플리케이션
샤딩 전략
CAP 이론
7.1. NoSQL 데이터베이스
1) MongoDB
2) RethinkDB
3) CouchDB
4) DynamoDB
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
1) CDN(Contents Delivery Network)
2) 서버 사이드
(1) Redis
(2) Memcached
3) 클라이언트 사이드
1)
(1) MD5와 사용하지 않는 이유
(2) SHA Family
(3) scrypt - 해시 알고리즘
(4) bcrypt - 해시 알고리즘
2)
(1) HTTPS
(2) 컨텐츠 보안 정책
(3) CORS
(4) SSL/TLS
(5) OWASP 보안정책
1) 통합 테스트
2) 단위 테스트
3) 기능 테스트
통합테스트는 모듈을 통합(Integrate)하는 단계에서 수행하는 테스트이다.
단위 테스트를 우선 수행하여 모듈들이 각각 정상적으로 작동이 되는 것을 확인했다면 이제 이 모듈들을 연동하여 테스트를 수행하게 되는데 이것이 통합 테스트이다.
1) GOF 디자인 패턴
2) 도메인 주도 설계
3) 테스트 주도 개발
4) SOLID(객체 지향 개발 5대 원리)
SRP(단일책임의 원칙: Single Responsibility Principle)
OCP(개방폐쇄의 원칙: Open Close Principle)
LSP(리스코브 치환의 원칙: The Liskov Substitution Principle)
ISP(인터페이스 분리의 원칙: Interface Segregation Principle)
DIP(의존성역전의 원칙: Dependency Inversion Principle)
5) KISS( Keep It Simple Stupid!) 심플하게 심플하게!
6) YAGNI(You aren't gonna need it) 개발자가 필요하다고 간주할 때 까지 기능을 추가하지 않는 것
7) DRY(Don't repeat yourself)
1) 모놀로틱 앱
2) 마이크로서비스
3) SOA
4) CQRS와 이벤트 소싱
5) Serverless
1) Elasticsearch
2) Solr
1) RabbitMQ
2) Kafka
1) Docker
2) rkt
3) LXC
1) Apollo
2) Relay Modern
1) Neo4j
1) Niginx
2) Apache
3) Caddy
4) MS IIS
1) 마이그레이션 전략
(1) Graceful
(2) Degradation
(3) Throtting
(4) Backpressure
(5) Loadshifting
(6) Circuit Breaker
2) 차이점 이해
(1) 측정
(2) 모니터링
(3) 원격 측정
3) 수평선 확장 vs 수직적 확장
4) 관찰 가능성을 고려한 확장
- 문제가 발생시 문제를 디버깅하고 해결하는데 도움이 되는 측정 로그와 기타 관찰 가능한 항목