[Security] 인증과 인가, 세션과 토큰
·
CS/Security
우아한테크코스 레벨 2 자료를 참고하여 학습한 내용을 정리한 글입니다. 💭 들어가며인증과 인가라는 용어는 자주 들어봤지만, 그 차이를 정확히 이해하고 있지는 않았다. 세션과 토큰 방식의 차이점 역시 명확하지 않았다. 이번 기회에 관련 개념들을 학습하면서 많은 의문이 생겼고, 그 과정을 통해 오히려 더 깊이 이해할 수 있었다. 특히 이론적으로만 알고 있었던 Stateless와 Stateful 개념을 실제로 적용해보며 학습할 수 있었던 점이 전체 구조를 파악하는 데 큰 도움이 되었다. 이번 학습을 통해 인증과 인가에 대한 전반적인 개념을 명확히 정리하고자 한다. ✅ 인증과 인가▶ 인증(Authentication)하나의 애플리케이션을 만들었을 때, 아무나 내부 정보에 접근할 수는 없다. 이때 사용자의 ..
[OS] 동기/비동기, 블로킹/논블로킹
·
CS/OS
우아한테크코스 레벨 2에서 학습한 내용을 정리한 글입니다. 💭 들어가며이번 미션을 진행하면서 처음으로 AtomicLong을 접했다. 왜 AtomicLong을 사용하는지 찾아보니 논블로킹 방식으로 동시성 제어가 가능하기 때문이라고 한다."논블로킹이 뭐지..?" 찾아보니 블로킹(Blocking)과 논블로킹(Non-Blocking)이라는 개념이 있었고, 또 그와 자주 함께 언급되는 개념으로 동기(Synchronous)와 비동기(Asynchronous)도 있었다. 전에도 종종 들어본 키워드들이지만, 제대로 정리해 본 적은 없었던 것 같다. 이번 기회에 헷갈리기 쉬운 이 네 가지 개념들을 정리하고, 각 조합이 실제로 어떻게 동작하는지 이해해보고자 한다. 사실 각각의 개념은 서로 직접적인 비교 대상은 아니다. 그..
[OOP] SOLID
·
CS/OOP
우아한테크코스 레벨 1에서 학습한 내용을 정리한 글입니다. 💭 들어가며미션을 진행할 때마다 항상 "좋은 설계란 무엇일까?"라는 고민을 하게 된다. 그 물음에 대한 답을 찾기 위해 다양한 시도를 해보지만, 결국은 SOLID 원칙으로 귀결되곤 한다.SOLID 원칙은 객체지향 설계에서 지켜야 할 다섯 가지 핵심 원칙을 말하며, 변화에 유연하고 유지보수가 쉬운 구조를 만드는 데 큰 도움을 준다. 궁극적으로 좋은 설계란 변경 사항이 생겼을 때 영향을 받는 범위가 최소화된 구조라고 생각한다. 이런 구조를 만들기 위해 SOLID 원칙은 좋은 기준점이 되어 준다.SRP (Single Responsibility Principle): 단일 책임 원칙OCP (Open Closed Principle): 개방 폐쇄 원칙LSP..
[Network] XSS, CSRF
·
CS/Network
해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기) ✅ XSS에 대해서 설명해 주세요.XSS(Cross-Site Scripting): 웹 애플리케이션의 취약점을 이용해, 악성 스크립트를 삽입하여 사용자에게 실행하게 만드는 공격 기법이다. ▶ XSS의 종류Reflected XSS: 악성 스크립트가 서버에 저장되지 않고, URL 등의 입력 데이터에 포함되어 전달되는 유형이다. 사용자가 악성 링크를 클릭하면, 그 즉시 스크립트가 실행된다.Stored XSS: 악성 스크립트가 데이터베이스에 저장되어 여러 사용자에게 지속적으로 전달되는 유형이다. 해당 글을 열람하는 모든 사용자가 스크립트의 영향을 받게 된다.DOM-based XSS: 악성 스크립트가 클라이언트 측에서 DOM(Docu..
[Network] 멀티플렉싱, 디멀티플렉싱
·
CS/Network
해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기) ✅ 멀티플렉싱과 디멀티플렉싱에 대해 설명해 주세요. ▶ 멀티플렉싱(Multiplexing)멀티플렉싱: 여러 개의 데이터 스트림을 하나의 물리적 통신 채널을 통해 동시에 전송할 수 있도록 하는 기술이다. 네트워크에서 이 과정은 전송 계층(Transport Layer)에서 주로 이루어진다.🔽 예시웹 브라우저, 이메일 클라이언트, 파일 전송 프로그램 등 여러 애플리케이션이 동시에 작동하며 각각의 데이터를 전송하는 경우, 이 데이터들이 모두 하나의 네트워크 연결을 공유한다. ▶ 디멀티플렉싱(Demultiplexing)디멀티플렉싱: 멀티플렉싱된 데이터를 수신 측에서 다시 개별 데이터 스트림으로 분리하는 과정이다. 수신된 데이터는 ..
[Network] 서브넷 마스크, 게이트웨이
·
CS/Network
해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기) ✅ 서브넷 마스크와, 게이트웨이에 대해 설명해 주세요.▶ 서브넷 마스크서브넷 마스크: IP 주소를 네트워크 주소와 호스트 주소로 나누는 데 사용되는 값이다.네트워크 주소: 네트워크에 속한 모든 호스트(단말)를 포함하는 네트워크 자체를 지칭하는 주소이다.호스트 주소: 같은 네트워크 내에 각 호스트(단말)를 구분하기 위한 주소이다.IP 주소와 관련된 자세한 설명은 여기를 참고하면 좋을 것 같다.🔽 필요성IP 주소에서 네트워크 주소와 호스트 주소를 구분하는 경계점이 고정되어 있지 않다. 서브넷 마스크를 사용하면 필요한 호스트 IP 개수에 따라 네트워크 크기를 다르게 할당할 수 있도록 하여, IP 주소의 낭비를 방지할 수 있다...
[Network] 로드밸런서
·
CS/Network
해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기) ✅ 로드밸런서가 무엇인가요?▶ 로드밸런싱로드밸런싱: 네트워크 트래픽을 여러 서버나 네트워크 장치에 고르게 분산시켜, 특정 서버에 과부하가 걸리지 않도록 하는 기술이다. 이를 통해 시스템의 성능, 가용성, 신뢰성을 높이고, 장애 발생 시에도 서비스가 중단되지 않도록 보장한다. ▶ 로드밸런서로드밸런서: 로드밸런싱을 수행하는 장치 또는 소프트웨어를 의미한다. 로드밸런서는 클라이언트의 요청을 받아, 이를 여러 서버 중 하나로 전달하며, 요청에 따라 가장 적합한 서버를 선택한다.🔽 로드밸런서의 필요성서버를 운영할 때, 서버가 감당하지 못할 정도의 트래픽이 몰릴 경우, 이를 해결할 수 있는 방법은 크게 두 가지가 있다.scale-u..
[Network] 라우팅, 포워딩
·
CS/Network
해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기) ✅ 라우터 내의 포워딩 과정에 대해 설명해 주세요.패킷 수신: 라우터는 네트워크 인터페이스를 통해 패킷을 수신한다.헤더 분석: 수신한 패킷의 IP 헤더를 분석하여 목적지 IP 주소를 확인한다.포워딩 테이블 조회: 라우터는 목적지 IP 주소와 일치하는 항목을 찾기 위해 포워딩 테이블을 조회한다.적절한 인터페이스 선택: 포워딩 테이블에 기반하여 패킷을 어떤 인터페이스로 보내야 할지를 결정한다. 선택된 인터페이스는 다음 홉으로 패킷을 전송한다.패킷 전송: 패킷이 결정된 인터페이스를 통해 다음 홉으로 전송된다.홉(Hop): 데이터 패킷이 출발지에서 목적지로 이동하는 동안 거쳐가는 각 네트워크 장치(주로 라우터 또는 스위치)  ✅ ..
soeun2537
'CS' 카테고리의 글 목록