stateful이랑 stateless
- Stateful (상태 유지): "Stateful"은 시스템이나 애플리케이션에서 사용자 상태를 유지하는 것을 나타냅니다. 이는 데이터의 변화나 변동을 계속 추적하고 관리하는 것을 의미합니다. 예를 들어, 로그인한 사용자의 세션 정보, 상품 장바구니의 내용, 현재 음악 재생 위치 등을 저장하고 유지하는 것이 상태 유지적인 방식입니다. 이러한 상태 정보는 보통 데이터베이스나 메모리에 저장될 수 있습니다. 상태 유지적인 시스템은 사용자의 상호작용에 따라 상태가 변경되고, 이전 상태에 의존하는 경우가 많습니다.
- Stateless (상태 비유지): "Stateless"는 시스템이나 애플리케이션에서 사용자 상태를 유지하지 않는 것을 나타냅니다. 각각의 요청은 독립적이며, 이전 요청과의 관련성이 없습니다. 서버는 각 요청을 개별적으로 처리하며, 요청에 필요한 정보를 함께 제공합니다. 예를 들어, 웹 서버에서 각 HTTP 요청은 서로 독립적으로 처리되며, 이전 요청과의 관련성이 없는 것이 상태 비유지적인 방식입니다. 상태 비유지 시스템은 사용자 상태를 서버 측에서 추적하지 않고, 요청에 필요한 모든 정보를 요청 자체에 포함시켜 전달합니다.
- 요약
- Stateful은 사용자 상태를 유지하며 이전 정보에 의존하는 시스템, Stateless는 각 요청이 독립적이며 상태를 유지하지 않는 시스템을 나타냅니다. 상태 비유지 시스템은 확장성과 부하 분산에 강점을 가지며, 상태 유지 시스템은 일부 작업에서 편리함을 제공합니다. 선택은 상황과 요구사항에 따라 결정됩니다.
L3, L4 브릿지
- L3 브리지 (Layer 3 Bridge): L3 브리지는 네트워크 계층에서 동작하는 장치로, IP 주소를 기반으로 데이터를 전달하거나 라우팅하는 역할을 수행합니다. IP 주소는 네트워크 상에서 각 장치를 식별하는데 사용되며, L3 브리지는 이런 주소를 확인하여 데이터를 올바른 목적지로 전달합니다. 주로 라우터가 L3 브리지의 역할을 수행하는데, 다른 서브넷 간의 통신을 중계하거나 인터넷과 내부 네트워크 간의 연결을 관리하는 데 사용됩니다.
- L4 브리지 (Layer 4 Bridge): L4 브리지는 전송 계층에서 동작하는 장치로, 주로 포트 번호를 기반으로 데이터를 전달하거나 필터링하는 역할을 합니다. TCP와 UDP 같은 전송 계층 프로토콜은 포트 번호를 사용하여 서로 다른 애플리케이션을 식별하며, L4 브리지는 이 포트 번호를 검사하여 데이터를 적절한 서비스나 애플리케이션으로 전달하거나 막을 수 있습니다. 보안성을 강화하거나 특정 애플리케이션의 네트워크 환경을 분리하기 위해 사용될 수 있습니다.
- 요약
- L3 브리지는 IP 주소를 이용해 데이터 전달과 라우팅을 관리하며, 주로 라우터의 역할을 수행합니다. L4 브리지는 포트 번호를 통해 데이터 필터링과 서비스 제어를 수행하며, 전송 계층에서 작동합니다. 둘 다 네트워크 구성과 데이터 전송을 조율하는데 사용됩니다.
git flow
Git을 사용하는 소프트웨어 개발 프로세스 모델 중 하나로, 원격 저장소를 활용하여 프로젝트의 버전 관리와 협업을 조직화하는 방법론입니다.
- Main (or Master) Branch: 프로덕션에 배포되는 안정된 코드를 포함하는 메인 브랜치입니다. 바로 배포 가능한 상태를 유지하는 것이 중요합니다.
- Develop Branch: 새로운 기능과 버그 수정을 개발하는 브랜치로, Main 브랜치에서 파생됩니다. 개발 중인 코드가 모여 테스트와 리뷰를 거칩니다.
- Feature Branches: 새로운 기능을 개발하는 브랜치로, Develop 브랜치에서 파생됩니다. 각 기능은 별도의 브랜치에서 작업하며, 완료되면 Develop 브랜치로 병합됩니다.
- Release Branches: 새로운 배포를 준비하는 브랜치로, Develop 브랜치에서 파생됩니다. QA, 테스팅 및 버그 수정이 이루어진 후 Main 브랜치와 Develop 브랜치로 병합됩니다.
- Hotfix Branches: 긴급한 버그 수정을 처리하는 브랜치로, Main 브랜치에서 파생됩니다. 수정된 내용은 Main 브랜치와 Develop 브랜치로 병합됩니다.
OSI 7계층
- 물리 계층 (Physical Layer): 물리적인 장치 간의 데이터 전송과 관련된 계층입니다. 전기 신호를 비트로 변환하거나, 케이블, 허브 등을 통한 물리적 연결을 다룹니다.
- 데이터 링크 계층 (Data Link Layer): 물리 계층에서 제공되는 신호를 통해 오류 검출 및 수정, 프레임 동기화 등을 수행하여 노드 간 신뢰성 있는 통신을 보장합니다. 스위치나 브릿지가 이 계층에서 동작합니다.
- 네트워크 계층 (Network Layer): 패킷을 목적지까지 가장 효율적으로 전달하는 역할을 합니다. 라우팅과 논리적인 주소 지정을 담당하며, 라우터가 이 계층에서 동작합니다.
- 전송 계층 (Transport Layer): 데이터의 신뢰성을 보장하고 흐름 제어, 오류 복구, 재전송 등을 관리합니다. TCP와 UDP가 이 계층에서 동작하여 데이터를 포트 번호로 구분합니다.
- 세션 계층 (Session Layer): 데이터 교환을 관리하며, 데이터의 시작과 종료, 동기화, 체크포인팅 등을 담당합니다. 세션 설정, 유지 및 종료를 처리합니다.
- 표현 계층 (Presentation Layer): 데이터의 형식 변환, 암호화, 압축 등의 데이터 표현과 변환을 수행하여 상호간의 호환성을 제공합니다.
- 응용 계층 (Application Layer): 사용자가 직접 접하는 계층으로, 응용 프로그램과 사용자 인터페이스를 위한 서비스를 제공합니다. HTTP, FTP, SMTP 등의 프로토콜이 이 계층에서 동작합니다.
진행했던 프로젝트 중 3-tier-achitecture를 구현한 프로젝트를 설명해주세요.
shell script
쉘 스크립트는 운영 체제 쉘에서 실행되는 자동화된 작업 스크립트로, 반복적인 작업이나 시스템 관리, 데이터 처리 등을 자동화하고 효율적으로 수행하는 데 사용됩니다. 주로 Unix 계열 운영 체제에서 Bash 등의 쉘을 기반으로 작성되며, 명령어와 로직을 포함하여 작업 흐름을 제어하고 환경 설정을 구성합니다.
'DevOps BootCamp > CS 면접' 카테고리의 다른 글
(분산 시스템과 병렬 시스템), 로드밸런서 알고리즘, 람다 부하테스트 (0) | 2023.08.21 |
---|---|
웹, 서버, 네트워크, 엔터프라이즈 시스템 (0) | 2023.08.14 |
자주 물어보는 질문 (0) | 2023.07.26 |
Kubernetes (0) | 2023.07.12 |
AWS, 애플리케이션 설계 (0) | 2023.07.11 |