멋쟁이 신입 사원이 되기 위해 정리한 표들이다.
키워드들은 흐름설명을 위한 예시이다.
내가 이 개념들을 알고 흐름대로 설명할 수 있는가?! 를 집중하고 있다.
공부 내용이 너무 많아 최근 삼성SDS 임직원 멘토링을 통해
공부의 우선순위를 질문하였다.
혹시나 아래 내용 중 빼도 되는 주제가 있을까 기대했지만,
역시나 희망 직무를 듣고는 "다 공부하셔야하긴 하는데..." 라는 답변이 돌아왔다.
그렇다면, 우선순위를 어디에 둘 지 질문을 드리니,
운영체제 => 네트워크 => DB => 서버 운영 => 클라우드
인 것을 보니 기본부터 탄탄히 채우라는 말씀 같았다!
활용
1. 표를 인쇄한다.
2. 짬짬히 기술 블로그, 서적을 통해 키워드들을 학습한다.
3. 연결/꼬리질문을 만든다.
연결질문 | 꼬리 질문 |
JVM, Spirng Boot, JPA를 안다. => JVM부터 시작해서 JPA 까지 어떤 흐름으로 구동되는지 설명해보자. | 파일은 어떻게 구분되지? 확장자는 어떻게 구분되지? 왜 pptx, zip이 같은 매직 넘버를 갖지? |
4. 학습여부와 날짜를 체크한다.
아래는 정리한 표이다.
Docker나 CI/CD등 빠진 개념의 표도 만들어나갈 예정이다...
운영체제를 안다고 말하기 위해 알아야할 키워드
개념 | 키워드 |
운영체제 (Operating System) | 커널, 프로세스, 메모리, 파일 시스템 |
커널 (Kernel) | 스케줄러, 디바이스 드라이버, 시스템 호출 |
파일 시스템 (File System) | 디렉토리, 파일, 클러스터, 인덱싱 |
프로세스 (Process) | 스레드, 쓰레드, PCB, 문맥 교환 |
스레드 (Thread) | 동시성, 병렬성, 경쟁 상태 |
메모리 관리 (Memory Management) | 가상 메모리, 페이지 폴트, 캐싱 |
파일 및 디렉토리 관리 | FAT, NTFS, inode, 파일 액세스 권한 |
입출력 관리 (I/O Management) | 버퍼링, DMA, 입출력 포트 |
인터럽트 (Interrupt) | 하드웨어 인터럽트, 소프트웨어 인터럽트 |
디바이스 드라이버 (Device Driver) | 하드웨어 추상화, 펌웨어 |
시스템 호출 (System Call) | API, 유저 모드, 커널 모드 |
프로세스 스케줄링 (Process Scheduling) | Round Robin, 선점형, 비선점형 |
가상 메모리 (Virtual Memory) | 페이지 테이블, 스왑, 메모리 매핑 |
네트워킹 (Networking) | TCP/IP, OSI 모델, 라우팅 |
보안 (Security) | 암호화, 방화벽, 권한, 인증 |
네트워크를 안다고 말하기 위해 알아야할 키워드
개념 | 키워드 |
네트워크 (Network) | 프로토콜, 패킷, 라우터, 스위치 |
프로토콜 (Protocol) | TCP/IP, HTTP, DNS, FTP, UDP |
패킷 (Packet) | 헤더, 페이로드, 라우팅, 스위칭 |
라우터 (Router) | 라우팅 테이블, 게이트웨이, 서브넷 |
스위치 (Switch) | MAC 주소 테이블, VLAN, 포트 |
TCP/IP | TCP, IP, 포트, 소켓 |
HTTP | 요청 메서드, 상태 코드, 헤더 |
DNS (Domain Name System) | 도메인, 네임 서버, 쿼리 |
FTP (File Transfer Protocol) | 데이터 전송 모드, 포트 |
UDP (User Datagram Protocol) | 연결리스, 비연결형, 멀티캐스트 |
헤더 (Header) | IP 헤더, TCP 헤더, HTTP 헤더 |
라우팅 (Routing) | 정적 라우팅, 동적 라우팅, 경로 |
스위칭 (Switching) | 스위칭 테이블, MAC 주소, 포워딩 |
VLAN (Virtual LAN) | 브로드캐스트 도메인, 태깅, 언태깅 |
TCP (Transmission Control Protocol) | 연결 지향, 신뢰성, 흐름 제어 |
IP (Internet Protocol) | IPv4, IPv6, 서브넷 마스크 |
포트 (Port) | 웰노운 포트, 동적 포트, 포트 번호 |
클라우드를 안다고 말하기 위해 알아야할 키워드
개념 | 키워드 |
클라우드 (Cloud) | 가상화, 확장성, 서비스 모델, 리소스 프로비저닝 |
가상화 (Virtualization) | 가상 머신, 하이퍼바이저, 컨테이너 |
확장성 (Scalability) | 수평 확장, 수직 확장, 부하 분산 |
서비스 모델 (Service Models) | IaaS, PaaS, SaaS |
리소스 프로비저닝 (Resource Provisioning) | 자동화, 스케일 업/다운, 오토스케일링 |
가상 머신 (Virtual Machine) | 하드웨어 가상화, 이미지, 스냅샷 |
하이퍼바이저 (Hypervisor) | 타입 1, 타입 2, 가상화 소프트웨어 |
컨테이너 (Container) | 도커, 쿠버네티스, 마이크로서비스 |
수평 확장 (Horizontal Scaling) | 여러 인스턴스, 로드 밸런싱 |
수직 확장 (Vertical Scaling) | 성능 업그레이드, 자원 강화 |
부하 분산 (Load Balancing) | 로드 밸런서, 트래픽 분배, 고가용성 |
IaaS (Infrastructure as a Service) | 가상 서버, 스토리지, 네트워킹 |
PaaS (Platform as a Service) | 개발 플랫폼, 런타임 환경, 디버깅 |
SaaS (Software as a Service) | 웹 애플리케이션, 이메일, 오피스 스위트 |
자동화 (Automation) | 스크립팅, 구성 관리, 인프라 코드 |
스케일 업/다운 (Scale Up/Down) | 수직 스케일, 수평 스케일 |
오토스케일링 (Autoscaling) | 트리거, 메트릭, 자동 조정 |
이미지 (Image) | 가상 머신 이미지, 도커 이미지 |
스냅샷 (Snapshot) | 상태 저장, 백업, 롤백 |
도커 (Docker) | 컨테이너 기술, 이미지, 컴포즈 |
쿠버네티스 (Kubernetes) | 오케스트레이션, 파드, 레플리카셋 |
백엔드를 안다고 말하기 위해 알아야할 키워드
개념 | 키워드 |
백엔드 (Backend) | 서버, 데이터베이스, 비즈니스 로직, API |
서버 (Server) | 웹 서버, 애플리케이션 서버, 데이터베이스 서버 |
데이터베이스 (Database) | SQL, NoSQL, 관계형 데이터베이스, 몽고DB |
비즈니스 로직 (Business Logic) | 서버 사이드 로직, 알고리즘, 데이터 처리 |
API (Application Programming Interface) | RESTful API, GraphQL, 엔드포인트, 요청 및 응답 |
웹 서버 (Web Server) | Apache, Nginx, 웹 호스팅, 포트 |
애플리케이션 서버 (Application Server) | Tomcat, JBoss, 웹 애플리케이션 배포 |
SQL (Structured Query Language) | SELECT, INSERT, UPDATE, DELETE |
NoSQL | MongoDB, Redis, Cassandra |
관계형 데이터베이스 (Relational Database) | MySQL, PostgreSQL, Oracle |
몽고DB (MongoDB) | 문서 지향 데이터베이스, 콜렉션, 도큐먼트 |
RESTful API | HTTP 메서드, 자원, 상태 코드, URI |
GraphQL | 쿼리 언어, 스키마, 리졸버 |
엔드포인트 (Endpoint) | URL, REST API 엔드포인트, 경로 |
요청 및 응답 (Request and Response) | HTTP 요청 메서드, 헤더, 바디 |
Apache | 웹 서버 소프트웨어, 가상 호스팅 |
Nginx | 리버스 프록시, 로드 밸런싱 |
Tomcat | 자바 웹 애플리케이션 서버 |
JBoss | Java EE 애플리케이션 서버 |
웹 호스팅 (Web Hosting) | 공유 호스팅, 가상 서버, 클라우드 호스팅 |
포트 (Port) | 포트 번호, 포트 포워딩, 보안 그룹 |
Spirng Framework를 안다고 말하기 위해 알아야할 키워드
개념 | 키워드 |
Spring Framework | IoC 컨테이너, DI, AOP, Bean, 컨텍스트 |
스프링 부트 (Spring Boot) | 자동 설정, 내장 서버, 스프링 부트 스타터 |
MVC 아키텍처 (MVC Architecture) | 모델, 뷰, 컨트롤러 |
빈 라이프사이클 (Bean Lifecycle) | 초기화 메서드, 소멸 메서드, 빈 후처리자 |
어노테이션 (Annotations) | @Controller, @Service, @Repository, @Autowired |
의존성 주입 (Dependency Injection) | 생성자 주입, 세터 주입, 필드 주입 |
애스펙트 지향 프로그래밍 (Aspect-Oriented Programming) | @Aspect, Advice, Pointcut |
데이터베이스 연동 (Database Integration) | JdbcTemplate, Hibernate, MyBatis |
트랜잭션 관리 (Transaction Management) | @Transactional, Propagation, Isolation |
스프링 시큐리티 (Spring Security) | 인증, 권한, 필터 체인, 사용자 인터페이스 |
스프링 데이터 JPA (Spring Data JPA) | Repository, Query Methods, JpaRepository |
RESTful 웹 서비스 (RESTful Web Services) | @RestController, @RequestMapping, @PathVariable |
스프링 부트 스타터 (Spring Boot Starter) | Starter 의존성, 자동 구성, 커스터마이징 |
프로파일 (Profiles) | 개발 환경, 운영 환경, @Profile 어노테이션 |
테스트 (Testing) | JUnit, @SpringBootTest, MockMvc |
스프링 클라우드 (Spring Cloud) | 서비스 디스커버리, 분산 설정, 히스트릭스 |
마이크로서비스 아키텍처 (Microservices Architecture) | 독립 배포, API 게이트웨이, 분산 데이터 관리 |
스프링 배치 (Spring Batch) | Job, Step, ItemReader, ItemWriter |
캐시 (Caching) | @Cacheable, @CacheEvict, 캐시 구현체 |
스프링 웹 플럭스 (Spring WebFlux) | Reactive Programming, Flux, Mono |
레디스 (Redis) | 캐시 저장소, Pub/Sub, 레디스 템플릿 |
AWS를 안다고 말하기 위해 알아야할 키워드
개념 | 키워드 |
AWS (Amazon Web Services) | EC2, S3, RDS, Lambda, VPC, IAM |
클라우드 컴퓨팅 (Cloud Computing) | 가상 서버, 온디맨드, 탄력적 확장 |
EC2 (Elastic Compute Cloud) | 인스턴스, AMI, 인스턴스 유형, 키 페어 |
S3 (Simple Storage Service) | 버킷, 객체, 버전 관리, 정적 웹 호스팅 |
RDS (Relational Database Service) | MySQL, PostgreSQL, Aurora, 스냅샷 |
Lambda | 서버리스, 이벤트 드리븐, 함수 실행 |
VPC (Virtual Private Cloud) | 서브넷, 라우팅 테이블, 보안 그룹, ACL |
IAM (Identity and Access Management) | 사용자, 역할, 그룹, 권한 정책 |
탄력적 확장 (Elasticity) | Auto Scaling, 수평 확장, 수직 확장 |
가용 영역 (Availability Zone) | 리전, 다중 가용 영역, 가용성 |
CloudWatch | 모니터링, 경보, 지표, 로깅 |
Elastic Beanstalk | 플랫폼 서비스, 애플리케이션 배포 |
Route 53 | 도메인 등록, DNS 서비스, 라우팅 |
CloudFront | CDN, 캐시, Edge Location |
SNS (Simple Notification Service) | 토픽, 메시지, 서브스크립션 |
SQS (Simple Queue Service) | 큐, 메시지 전달, 폴링 |
Kinesis | 데이터 스트림, 파이어호스, 비디오 스트림 |
DynamoDB | NoSQL 데이터베이스, 테이블, 아이템 |
ECS (Elastic Container Service) | 도커, 태스크, 클러스터, 서비스 |
EKS (Elastic Kubernetes Service) | Kubernetes, 마스터, 노드 그룹 |
API Gateway | API 관리, 배포, 인증, 캐싱 |
CloudFormation | 인프라스트럭처 코드, 스택, 템플릿 |
VPC Peering | 가상 사설망 연결, 라우팅 |
Direct Connect | 전용 네트워크 연결, 고가용성 |
WAF (Web Application Firewall) | 보안 정책, 규칙, XSS, SQL 인젝션 |
Cognito | 사용자 풀, ID 풀, 인증, 권한 부여 |
아키텍처를 안다고 말하기 위해 알아야할 키워드
개념 | 키워드 |
마이크로서비스 아키텍처 (Microservices Architecture) | 독립 배포, 분산 데이터 관리, 각별한 서비스 |
클라이언트-서버 아키텍처 (Client-Server Architecture) | Frontend, Backend, RESTful API |
REST 아키텍처 (Representational State Transfer) | 자원, URI, HTTP 메서드, 상태lessness |
이벤트 드리븐 아키텍처 (Event-Driven Architecture) | 이벤트, 발행-구독, 비동기 통신 |
시스템 아키텍처 (System Architecture) | 모놀리식, 마이크로서비스, 이벤트 드리븐 |
분산 아키텍처 (Distributed Architecture) | 클라이언트, 서버, 분산 데이터베이스 |
보안 아키텍처 (Security Architecture) | 인증, 인가, 암호화, 보안 정책 |
캐시 아키텍처 (Cache Architecture) | 캐시 서버, TTL, 레디스, 메모리 캐싱 |
컨테이너 오케스트레이션 (Container Orchestration) | 쿠버네티스, 도커 스웜, 오토스케일링 |
서버리스 아키텍처 (Serverless Architecture) | 함수 서비스, AWS Lambda, 이벤트 기반 |
이중화 (Redundancy) | 확장성, 부하 분산, 고가용성 |
이중화 및 장애 복구 (Redundancy and Fault Tolerance) | 장애 탄력성, 백업, 롤백 |
적응형 아키텍처 (Adaptive Architecture) | 자동화, 학습, 성능 최적화 |
레이어드 아키텍처 (Layered Architecture) | Presentation Layer, Business Logic Layer , Data Access Layer |
서비스 계약 (Service Contract) | API, 인터페이스, 계약, 버전 관리 |
쿼드라틱 아키텍처 (Quadrant Architecture) | 안정성, 플라이웨이트, 어댑터, 헥사고널 |
모바일 아키텍처 (Mobile Architecture) | 네이티브 앱, 웹 앱, 하이브리드 앱 |
히스토리 및 상태 관리 (History and State Management) | 브라우저 히스토리, 상태 저장소, Redux |
서비스 지향 아키텍처 (Service-Oriented Architecture, SOA) | 서비스, 메시지, 서비스 계약 |
산업 4.0 아키텍처 (Industry 4.0 Architecture) | IoT, 빅데이터, 스마트 공장, 자율주행 |
쿠버네티스를 안다고 말하기 위해 알아야할 키워드
개념 | 키워드 |
쿠버네티스 (Kubernetes) | 컨테이너 오케스트레이션, 클러스터, 마스터 노드, 워커 노드 |
파드 (Pod) | 컨테이너 그룹, 최소 배포 단위 |
디플로이먼트 (Deployment) | 애플리케이션 배포, 롤링 업데이트 |
서비스 (Service) | 서비스 디스커버리, 로드 밸런싱, 클러스터 내부 통신 |
레플리카셋 (ReplicaSet) | 파드 복제, 가용성, 확장성 |
노드 (Node) | 쿠버네티스 클러스터에서의 워커 머신 |
컨테이너 (Container) | 도커, 파드 내부의 실행 단위 |
쿠블릿 (Kubelet) | 노드에서 동작, 파드의 상태 유지 및 관리 |
쿠브-프록시 (kube-proxy) | 서비스 노출, 로드 밸런싱 |
인그레스 (Ingress) | 외부에서 클러스터로의 HTTP 및 HTTPS 트래픽 관리 |
PV (Persistent Volume) | 지속적인 스토리지, 스토리지 클래스와 함께 사용 |
PVC (Persistent Volume Claim) | PV에 대한 요청, 동적 프로비저닝 |
네임스페이스 (Namespace) | 리소스 분리, 다중 환경 지원 |
쿠버네티스 API (Kubernetes API) | 클러스터 관리, 설정, 상태 등의 접근을 위한 RESTful API |
컨피그맵 (ConfigMap) | 설정 데이터, 애플리케이션 구성 정보 |
시크릿 (Secret) | 민감한 정보 보호, 암호, 토큰 등 |
RBAC (Role-Based Access Control) | 사용자 및 그룹에 대한 권한 제어 |
헬름 (Helm) | 패키지 매니저, 애플리케이션 배포를 위한 차트 |
스테이트풀셋 (StatefulSet) | 상태 유지, 순차적 파드 배포 |
커스텀 리소스 정의 (Custom Resource Definitions, CRD) | 사용자 정의 리소스, 컨트롤러 확장 |
오토스케일링 (Autoscaling) | 수평 및 수직 스케일링, 리소스 자동 조정 |
쿠버네티스 네트워크 (Kubernetes Network) |
CNI, Pod 간 통신, 서비스 네트워크 |
쿠버네티스 이벤트 (Kubernetes Events) |
클러스터 이벤트 로깅, 감지 및 디버깅 |
'소소한 일상' 카테고리의 다른 글
[Infra] 좌충우돌 메인 로그인 서버 구축하기 (4) | 2024.11.05 |
---|---|
2024년 AWS TechCamp 참석 (2) | 2024.09.30 |
[SSAFY] 1학기 마무리 후기 (0) | 2024.01.16 |
[생활 꿀팁] 티스토리 PDF 뷰어 띄우기 (0) | 2023.05.01 |
[오늘의 일기] 장학금 수여, 봉사동아리 미팅 (0) | 2021.07.07 |
댓글