
[알고리즘] 이분 탐색과 최적화 문제
참고글 이분 탐색(Binary Search) 헷갈리지 않게 구현하기 개요 이분 탐색은 off-by-one error가 발생하기 쉬워서 늘 헷갈립니다. 이분 탐색 문제를 풀다보면 탈출 조건으로 lo
참고글 이분 탐색(Binary Search) 헷갈리지 않게 구현하기 개요 이분 탐색은 off-by-one error가 발생하기 쉬워서 늘 헷갈립니다. 이분 탐색 문제를 풀다보면 탈출 조건으로 lo
유클리드 호제법(-互除法, Euclidean algorithm) 2개의 자연수 또는 정식(整式, 유리식)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법: 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘 유클리드 호제법은 A와 B의 최대공약수를 A를 B로 나눈 나머지 값을 활용하여 구하는 방식이다. 그 내용은 다음과 같다. A와 B의 최대공약수를 (A, B)라 표기할 때, (A, B) = (B, A%B) 이다. 유클리드 호제법은 위의 과정을 나누는 수가 0이 되어 더이상 나눌 수 없을 때 까지 반복한다. 수식으로 표현하면 이렇게 된다. (A, B) = (B, A%B) = (A%B, B%(A%B)) = (B%(A%B), (A%B)%{B%(A%B)}) = ... 예시를 함께 보자. 78..
HTTP (HyperText Transfer Protocol) HTTP는 클라이언트와 서버 사이에 HTML과 같은 하이퍼미디어 문서를 전송하기 위한 프로토콜이다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 하다. 클라이언트에 의해 전송되는 메시지를 요청(requests), 그에 대해 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 한다. 예를 들면 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달한다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다. 단순 텍스트를 주고받기 때문에 누군가 네트워크에서 신호를 가로채 볼 수..
https://studyingazae.tistory.com/18 [Git] Git 기본 명령어 / 기본사용법 (CMD 및 Bash 사용법) * git-CMD, git-Bash 명령어, add, pull, push, commit, Branch, Github Desktop와 관련된 내용. * CLI 명령어를 사용할거면 Git-Bash 또는 Git-CMD 중 편할 걸 사용한다. * Git 설치가 안되있으면 아래 포스팅부터 시작 2021.0 studyingazae.tistory.com 1. Git 폴더 초기화 (init / pull) git init : 현재 폴더를 기준 폴더로 하고 git을 관리 git pull : 현재 폴더에 모든 github 파일 업데이트 2. Git 상태 확인 (status / log) ..
질문 출처: https://github.com/jjuyeon/Tech-Interview-Study/tree/main/operatingSystem 가상 메모리 개념 가상 메모리는 메모리 관리 기법의 하나로, 기계에 실제로 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매우 큰 메모리로 보이게 만드는 것을 말한다. 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식이다. 쉽게 말해서 ssd나 하드를 램처럼 사용하는 기술이다. 프로그램이 실행되기 위해서는 보조기억장치(HDD, SSD 등)에 저장되어 있는 프로그램의 데이터들을 주기억장치(RAM)로 가져와야 한다. 하지만 다음과 같은 두 가지 상황에서는 모든 데이터들이 주기억 장치로 이동할 수 없다. 1. 프로그램 전체의 크기가 ..
SPA, MPASPA (Single Page Application)React.js, Vue.js ... MPA (Multi Page Application)JSP, PHP, ... CSR, SSRCSR (Client Side Rendering)Vue, React 등의 SPA framework에서 사용하는 방식브라우저(client)에서 JS에 의해 view를 동적으로 생성. 때문에 page 전환이 SSR보다 상대적으로 빠르다. 대신 최초 접속 시 모든 JS와 static 파일을 가져와야 하기 때문에 최초 접속 시 로딩은 SSR에 비해 느리다.page 전환시 깜빡임이 없기 때문에 자연스러운 사용자 경험이 가능하다. SSR (Server Side Rendering)PHP 등의 MPA(Multi Page Appl..
IP (Internet Protocol, 인터넷 규약) 운영체제가 다른 컴퓨터끼리, 구현된 언어가 다른 프로그램끼리 (통칭 호스트) 네트워크에서 통신하기 위한 통신 규약. IP의 정보는 패킷-데이터그램이라고도 한다-에 담겨 전송된다. 특징 비신뢰성 비신뢰성은 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않는다. 예를 들어 전송 과정에서 패킷이 손상되거나 순서가 섞이거나 손실될 수도 있다. 패킷 전송과 정확한 순서를 보장하려면 TCP 프로토콜과 같은 IP의 상위 프로토콜을 이용해야 한다. 비연결성 IP는 비연결성 통신이기 때문에 이전에 통신한 적 없는 호스트에 패킷을 보낼 때 경로 설정이 필요없다. IP 헤더 내에 수신, 발신 주소를 포함 -> IP 주소 IP 헤더 내 바이트 전달 순서..
인터넷 프로토콜 스택 application support network applications. IMAP, SMTP, HTTP transport process-process data transfer. TCP, UDP network route of datagrams from source to destination. IP, routing protocols link data transfer between neighboring network elements. Ethernet. 802.11(WiFi), PPP physical bits on the wire application, transport, network layer -> communication layers transport layer의 역할 : 패킷 스위..
질문 출처 : https://github.com/jjuyeon/Tech-Interview-Study/tree/main/network TCP 프로토콜의 특징을 UDP 프로토콜과 비교 https://mangkyu.tistory.com/15 TCP 프로토콜 (Transmission Control Protocol, TCP) 전송 제어 프로토콜. 인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나. 특징 연결형 서비스(connection-oriented)로 가상 회선 방식을 제공한다. 3-way-handshaking 과정을 통해 연결을 설정하고 4-way-handshaking을 통해 해제한다. 흐름 제어(수신측에서 오버플로우 안 날 정도로만 데이터 보냄) 및 혼잡 제어(인터넷 상황을 고려해서 데이터를 보냄) 높은 신..
질문 출처 : https://github.com/jjuyeon/Tech-Interview-Study/blob/main/java/README.md [JAVA] JAVA 더보기 출처 종류 자바는 크게 세가지의 종류로 나뉜다. SE, EE, ME Java SE (Standard Edition) 자바 언어의 핵심 기능을 제공. 자바 언어의 기본적인 타입과 객체에서부터, 네트워킹, 보안, 데이터베이스 접근, GUI, XML 파싱에 사용되는 고수준의 클래스까지 모두 정의한다. 보통 학생들이 사용하는 수준의 에디션이다. Java EE (Enterprise Edition) 얘는 Java SE 플랫폼 상에 구축된다. 이는 기업용 애플리케이션을 개발하는 데 필요한 여러가지 도구와 라이브러리를 모아 놓은 것이다. 이 패키지..