전체 글
-
[Codility - Arrays] OddOccurrencesInArrayAlgorithm/자료구조 2021. 9. 16. 10:05
https://app.codility.com/programmers/lessons/2-arrays/odd_occurrences_in_array/ OddOccurrencesInArray coding task - Learn to Code - Codility Find value that occurs in odd number of elements. app.codility.com - Array의 element수가 최대 100만이므로, n^2 이상의 시간복잡도 알고리즘은 바로 시간초과가 난다. O(NlogN) 이하의 알고리즘으로 해결해야 한다. - Hash를 활용하기 위해 Map 객체를 활용했다. 전체 데이터를 한 번씩 순회하면서 O(N), 각 순회당 key의 존재 여부를 탐색하는(Map.has()) 데에 O(log..
-
[Codility - Iteration] BinaryGapAlgorithm/문자열 2021. 9. 16. 09:58
https://app.codility.com/programmers/lessons/1-iterations/binary_gap/ BinaryGap coding task - Learn to Code - Codility Find longest sequence of zeros in binary representation of an integer. app.codility.com - 주어진 수를 이진수로 변환한다. 이 과정에서 배열의 unshift를 사용 해 준다. parseInt 메서드를 통해 소숫점 이하는 버려주어야 오류가 나질 않는다. (자바스크립트의 number형 자료형은 64비트 부동소수점을 쓰기 때문) - 그 후, 배열의 값을 하나씩 순회하면서 1을 만났을 때, 0을 만났을 때 각각 flag에 따라서 처리..
-
nginx의 reverse proxy 적용하여 http => https 적용하기Back-End/nginx 2021. 9. 11. 13:41
- Front server에서, nginx 서버를 reverse proxy용으로 활용한다. 물론 redirecting 과정에서 error 발생 시 정적 html 파일을 내려주기도 한다. - 여기서 nginx는 SSL 인증서를 적용하여 클라이언트와 서버가 https 통신을 하도록 기능을 부여 할 것이다. - 443번 포트(https 전용 포트)로 request가 들어오면 그대로 next로(host의 3060포트) redirecting 해줄 것이고, 80번 포트로 request가 들어오는 경우 nginx 내부 configuration 설정을 통해 443으로 redirecting 을 해 줄 것이다. - 먼저, http://nodebird.com 도메인으로 브라우저가 request를 보내면, nginx의 80포..
-
Base64 인코딩이란Etc/WEB 2021. 9. 11. 12:01
인코딩이란? - 인코딩(encoding)은 특정 형식의 데이터를 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 작업을 말한다. Base64 인코딩 - Base64란 Binary Data를 text로 바꾸는 Encoding(binary-to-text encoding schemes)의 하나이다. - Base64를 글자 그대로 직역하면 64진법이라는 뜻이다. 64진법은 컴퓨터한테 특별한데 그 이유는 64가 2의 제곱수 64=2^6이며 2의 제곱수에 기반한 진법 중 화면에 표시되는 ASCII 문자들로 표시할 수 있는 가장 큰 진법이기 때문이다. (ASCII에는 제어문자가 다수 포함되어 있기 때문에 화면에 표시되는 ASCII 문자는 128개가 되지 않는다.) - 변경..
-
apache vs nginxBack-End/nginx 2021. 9. 10. 12:01
apache - http 웹 서버 소프트웨어이다. - Apache는 MPM(Multi-Process Module) 방식으로 http request를 처리한다. MPM방식은 2가지의 유형으로 나뉜다. PreFork MPM(다중 프로세스) - http request가 들어올 시, apache 자식 프로세스를 생성하여 처리한다. - 하나의 자식 프로세스당 하나의 스레드를 가진다.(최대 1024개) - 프로세스간 메모리 공유를 하지 않으므로 독립적이어서 안정적이지만, 메모리 소모가 크다는 단점이 있다. Worker MPM(멀티 프로세스 - 스레드) - 요청이 들어오면, 프로세스가 스레드를 생성하여 request를 처리한다.(프로세스당 최대 64개) - 스레드 간의 메모리 공유가 가능하다. - Prefork MP..
-
KubernetesBack-End/Kubernetes 2021. 9. 9. 17:15
Kubernetes - kubernetes란, 컨테이너를 쉽고 빠르게 배포, 확장시켜주고 컨테이너들의 관리를 자동화해주는 오픈소스 플랫폼이다. - 도커의 등장 이후, 많은 어플리케이션이 도커 컨테이너를 기반으로 활용이 되었다. - 하지만, 컨테이너를 여러 서버에서 수 십, 수 백개를 실행하게 되면서 이들의 관리가 쉽지 않게 되었다. - 코드를 작성하고, 이를 이미지화 한 뒤, DockerHub에 배포(ship)하고, 해당 이미지를 pull해서 사용하는 방식에서, 추가적인 작업이 필요하다. 왜 Kubernetes가 필요할까? - 여러 서버에서 컨테이너를 실행하려면, 일일이 서버마다 CLI 명령어를 입력해야 한다. - 또한, 컨테이너를 실행할 때 여러 개의 서버 중에 컨테이너가 실행중이지 않은, 놀고 있는 ..
-
DockerBack-End/Docker 2021. 9. 6. 16:00
Docker란? - 컨테이너 기반의 오픈소스 가상화 플랫폼이다. - 다양한 프로그램, 실행환경을 컨테이너로 추상화하고, 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해 준다. - 백엔드 프로그램, DBMS(MySQL 등), jenkins 등 어떤 프로그램도 컨테이너로 추상화 할 수 있고, AWS, Azure, Google Cloud등 어느 환경에서도 실행이 가능하다. - Host OS의 위에 Hypervisor (VMWare,KVM,Xen etc)가 깔린 후에, 그 위에 Virtual Machine이 만들어진다. Virtual Machine은 일종의 x86 하드웨어를 가상화 한 것이라고 보면된다. 그래서 VM위에 다양한 종류의 Linux나, Windows등의 OS를 설치할 수 있다. ..
-
window객체와 document 객체, BOM, DOMEtc/WEB 2021. 9. 2. 18:16
window - 웹 API에서 제공되는 객체로, 현재 브라우저의 모든 기능들이나 속성들에 대한 정보를 담고 있다. - javascript 코드 상의 window 객체는 현재 스크립트가 실행중인 브라우저 창을 의미한다. - window는 전역객체이므로 스크립트에서 변수를 선언하는 경우, window 객체의 프로퍼티가 된다.(메서드도 마찬가지) - Window.console 속성은 브라우저 콘솔에 로그를 남길 수 있는 메서드를 가진 Console 객체의 참조를 반환한다. 콘솔 메서드는 디버깅 용도로만 사용해야 하며, 엔드유저에게 정보를 제공할 의도를 가져션 안 됨 document - 브라우저가 불러온 웹 페이지(문서, html로 생각해도 된다.)에 관한 기능, 속성 등의 정보를 가진 객체이다. - windo..