본문 바로가기

728x90

면접 대비

CI/CD CI/CD는 Continuous Integration(지속적 통합)와 Continuous Deployment(지속적 배포)의 줄임말입니다. 이는 소프트웨어 개발의 라이프사이클에서 중요한 역할을 하는 두 가지 개념입니다. CI(Continuous Integration) 코드를 작성한 후, 빌드, 테스트의 작업을 자동화하여, 지속적으로 코드 변경을 반영하는 개발 방법론입니다. 이를 통해 여러 명의 개발자들이 동시에 작업하고, 작업한 코드를 쉽게 통합하고, 테스트를 통해 코드 품질을 유지할 수 있습니다. CD(Continuous Deployment) CI의 결과물을 자동으로 배포하여, 최종 사용자에게 빠르게 서비스를 제공하는 것을 목표로 하는 개발 방법론입니다. CI의 결과물이 바로 프로덕션 환경에 배포되는 .. 더보기
Database : ACID ACID는 데이터베이스 트랜잭션의 속성을 나타내는 용어입니다. ACID의 각 속성은 다음과 같은 의미를 가집니다. 원자성 (Atomicity) : 트랜잭션의 모든 연산은 전체가 수행되거나 전혀 수행되지 않아야 합니다. 즉, 트랜잭션은 All-or-nothing 원칙에 따라 처리됩니다. 일관성 (Consistency) : 트랜잭션 전후의 데이터베이스 상태가 항상 유효한 상태를 유지해야 합니다. 즉, 데이터베이스 상태는 항상 일관된 상태를 유지합니다. 고립성 (Isolation) : 여러 개의 트랜잭션이 동시에 실행되는 경우, 각각의 트랜잭션은 서로 영향을 주지 않고 독립적으로 실행되어야 합니다. 즉, 동시에 실행되는 트랜잭션 간의 간섭이 없어야 합니다. 지속성 (Durability) : 트랜잭션이 완료된 .. 더보기
Docker와 VM(Virtual Machine) Docker와 VM은 모두 가상화 기술이지만, 그 방식과 목적이 다릅니다. VM (Virtual Machine)은 하나의 물리적 서버에서 여러 개의 가상 서버를 구축하여, 각각의 가상 서버에서 OS와 애플리케이션을 실행하는 가상화 기술입니다. VM은 하이퍼바이저를 이용하여 하나의 물리적 서버를 여러 개의 가상 서버로 분할하는 방식으로 동작합니다. 각각의 가상 서버는 독립적인 운영 체제를 가지고 있으며, 하나의 물리적 서버에서 여러 개의 운영 체제가 동시에 실행됩니다. 반면에, Docker는 OS 수준의 가상화 기술입니다. Docker는 하나의 물리적 서버에서 여러 개의 컨테이너를 구축하여, 각각의 컨테이너에서 애플리케이션을 실행하는 방식으로 동작합니다. 컨테이너는 호스트 OS와 커널을 공유하므로, VM보.. 더보기
HTTP와 HTTPS HTTP와 HTTPS는 인터넷을 통해 정보를 전송하기 위한 프로토콜입니다. 두 프로토콜은 유사하지만, 보안과 관련된 차이점이 있습니다. HTTP HTTP (HyperText Transfer Protocol)는 인터넷에서 데이터를 주고 받기 위한 표준 프로토콜입니다. HTTP는 TCP/IP 위에서 동작하며, 웹 브라우저와 웹 서버 간에 데이터를 주고 받을 때 사용됩니다. HTTP는 기본적으로 평문으로 통신하기 때문에, 제3자가 HTTP 통신을 가로채면 데이터가 노출될 수 있습니다. 이러한 보안상의 이슈로 HTTPS가 개발되었습니다. HTTPS HTTPS (HyperText Transfer Protocol Secure)는 HTTP와 달리, 데이터를 암호화하는 SSL(Secure Socket Layer) 프로.. 더보기

728x90