본문 바로가기

CS14

[CS] Web Socket 0. 이 글을 쓰게 된 이유 프로젝트를 진행하며 실시간 채팅 서버를 구축해야하는 요구 사항이 있었다. 그 과정에서 공부한 Web Socket에 대한 지식을 기록하고자 이 글을 쓰게 되었다. 1. HTTP 프로토콜의 한계 웹이 만들어진 초기에는 단순히 사용자가 리소스를 요청하면 응답하여서 보여주기만 하면 되었다. 그래서 HTTP 프로토콜은 요청을 보내면 응답을 받는 Request/Response 구조로 설계 되었고 이는 아주 짧은 시간 동안만 socket connection을 맺고 요청에 따른 응답을 보내주면 바로 끊어지게 된다. 즉, HTTP 프로토콜은 요청을 보내야 응답을 받는 단방향 통신(Simplex Communication) 방식이고(polling 같은 기술은 반이중방식), 이는 서버 쪽에서 아무.. 2022. 12. 13.
[CS] Web Server와 WAS 0. 이 글을 쓰게 된 이유 Web Server와 WAS에 대한 개념은 서버 개발에 있어서 기초적인 개념이다. 팀 프로젝트에 들어가기 앞서 정확하게 정리하고 싶어서 이 글을 쓰게 되었다. 1. 정적 페이지와 동적 페이지 1.1 정적 페이지(Static Contents) 정적 페이지는 말 그대로 변화가 없는 정적인 컨텐츠 말한다. image, html, css, javsscript등이 이에 속하며 즉시 웹 브라우저에서 사용할 수 있는 컨텐츠이다. 1.2 동적 페이지(Dynamic Contents) 동적 페이지는 정적 컨텐츠와는 반대 개념으로, 인자의 내용에 맞게 바뀌는 동적인 컨텐츠이다. 보통 DB 서버와 연결되어 같이 수행이 되며 업무를 처리하는 비즈니스 로직이 수행된 결과물이다. 2. Web Serve.. 2022. 12. 5.
[CS] Cross-Origin Resource Sharing(CORS)에 대해 정확하게 알아보자 이 글을 쓰게 된 이유 프론트엔드 개발자건 백엔드 개발자건 웹 개발을 하다보면 CORS를 자주 접할 수 있다. 백엔드 개발자인 나는 단순하게 요청을 받을 수 있는 출처를 설정하는 것이라고만 추상적으로 정의하고 개발을 하고 있었다. 개념이 추상적으로 정의 되어있다보니 에러가 생겨 트러블 슈팅을 할 때 단순하게 해결 될 문제가 복잡해지고 제대로 해결도 안되는 문제가 발생하였다. 이 참에 CORS에 대해서 확실하게 정리해보자! CORS가 왜 탄생했을까? CORS 대해서 본격적으로 알아보기 전에 그 탄생 배경부터 알아보자. 이를 알기 위해서는 CORS의 반대말인 SOP(Same-Origin Policy)에 대해서 알아볼 필요가 있다. SOP(Same-Origin Policy) SOP를 간단하게 정의하자면 '다른.. 2022. 9. 28.
[CS] HTTP와 HTTPS 이 글을 쓰게 된 이유 프로젝트를 진행하며 웹캠을 사용할 일이 있었다. 서치를 해보니 웹캡을 사용하려면 꼭 SSL인증서를 받아서 HTTPS를 이용해야한다는 정보를 얻었다. 기존에도 HTTPS가 대충 무엇인지는 알았으나 정확히는 몰랐다. 그러다보니 직접 구현하는데에 어려움을 겪었고 이 참에 정확하게 정리하고자 이 글을 쓰게되었다. HTTP란? HyperText Transfer Protocol의 약자이며 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 여기에서 HyperText란 HTML로 생각하면 된다. 즉, HTTP란 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. 요청을 보낼 때 호스트 앞에 http가 있는 것을 많이 봤을 텐데 이는 해당.. 2022. 9. 28.
[보안] CSRF 파헤치기 0. 이 글을 쓰게 된 이유 JAVA SPRING MVC를 이용해서 개인 프로젝트를 하던 중에 CSRF 또 만났다. 이전에도 봤던 놈이고 개념을 안다고 생각해서 나름대로 해결을 해서 진행을 하려고 했는데 문득 관연 내가 CSRF에 대해서 완벽하게 알고있나 의문이 들었다. 그리고 지금 CSRF를 피하려고 사용하는 간편한 방법이 정말 보안 상 옳은 것인가에 대한 의문 또한 들었다. 이렇게 넘어갔다가는 나중에 호되게 당할 것 같아서 이 참에 확실하게 집고 넘어가려고 이 글을 작성하게 되었다. 1. CSRF(Cross-Site Request Forgery)가 뭔데 웹 애플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 해서 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 .. 2022. 9. 28.
[컴퓨터 구조] 메모리 계층 구조 메모리 계층 구조란? 메모리 계층 구조란 메모리를 필요에 따라 여러가지 종류로 나누어 둠을 의미한다. 이때 필요한 대부분의 경우 CPU가 메모리에 더 빨리 접근하기 위함이다. -위키 백과- 메모리 계층 구조는 어떻게하면 컴퓨터를 최대한 빠르고 저렴하게 만들까에 대한 고민으로 고안된 구조이다. 보통 싼 메모리일 수록 용량이 크지만 느리고, 비싼 메모리는 용량이 작지만 빠르다. 그래서 성능이 좋고 비싼 메모리는 CPU 바로 옆에 작게 만들고, 느리고 용량이 큰 메모리는 먼 곳에 둔다. 이러한 원칙으로 만든 구조가 메모리 계층 구조이다. 메모리 계층 구조 메모리 계층 구조는 Register, Cache, Memory, Disk로 나눌 수 있다. 사진에서 볼 수 있듯 위로 갈수록 빠르고 용량이 작고, 아래로 갈.. 2022. 9. 28.