본문 바로가기

CS7

OSI 7계층 CS지식 중 가장 기본적인 OSI 7계층에 대해서 알아보겠다.사실 학교 다닐 때 기본적으로 암기하는 것 중에 하나이기 때문에 그냥 외웠었지만... 시간이 지나면서 잊혀져 다시 한번 복기한다고 생각하며 글을 써보겠다.  OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말하며, 국제 표준화 기구(ISO)에서 정의한 네트워크 표준 모델이다.  7단계로 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다.  그러면 단계별로 파악하는 이유는?? 바로 통신을 하다가 이상이 생겼을 경우 이상이 생긴 곳의 단계에서만 고치면 되기 때문에 다른 단계의 장비나 소프트웨어를 건드리지 않고 고칠 수 있다.   아래와 같이 각 계층을 지날 때마다 각 계층에서.. 2024. 4. 12.
CORS, CSRF CORS Cross Origin Resource Sharing - 웹페이지의 리소스가 다른 도메인(다른 출처)의 요청(공유)에 대한 허용/비허용 정책 출처(Origin) Protocol Host Path Query String Fragment 브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한한다. cross-origin 요청을 하려면 서버의 동의가 필요하다. 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절한다. 이런 메커니즘은 HTTP-header를 이용해서 가능한 것인데 이것을 CORS라고 한다. cross-origin (다음 중 한가지라도 다른 경우를 뜻한다.) 프로토콜 ex) http vs https 도메인 ex) domain.com .. 2024. 3. 4.
CI/CD CI/CD : 지속적인 통합(Continuous Integration)/지속적인 제공/배포(Continuous Delivery/Deployment) CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법이다. 특히, CI/CD는 애플리케이션의 라이프사이클(통합, 테스트, 제공, 배포) 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공한다. 이러한 구축 사례를 CI/CD 파이프라인이라고 부르며, 개발 및 운영팀의 애자일 방식 협력을 통해 DevOps 또는 SRE 방식으로 지원된다. CI란? 애플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레포지토리에 통합하는 것을 의미한다. 버그를 신속하게 찾아 해결, 소프트웨어의 품질을 개선.. 2024. 2. 15.
DevOps(데브옵스) DevOps : 개발(Development) + 운영(Operation) DevOps는 시스템 개발자와 운영을 담당하는 정보기술 전문가 사이의 소통, 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 문화이자 방법론이며, 애자일(Agile) 소프트웨어 개발과 지속적인 통합 등의 개념과도 관련이 있다. ☞ 개발팀과 운영팀 간의 원활한 소통을 기반으로 운영팀에서 고객의 수요를 맞춰 서버와 데이터베이스를 관리하는 일을 통해 서비스가 제대로 작동할 수 있는 환경을 개발팀에게 제공할 수 있다. 애자일 소프트웨어 개발 계획과 문서를 기반으로 개발 모형이나 모델에 따라 앞을 예측하여 개발하는 것이 아니라, 실질적인 코딩을 기반으로 일정한 주기에 따라 계속적으로 프로토타입을 형성하고 필요한 요구사항을 파악하며 이에 따.. 2024. 2. 13.
Component(컴포넌트) Component : (구성) 요소, 부품 컴포넌트는 프로그래밍에 있어서 재사용이 가능한 각각의 독립된 모듈이다. 레고로 비유하자면 레고 조각(Component)들을 조합해서 하나의 레고 모형(Object)를 만든다고 할 수 있다. 웹 컴포넌트는 컴포넌트 기반의 프로그래밍을 웹에서도 적용할 수 있도록 W3C에서 새롭게 정한 규격이다. 웹 컴포넌트는 최신 브라우저, JavaScript라이브러리, Framework에서도 사용할 수 있다. 웹 컴포넌트를 이용해서 코드를 작성하면 Vue.js, React.js와 같이 라이브러리, 프레임워크에 의존하지 않고 상호 운용이 가능하게끔 작성할 수 있다. 핸드폰에서 배터리 수명이 다 되었을 경우 오래된 배터리(예전 장치)만 분리하여 새로운 배터리(새로운 장치)로 교체하듯.. 2024. 2. 11.
Mock Data Mock : 거짓된, 가짜의, 모의의 Mock Data는 실제 API에서 받아온 데이터가 아닌 프론트엔드 개발에서 필요에 따라 샘플로 만든 데이터를 뜻한다. Mock Data 사용하는 이유 백엔드 API가 완성이 되지 않았을 때 데이터가 들어오는 상황을 대비해 UI가 의도한대로 구현되는지 확인하기 위해서 Mock Data를 쓰면 실제 API가 없더라도 API 데이터처럼 UI 랜더링이 가능하다. 장점 Mock 데이터들을 예시로 만들어 놓으면 바로 테스트를 해볼 수 있다. 형식 json형식으로 되어있다. key : value의 객체형태로, 백엔드와의 데이터 통신을 위해 사용한다. => UI를 만들 때 상수 데이터일 경우 백엔드 서버에서 데이터를 받아올 필요가 없다. 변수 데이터일 경우 백엔드 서버에서 데이터.. 2024. 2. 8.
HTTP 인증 방식 1. Basic Authentication 사용자 이름 / 비밀번호를 Base64로 인코딩하여 Authorization 헤더에 포함하여 전송하여 인증하는 방식 매우 안전하지 않음, SSL / TLS와 함께 사용 (Request 헤더에 표시될 때) Authorization : Basic (인코딩 된 내용) 2. Bearer Token Authentication 헤더에 토큰을 포함하여 전송 Authorization 헤더에 포함하여 전송하여 인증하는 방식 JWT를 사용하여 인증 간단한 방식, 상태를 유지하지 않음, 확장성이 높음 토큰 노출 위험, 토큰 관리가 귀찮다 (Request 헤더에 표시될 때) Authorization : Bearer ~ 3. OAuth 토큰 기반 인증 방식, 사용자가 직접 자격을 증명.. 2024. 2. 2.