목록전체 글 (306)
Just Do IT!
힙 자료구 특정한 규칙을 가지는 트리로, 최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한다. min heap을 사용하면 원소들이 항상 정렬된 상태로 추가되고 삭제되며,min heap에서 가장 작은 값은 언제나 인덱스 0, 즉, 이진트리의 루트에 위치한다. 최소 힙 : 부모 노드의 키값이 자식 노드의 키값보다 항상 작은 힙 최대 힙 : 부모 노드의 키값이 자식 노드의 키값보다 항상 큰 힙 list와 tree의 장점을 모두 사용한다. 트리 구조 사용 요소 삽입 및 최소 값의 제거 시 발생하는 요소의 검색 및 스왑의 횟수보다 일반적인 리스트를 사용할 때보다 적다. 리스트 사용 완전 이진트리는 리스트로 코딩 가능 리스트가 클래스보다 빠르다 파이썬 heapq 모듈 heapq (p..
문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..
react-dropzone 라이브러리란? 파일 업로드 라이브러리이다. 간단하게 drag&drop으로도 사용 가능하고 클릭하여 파일을 업로드할 수도 있다. 그리고 이미지 썸네일 미리보기를 지원하며 멀티 업로드 기능 역시 지원한다. https://www.npmjs.com/package/react-dropzone https://www.npmjs.com/package/react-dropzone react-dropzone Simple React hook to create a HTML5-compliant drag'n'drop zone for files. Documentation and examples at https://react-dropzone.js.org. Source code at https://github...
요즘 인프런에서 따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기 강의를 듣고있는데, 강의 코드를 치면서 배우는 와중 오류가 발생했다. 리액트 서버와 노드 서버를 동시에 열기 위해서 package.json 을 아래와 같이 수정했다. 리액트로 만든 frontend 서버는 'npm run frontend'로 열고,node로 만든 backend 서버는 'npm run backend'로 열기로 명령어를 지정했는데,두 서버를 동시에 열기 위해서 'dev'라는 명령어를 따로 만든 것이다.(강의 그대로 수정했다.) 그런데, 중간에 api가 제대로 작동하는지 보고 싶어서 서버를 켰는데,아래와 같은 오류가 나왔다. 원인은? Node.js 버전 호환성 문제로 웹팩(webpack)이 해당 Node.js 버전과 함..
JSON Web Token이란? JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 주로 회원 인증이나 정보 전달에 사용된다. 공식 홈페이지에서 더 많은 정보를 알 수 있다. https://jwt.io/ JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io JWT는 왜 사용할까? 유저가 로그인에 성공한 후에는 access token이라고 하는 암호화된 유저 정보를 첨부해서 request를 보내게 된..
암호화란? 어떤 평문을 암호문으로 바꾸는 것이다. 반대로, 암호문을 평문으로 바꾸는 것은 복호화라고 한다. 암호화는 아주 기본적인 정보 보안 방법이다. 데이터 유출 자체를 막지는 못하지만, 어떤 정보를 담고 있는지 알지 못하게 하는 것이다. 암호화의 필요성 유저의 비밀번호는 절대 비밀번호 그대로 DB에 저장 하지 않는다. DB가 해킹을 당하면 유저의 비밀번호도 그대로 노출 된다. 외부 해킹이 아니더라도 내부 개발자나 인력이 유저들의 비밀번호를 볼 수 있다. 유저의 비밀번호는 꼭 암호화 해서 저장 해야 한다. Bycript란 무엇인가 단방향 암호화를 위해 만들어진 해시 함수 (복호화 불가능) 비밀번호 자체를 검증할 때 입력받은 값을 암호화해서 저장된 암호화된 값과 비교해서 검증할 수 있다 Hash 임의의 ..