목록전체 글 (65)
기록하는 개발자
해시는 왜 필요할까? 1. 암호화가 필요한 데이터를 임의값으로 변환할 때 해시를 사용함 2. 단방향 함호과 기법으로 해시함수를 이용해서 고정된 길이의 암호화된 문자열로 바꿔버림 3. 원래 데이터 값은 키, 암호화된 데이터는 해시값이라고 하고 둘을 매핑할 때 해싱한다고 함
인터넷이 연결괴는 과정 클라이언트(내꺼)가 서버의 IP로 접속하게 될 때 동시에 클라이언트의 IP 또한 서버로 전달된다. 즉, 서버와 클라이언트 서로간 IP 정보를 계속해서 주고받기 때문에 서버와 클라이언트가 통신하기 위해서는 서로간 IP 주소를 알아야 한다. IP 주소는 어디서 오나? 인터넷에 접속하게 되면 그 순간 해당 기기에 IP가 부여된다. 따라서 인터넷 사용이 가능한 모든 기기에는 각각의 IP 주소가 있다! 공유기는 왜 씀? 통신사와 계약하면 하나의 인터넷 케이블을 받는데 이 케이블은 하나의 IP가 부여되기 때문에 여러개의 인터넷을 사용할 수 없다. 여러개를 사용하고 싶으니까 공유기를 쓰는 것 공유기는 어케했누...? 통신사와 계약을 통해 들어온 케이블은 public IP address(공용IP..
nestJS 를 처음 사용하면 나오는 오류이다. 원인: 스크립트 실행 권한이 제어되어 있는 상태 해결: window powershell 로 권한 해제 해결 방안 (1) window powershell 관리자 권한 실행 (2) get-help Set-ExecutionPolicy 입력 (3) 'Y'로 변경 계속하기 이때, 처음 접속한 경우 업데이트가 진행될 수 있다. (4) set-ExecutionPolicy RemoteSigned 입력 (5) nest 입력어 사용 가능!
1. 정의 힙은 최댓값 최소값을 빠르게 찾아내기 위해 고안된 '완전이진트리' 자료구조다. * CS 변수 저장 공간 2. 효용성 최대/최소를 검색하는데 O(1)의 시간봅잡도를 가진다. 3. 연산 Push 트리의 마지막 노드에 값을 넣는다. 부모 노드와 값을 비교한다. 루트에 도달하거나, 부모 노드보다 값이 작다면(최대힙기준) break 한다. 부모 노드보다 값이 크다면 부모 노드와 swap 한다. 재귀적으로 다시 부모 노드와 비교한다.(2번부터 다시 시작) Pop 트리의 루트값을 저장한다.(return 용) 트리의 마지막 노드를 루트로 올린다. 왼쪽 자식노드, 오른쪽 자식노드, 자신 3개의 값을 비교한다. 자신이 가장 크다면(최대힙기준) break 한다. 아니라면 가장 큰 값과 swap 한다. 재귀적으로 ..
아키텍쳐적인 관점에서 Scalable 하다는 것은 예상치를 충분히 감당할만한 Resource를 갖고있다는 의미 1. Reverse Proxy 리버스 프록시의 웹서버를 리소스의 앞 단에 위치 시킴으로, DB와 연결된 WAS의 보안을 강화 할 수 있다. Cache Server 를 붙이거나 SSL 하드웨어 가속기를 연동하는등 아키텍처 측면에서 성능 향상을 하기가 해진다. 리버시 프락시를 cluster로 구성해 놓으면 가용성을 높일 수 있고 사용자가 증가하는 상황에 맞게 Web Server 나 WAS 를 유연하게 늘릴 수 있는 장점이 있다. # 로드 밸런싱 트래픽이 증가하면, 기존 서버의 성능을 높이는 scale up을 진행하거나, 물리적 또는 논리적으로 여러 대의 서버를 두어 트래픽을 분산시키는 scale o..
1. 항해 선택 이유 그 당시 바로 시작할 수 있는 개발자 양성과정과, 기간을 고려해서 항해를 선택했다. 시간대비 효율이 좋아 보였다. 또, 9 to 9으로 몰입해서 주체적으로 공부한다는 것이 나한테 큰 장점이었다. 2. 장점 (1) 기간이 짧은 만큼 본인이 노력한다면 빨리 개발자로 취업할 수 있다. (2) 팀 과제를 통해 같은 목표를 가진 동료를 얻어갈 수 있다. 3. 단점 (1) 수용 인원 대비 관리자가 적다. 항해는 두 달 마다 100명 이상의 수강생을 배출한다. 그러나 내가 눈으로 본 매니저는 4명 밖에 되지 않는다. 실제로 팀원들이 게더에 접속하지 않는다 하더라도 아무런 제제가 없다. 연락이 안되도 어쩔 수 없는 노릇인 것이다. (2) 모든 팀 프로젝트는 인원이 랜덤으로 구성된다. 모든 프로젝트..
계기 1. 항해 99가 끝나고 지원 주차를 하면서 마음이 맞는 팀원과 함께 미니 프로젝트를 시작했다. 2. 안 써봤던 기술을 사용하고 싶어 nest.js를 공부하기로 마음먹었다. 3. 클래스에 관심이 생겼다. 서론 메인프로젝트를 진행하면서 중복된 코드를 어떻게든 줄이기 위해 계속 사용하는 로직은 함수로 만들어 계속 사용했다. 중복코드가 어느 곳에서 잘못 적용되거나 내 미친 손가락이 잘못 적었을 경우 불필요한 에러만 낳기 때문에 사람의 손가락을 믿지 말고 컴퓨터를 믿자는 취지로 그렇게 만들었다. 클래스도 그런 의미라고 생각한다. 가장 큰 이유는 재사용성을 높이고 효율을 증대시키는 것이다. Class의 기본 자바스크립트의 거의 모든 것이 객체이다보니, Class도 선언만 하면 객체가 된다. 1. 클래스 사용..
1. WAS, WS WAS WS 동적인 데이터를 제공하기 위한 서버 웹 서버로부터 요청이 오면 컨테이너가 받아서 처리 정적인 파일 제공, HTTP프로토콜 일반적으로 웹서버의 기능을 내제하고 있어 웹 서버 없이도 서비스가 가능, WAS와 DB가 연결되어 WAS에서 처리에 필요한 데이터를 꺼내와 원하는 정보로 가공 요청이 많을 경우 웹서버에서는 웹문서를 WAS에서는 JSP페이지를 양분하여 처리 함으로서 서버 의 부담을 줄여주는 역할 예) tomcat, jeus, web logic ... 예) apache, nginx, gws ... 2. WAS와 WS를 나눠야 하는 이유 (WAS의 경우 웹 서버의 역할을 동시에 할 수 있지만 보통 나눠서 사용) (1) 데이터 처리 방식이 달라서 굳이 정적 컨텐츠를 WAS에서..
Stack (1) 구조: (2) 특징: - 정해진 방향으로만 쌓을 수 있다. - 새 자료는 top이 가리키는 자료의 위에 쌓이게 된다. - 스택에서 자료를 삭제할 때도 top을 통해서만 가능하다. - 삽입: push, 삭제: pop (3) 사용 예시 - 웹 브라우저 뒤로가기 - 역순 문자열 만들기 (4) Stack overflow 지정한 스택 메모리 사이즈보다 더 많은 스택 메모리를 사요하게 되어 에러가 발생하는 상황 함수를 호출시 파라미터, 리턴값, 복귀주소 등을 스택에 저장 재귀함수*를 사용하면 호출한 함수가 종료되지 않은 채 새로운 함수를 호출하므로 스택에 메모리가 계속 저장 가용범위를 초과하면 스택오버플로우 발생! * 해결 방안 함수 호출 시 이전의 호출한 스택 메모리는 종료한다. (꼬리 재귀) ..