목록전체 글 (171)
2020.코딩일지
Node.js웹 앱의 도커라이징Dockerizing package.json 파일생성(서버이름, start명령어, express ver.)하고 `npm install` -> package-lock.json생성됨 더보기 package.json { "name": "docker_web_app", "version": "1.0.0", "description": "Node.js on Docker", "author": "First Last ", "main": "server.js", "scripts": { "start": "node server.js" }, "dependencies": { "express": "^4.16.1" } } server.js 파일생성(Express프레임워크사용) 더보기 "use strict"; ..
코드스테이츠 블록체인 부트캠프 6기 도커란? 메모리,CPU,GPU가 포함된 런타임 옵션 MacOS유저용Docker Desktop설치안내 [ https://docs.docker.com/desktop/install/mac-install/ ] *Apple Chip(M1)/Intel Chip 버전 구분하여 설치해야함. `docker --version` 버전확인 컨테이너 방식의 장점(도커장점) 의존성 충돌 문제 해결 컨테이너는 1컴안에서 어떤 자원을 독립적으로 격리하는가? 1) 프로세스 특정 컨테이너 안에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 액세스 가능하다. 특정 컨테이너 안에서 작동하는 프로세스는 다른 컨테이너 프로세스에게 영향을 줄 수 없다 2) 네트워크 (리소스격리가능) 기본으로 컨테이너 ..
문제 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다. 버블 정렬(bubble sort)은 여러 정렬 알고리즘(삽입 정렬, 퀵 정렬, 병합 정렬, 기수 정렬 등) 중 가장 기본적인 알고리즘입니다. 버블 정렬 알고리즘은 아래와 같습니다. 첫 번째 요소가 두 번째 요소보다 크면, 두 요소의 위치를 바꿉니다. (swap) 두 번째 요소와 세 번째 요소보다 크면, 두 요소의 위치를 바꿉니다. (swap) 1, 2를 마지막까지 반복합니다. (마지막에서 두 번째 요소와 마지막 요소를 비교) 1~3의 과정을 한 번 거치게 되면, 가장 큰 요소가 배열의 마지막으로 밀려납니다. 1~3의 과정을 첫 요소부터 다시 반복합니다. 5를 통해 두 번째로 큰 요소가 배열의 마지막 바로 두 번째로 밀려납니다..
문제 두 개의 배열(base, sample)을 입력받아 sample이 base의 부분집합인지 여부를 리턴해야 합니다. 입력 인자 1 : base number 타입을 요소로 갖는 임의의 배열 base.length는 100 이하 인자 2 : sample number 타입을 요소로 갖는 임의의 배열 sample.length는 100 이하 출력 boolean 타입을 리턴해야 합니다. 주의사항 base, sample 내에 중복되는 요소는 없다고 가정합니다. 입출력예시 더보기 //입출력예시 let base = [1, 2, 3, 4, 5]; let sample = [1, 3]; let output = isSubsetOf(base, sample); console.log(output); // --> true sample..
문자열을 입력받아 연속되는 문자가 있을 경우, 연속 구간을 반복되는 수와 문자로 조합한 형태로 압축한 문자열을 리턴해야 합니다. 주의사항 빈 문자열을 입력받은 경우, 빈 문자열을 리턴해야 합니다. 3개 이상 연속되는 문자만 압축합니다. 입출력예시 더보기 //입출력예시 let output = compressString('abc'); console.log(output); // --> abc output = compressString('wwwggoppopppp'); console.log(output); // --> 3wggoppo4p 👻 function compressString(str) { // TODO: 여기에 코드를 작성합니다. if (str.length === 0) return "" let text =..
코드스테이츠 블록체인 부트캠프 6기 다큐프라임-돈은 빚이다 -------------------기존금융시스템------------------- 💃화폐란, 화폐의특성 5가지를 지니고 있어야 한다. 휴대성Portability : 소지하기 편해야함 가분성Divisibility : 분할에 용이함(만원한장= 오천원2장= 천원10장으로지불가능) 내구성Durability : 형태가 쉽게 변하지 않음 동질성Uniformity : 같은 성질이나 특성, 지폐는 크기와 모양, 가치가 모두 똑같음 가치의 안정성Limited supply : 공급량이 제한됨 💃화폐의기능3가지 : 가치 교환과 측정 및 저장에 대한 공동체의 신뢰(협업을가능하게함) 실물화폐 금속화폐 신용화폐 암호화폐 (조개,쌀) (상평통보) (지폐) (가능성을 지니고..
코드스테이츠 블록체인 부트캠프 6기 [인증/보안]HTTPS(쿠키세션토큰쪼끔) [인증/보안]Token-based Authentication토큰기반인증에 대하여 🙃[인증/보안]OAuth2.0 [인증/보안]추가메모 ✅Authentication(인증)과 Authorization(인가)의 차이가 무엇인가? 인증: 보호된 리소스에 접근하는 것을 허용하기 전에 등록도니 유저의 신원을 입증(validating)하는 과정 인가: 요청된 리소스에 접근할 수 있는 권한이 있는 인증(authenticated)된 유저인지 입증하는 과정 OAuth 2.0 Authorization Code Grant 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할 때 사용 인증절차간소화/용어변경/다양한인증방식제공(6가지) 의 차이로 1..
암호화된 문자열과 암호화 키를 입력받아 복호화된 문자열을 리턴해야 합니다. 카이사르 암호(Caesar cipher)는 평문(plaintext)을 암호키 secret개만큼 (오른쪽으로) 평행이동시켜 암호화 합니다. 복호화는 암호화된 문자열을 원래의 평문으로 복원하는 것을 말합니다. 'hello'를 secret 3으로 암호화한 경우: 'khoor' 'codestates'를 secret 11로 암호화한 경우: 'nzopdelepd' 입출력예시 더보기 //입출력예시 let output = decryptCaesarCipher('khoor', 3); console.log(output); // --> hello output = decryptCaesarCipher('zruog', 3); console.log(outpu..
문자열을 입력받아 문자열에서 숫자를 모두 찾아 더한 뒤에 해당 값을 (숫자와 공백을 제외한 나머지) 문자열의 길이로 나눈 값을 정수로 반올림하여 리턴해야 합니다. 입출력예시 더보기 //입출력예시 let output = numberSearch('Hello6 '); console.log(output); // --> 1 output = numberSearch('Hello6 9World 2,'); console.log(output); // --> 2 output = numberSearch('Hello6 9World 2, Nic8e D7ay!'); console.log(output); // --> 2 👻 function numberSearch(str) { const digits = '0123456789'; if ..
문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다. 입출력예시 더보기 //입출력예시 let output = isIsogram('aba'); console.log(output); // false output = isIsogram('Dermatoglyphics'); console.log(output); // true output = isIsogram('moOse'); console.log(output); // false 👻 if (cache[strLowered[i]]) 이게 무슨소리냔... ? 키값으로 넣어놓고 있으면 false뱉 그런데 꼭 {a:true} 이렇게 쌍으로 해야하는건가? {a:4}가능 {a:1} 가..