CS(19)
-
초보자를 위한 SSL/TLS 가이드: 무료와 유료 인증서의 차이점
1. SSL의 등장 배경과 역사인터넷이 상용화되면서 데이터 전송 과정에서 도청, 변호, 위변조의 위험성이 커졌습니다.예를 들어 사용자가 웹사이트에 로그인할 때 입력하는 ID 와 비밀번호가 중간에서 도청될 수 있습니다.이러한 보안 문제를 해결하기 위해 안전한 데이터 전송 방식의 필요성이 대두됐습니다.개인정보 보호 및 기밀성 유지인터넷에서 전송되는 데이터는 개인 정보나 금융 정보 등 민감한 정보를 포함할 수 있습니다. 이러한 정보가 유출되면 심각한 문제가 발생할 수 있기 때문에, 기밀성을 유지하는 것이 중요합니다.SSL의 탄생1994년, Netscape Communications는 이러한 문제를 해결하기 위해 SSL(Secure Sockets Layer) 프로토콜을 개발했습니다. SSL은 데이터 암호화를 통..
2024.06.10 -
싱글톤(Singleton) 패턴
2023.05.09 - [디자인 패턴] - 소프트웨어 위기를 극복한 디자인 패턴의 탄생과 발전 소프트웨어 위기를 극복한 디자인 패턴의 탄생과 발전 먼저 디자인 패턴의 정의부터 바로 알아보겠습니다! 디자인 패턴은 S/W 설계에서 자주 발생하는 문제들을 해결하기 위해 사용되는 재사용 가능한 해결책이다. 아마 이 글을 읽으시는 분들 중 디 xpmxf4.tistory.com 해당 포스팅을 읽기 전 위 글을 읽고 오시는 것을 추천드려요! 위 글에서 디자인 패턴이 무엇인지, 그 필요성에 대해 알게 됐다면 이제는 본격적으로 디자인 패턴 즉 소프트웨어 솔루션들에 각 종류에 대해 알아보겠습니다! 디자인 패턴은 크게 3 가지 유형으로 나눠집니다! 생성 패턴 객체 생성에 관련된 패턴으로, 객체를 생성하는 방법과 시점을 결정..
2023.05.09 -
소프트웨어 위기를 극복한 디자인 패턴의 탄생과 발전
먼저 디자인 패턴의 정의부터 바로 알아보겠습니다! 디자인 패턴은 S/W 설계에서 자주 발생하는 문제들을 해결하기 위해 사용되는 재사용 가능한 해결책이다. 아마 이 글을 읽으시는 분들 중 디자인 패턴에 대해 검색해 보셨다면 위와 같은 설명을 많이 보셨을 겁니다. 여기서 "자주 발생하는 문제들" 이란 대체 무엇일까요? 디자인 패턴은 모든 개발자들에게 중요한 개념이지만, 주니어 개발자들이 알아야 하는 필수 덕목 중 하나라는 데... 만약 위 짤 설명과 비슷한 생각이 든다면 정상입니다! 저도 그랬으니깐요 왜냐하면 디자인 패턴이라는 개념은 사실 소프트웨어 분야가 발전한 역사, 즉 과거와 밀접한 관련이 있기 때문이죠. 그렇기에 앞으로 이 카테고리에 설명할 디자인 패턴의 종류가 뭐가 있고 각각을 어떻게 구현하고 실사..
2023.05.09 -
WebKit과 Blink 이해하기: 당신의 웹 브라우저 뒷면의 엔진
WebKit과 Blink는 모두 웹 브라우저의 렌더링 엔진입니다. WebKit은 최초로 애플에서 개발되어, 애플의 사파리 브라우저에서 사용되었습니다. 이후 구글에서도 이를 기반으로 하는 Chromium 브라우저를 개발하면서 많은 사용자들에게 알려졌습니다. WebKit은 HTML, CSS 및 JavaScript와 같은 웹 요소를 렌더링하는 역할을 합니다. WebKit은 각각의 웹 요소들을 렌더링하기 위한 렌더 트리를 구성하고, 이를 화면에 표시하는 역할을 합니다. Blink는 구글이 Chromium 브라우저를 위해 개발한 렌더링 엔진이고 WebKit 과 마찬가지로 HTML, CSS 및 JavaScript와 같은 웹 요소들을 렌더링하는 역할을 합니다. Blink는 WebKit을 포크(fork)하여 만들어졌으..
2023.04.06 -
JIT 컴파일러의 이해와 자바와 자바스크립트에서의 활용
JIT 컴파일러란? JIT(Just-In-Time) 컴파일은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법입니다. 자바와 자바스크립트 모두 이 기법을 사용하지만, 두 언어의 동적 타입(dynamic type)과 정적 타입(static type) 특성에 따라 JIT 컴파일러가 다르게 작동합니다. 자바스크립트에서의 JIT 컴파일러 활용 반면, 자바스크립트는 동적 타입 언어입니다. 실행 전까지 변수나 함수에 넘겨지는 매개변수 같은 타입들에 대한 정보를 알 수 없습니다. 동적 타입 언어의 경우, 프로그램 실행 중에 변수의 타입이 변경될 수 있으므로, 실행 시점의 타입 정보를 활용하여 최적화를 수행해야 합니다. 자바스크립트 엔진들은 이러한 동적 타입 언어의 특성을 고려하여 JIT 컴파일러를 사용하..
2023.04.03 -
프로토콜 스택: 웹 브라우저와 운영체제 간의 통신 이해하기
해당 글은 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network#%EC%9B%B9-%ED%86%B5%EC%8B%A0%EC%9D%98-%ED%81%B0-%ED%9D%90%EB%A6%84 위 게시물의 "웹 통신의 큰 흐름"을 좀 더 자세하게 풀어보는 글입니다. 먼저 해당 url 을 타고 들어가서 한번 설명을 읽고 오시면 좋을 거 같습니다 :) 브라우저에서 URL 을 입력하고 Enter를 누르면 어떤 일이 일어나는 가? 브라우저가 정해진 브라우저의 규칙에 따라 URL을 해석한다. 브라우저의 규칙의 예시로는 Fragment Identifer 가 있습니다. https://xpmxf4.tistory.com/15 해석된 UR..
2023.04.02 -
도커란? docker?
지금까지 도커를 한번도 써본 적 없이 살아왔고 별 문제 없이 살아왔습니다만, 이번에 프로젝트를 진행하던 와중에 다른 사람이 만든 Chronium 확장 프로그램을 가져다 사용할 일이 생겼는 데 제작자가 해당 프로그램을 도커로 배포했다고 하기에 이번 기회에 도커에 대해 배워보도록 하겠습니다. 먼저 설명을 하기에 앞서, 해당 영상을 보고 오면 본 글을 읽을 때 더 도움이 될거라 생각하고 올리겠습니다. https://www.youtube.com/watch?v=hWPv9LMlme8 도커란? 도커는 애플리케이션과 그에 필요한 의존성들을 가상화된 환경인 컨테이너에 패키징하는 기술입니다. 이를 통해 소프트웨어 개발과 배포를 더욱 쉽게, 빠르게, 그리고 안정적으로 할 수 있습니다. 도커의 주요 구성 요소와 개념은 다음..
2023.03.31 -
URL Encoding 이란?
URL 인코딩 (또는 퍼센트 인코딩)은 특수 문자와 기타 예약된 문자들을 웹 주소 (URL)에서 안전하게 표현하기 위해 사용되는 방법입니다. 이 방식은 일반적으로 웹 주소의 쿼리 문자열 부분에서 문자 인코딩을 위해 사용됩니다. URL 인코딩은 다음과 같은 과정을 포함합니다: 대상 문자열을 인코딩할 때, 각 문자를 해당 문자의 ASCII 코드 값으로 나타냅니다. 특수 문자와 예약된 문자는 '%' 기호 뒤에 16진수 값으로 변환됩니다. 예를 들어 공백 문자는 '%20'으로 인코딩되고, '#'은 '%23'으로 인코딩 됩니다. URL에 안전한 문자들은 변환되지 않고 그대로 사용됩니다. 이러한 문자들은 알파벳 (A-Z, a-z), 숫자 (0-9), 그리고 일부 특수 문자 (-, _,., ~) 등입니다. URL 인..
2023.03.29 -
DNS란? eTLD란?
최근 "https://dl.acm.org/doi/pdf/10.1145/3442381.3449837" 라는 논문을 읽으며 프로젝트를 진행중인데, 중간에 "eTLD+1" 라는 단어가 나와 구글링을 하다 보니 eTLD 는 DNS의 주소 체계의 종류중 하나라는 모르는 개념이 나와 이렇게 정리를 해봤습니다. DNS 란? DNS(Domain Name System)는 인터넷에서 도메인 이름을 IP 주소로 변환하거나 IP 주소를 도메인 이름으로 변환하는 역할을 하는 시스템입니다. 인터넷 상의 컴퓨터, 서비스, 자원에는 고유한 IP 주소가 할당되어 있으며, 이를 통해 상호간에 통신이 가능합니다. 하지만 숫자로 된 IP 주소를 직접 사용하는 것은 사람들에게 어렵고 불편하므로, 이를 해결하기 위해 도메인 이름이 도입되었습니..
2023.03.28 -
데이터베이스(Database) 란?
데이터베이스를 사용하는 이유? 데이터베이스를 사용하는 이유는 데이터를 관리하기 위해서입니다. 데이터베이스는 여러 데이터를 정리해서 통합한 후, 데이터 공유 및 저장을 쉽게하여 조직 운영에 용이하게 설계된 데이터 집합입니다. 파일 시스템을 이용하여 데이터를 관리하면 데이터의 일관성 유지, 중복 데이터 처리, 보안 등의 문제가 발생할 수 있지만, 데이터베이스를 사용하면 이러한 문제를 해결할 수 있습니다. 또한, 데이터베이스를 사용하면 데이터를 더욱 쉽게 검색, 수정, 삭제, 추가할 수 있어서 업무 효율성이 높아지며, 데이터를 보다 안전하게 보관할 수 있습니다. 데이터베이스의 특징 독립성 응용 프로그램과 독립적으로 데이터를 저장 및 관리한다는 것을 의미합니다. 이는 데이터의 중복을 방지하고 데이터를 통합하여 ..
2023.03.22