전체 글

전체 글

    웹 서버

    Web Server Web Server SW : 클라이언트로부터 HTTP 요청을 받아서 HTML 등의 웹 페이지를 반환하는 프로그램 HW : 웹 서버 소프트웨어를 실행하는 컴퓨터, 웹 사이트의 컴포넌트 파일을 저장 HTML, image, CSS, JavaScript 파일 등을 저장 컴포넌트 파일을 사용자에게 전달 인터넷과 연결되어 있으며, 도메인 이름을 통해 접속 가능 정적 웹 서버 HTTP 서버가 있는 컴퓨터로 구성 웹 서버는 가지고 있는 컴포넌트 파일을 전송하기만 함 동적 웹 서버 정적 웹 서버에 어플리케이션 서버, 데이터베이스 등이 추가된 형태 사용자에게 컴포넌트 파일을 전송하기 전에, 어플리케이션 서버가 해당 파일을 업데이트해서 전송 웹 서버의 종류 Apache, Nginx, Microsoft I..

    LeetCode - 226. Invert Binary Tree

    LeetCode - 226. Invert Binary Tree

    문제 풀이 해당 노드의 leftChild와 rightChild를 서로 swap하는 문제이다. 재귀함수를 이용하여 노드가 null이 아닌 경우, leaf node까지 모두 바꿔준 뒤, 해당 노드의 leftChild와 rightChild를 바꾸는 방법을 사용하였다. 코드 더보기 class Solution { public TreeNode invertTree(TreeNode root) { if(root == null) return null; root.left = invertTree(root.left); root.right = invertTree(root.right); TreeNode temp = root.left; root.left = root.right; root.right = temp; return root..

    LeetCode - 217. Contains Duplicate

    LeetCode - 217. Contains Duplicate

    문제 Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct. Example 1: Input: [1,2,3,1] Output: true Example 2: Input: [1,2,3,4] Output: false Example 3: Input: [1,1,1,3,3,4,3,2,4,2] Output: true 풀이 배열에서 중복된 값이 있는지를 찾는 문제이다. 배열을 정렬한 뒤, 하나씩 탐색하며..

    LeetCode - 50. Pow(x, n) // Java

    LeetCode - 50. Pow(x, n) // Java

    문제 Implement pow(x, n), which calculates x raised to the power n (i.e. x^n). Example 1: Input: x = 2.00000, n = 10 Output: 1024.00000 Example 2: Input: x = 2.10000, n = 3 Output: 9.26100 Example 3: Input: x = 2.00000, n = -2 Output: 0.25000 Explanation: 2^(-2) = 1/(2^2) = 1/4 = 0.25 Constraints: -100.0

    LeetCode - 19. Remove Nth Node From End of List // Java

    LeetCode - 19. Remove Nth Node From End of List // Java

    문제 Given the head of a linked list, remove the nth node from the end of the list and return its head. Follow up: Could you do this in one pass? Example 1: Input: head = [1,2,3,4,5], n = 2 Output: [1,2,3,5] Example 2: Input: head = [1], n = 1 Output: [] Example 3: Input: head = [1,2], n = 1 Output: [1] Constraints: The number of nodes in the list is sz. 1

    Browser

    Browser HTML 문서와 그림, 멀티미디어 파일 등의 인터넷 컨텐츠를 사용자에게 보여주는 응용 프로그램 주요 기능 사용자가 선택한 자원을 서버에 요청해 브라우저에 표시 자원의 주소는 URL에 의해 정해지며, 웹 표준화 기구 W3C에서 정한 기준에 따라 파일을 해석함 구성 요소 UI(User Interface) URL을 입력할 수 있는 주소 표시줄 이전/다음 버튼 북마크 새로 고침, 현재 문서의 로드를 중단하는 정지 버튼 홈 버튼 브라우저 엔진 UI와 렌더링 엔진 사이의 동작을 제어 HTML 문서 등을 사용자에게 제공할 수 있는 시각적 요소로 변환 렌더링 엔진 HTML 문서를 파싱하고, DOM(Document Object Model)로 변환 → CSS 파일과 스타일 요소를 파싱, Render Tree..

    HTTP Request & Response

    HTTP Request & Response HTTP Message는 기본적으로 Start-Line, Header, Body로 구성됨 HTTP Request Start-Line "HTTP Method / Request Target / HTTP Version"으로 이루어짐 Request Method : HTTP Request가 발생했을 때 서버가 해당 요청에 대해 수행해야 하는 액션 Method Name Action GET - 간단한 데이터를 서버로 요청(SELECT)해서 받아올 때 사용 - 캐싱(한 번 접근 후, 다음 요청을 위해 데이터를 저장하는 방식)을 사용 - POST에 비해 속도가 빠르지만, 데이터를 URL 뒤에 붙여서 전송하기 때문에 노출됨 - HTTP Request의 body와 content-t..

    웹의 동작

    웹의 동작 HTTP(HyperText Transfer Protocol) 서버와 클라이언트가 인터넷 상에서 데이터를 주고 받기 위한 프로토콜(Protocol), 주로 HTML 문서를 주고 받음 서버/클라이언트 모델 사용(서버 : Response, 클라이언트 : Request) 클라이언트는 서버에 요청을 하고, 서버는 요청을 처리한 뒤 클라이언트에게 결과를 보냄 클라이언트와 서버는 ASCII 메시지로 소통 불특정 다수를 대상으로 한 서비스에는 적합 클라이언트와 서버가 계속해서 연결되어 있지 않기 때문에(무상태, Stateless) 서버의 최대 가능 연결 수보다 많은 요청 처리 가능 각각의 통신은 독립적 통신간의 연결 상태나 정보의 저장을 처리할 필요가 없기 때문에 서버 디자인이 쉬움 각각의 HTTP 요청에 ..