코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 programmers.co.kr 숫자 뒤집는 것이다. 전에 풀었던 문제와 굉장히 유사하다. (참고 : 코딩테스트 연습 - 자릿수 더하기 | 프로그래머스 js ★★☆☆☆ (tistory.com)) 나의 코드 function solution(n) { let answer = []; console.log(n % 10) while..
프로젝트의 정보를 정의, 의존하는 패키지 버전 정보 { "name": "day04", // 이름 "version": "1.0.0",// 버전 "main": "index.js",// 주로 쓰는 js "license": "MIT",// 라이센스 "type": "module",// module로 하면 import를 쓸 수 있다. 옛날 것 : commonjs "scripts": { "dev": "nodemon index.js"// 보통 yarn dev로 cmd에서 실행한다. }, "dependencies": {//확장한 것 "axios": "^0.24.0",// axios "cors": "^2.8.5",// cors : 프론트 백엔드 다를 때 에러나는데 이걸 써야 그 에러 해결 "express": "^4.17...
코딩테스트 연습 - 이상한 문자 만들기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 받은 문자열 s를 아래 표처럼 리턴하라이다. 홀수번째는 대문자, 짝수는 소문자 s return "try hello world" "TrY HeLlO WoRlD" 나의 코드 const solution = (s) => { let answer = true; s = s.split(' '); // 단어로 나눈 배열 만들고 let withSpaceArr = []; // 띄..

코딩테스트 연습 - 문자열 내 p와 y의 개수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr 문자열 안에서 p와 y의 개수를 구하고(대소문자 상관 안함) 개수가 같거나 둘 다 아예 없으면 참을, 아니면 거짓을 반환하는 문제 내 코드 주석에 설명대로 단순 카운트 문제다.

관련 글 코딩테스트 연습 - K번째수 | 프로그래머스 js (tistory.com) 배열을 적절히 정렬 후 반환한다. 기본 정렬(sort()) 순서는 문자열의 유니코드 코드 포인트를 따릅니다. 보면 알 수 있듯이 4가 두 번째가 아니다. 맨 앞자리 숫자가 큰 순서대로 정렬된다. 따라서 10의 자리 숫자를 비교할 때는 기본 정렬은 적절하지 않다. 옳게 쓰려면 sort() 소괄호 안에 콜백 함수를 만들어준다. 빼기를 해서 오름차순 또는 내림차순으로 만들 수 있다. 참고 링크 Array.prototype.sort() - JavaScript | MDN (mozilla.org) Array.prototype.sort() - JavaScript | MDN sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 ..

코딩테스트 연습 - K번째수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 배열 중 일부를 추출해서 어떤 번째의 숫자를 출력하는 문제다. 나의 코드 슬라이스로 자르고 정렬하고 answer에 넣는다. 테스트2번에서 실패했다. 오류라도 띄워주지. 슬라이스를 안쓰고 코딩으로 써보자 2차 시도 그래도 2번테스트에서 실패했다. 다른 사람 코드 function solution(array, commands) { var answer = []; for(var i=0; i{return a-b}); //sort가 다르다 answer.push(..

객체를 콘솔 로그로 부를 때 백틱과 기존 것이 차이가 났다. 객체는 기존 것을 쓰는 걸 추천한다. 배열은 어떨까 배열도 백틱으로 쓰면 문자열과 유사하게 보인다. 결론 객체, 배열은 기존 콘솔 로그를 쓰자 예제 1. axios라는 걸 이용해서 통신을 하는 상황이다. axios.get("http://localhost:3000/boards").then((req) => { console.log(`${req}`); }); 백틱으로 콘솔을 찍으면 배열 안 오브젝트가 안보인다 따라서 axios.get("http://localhost:3000/boards").then((req) => { console.log(req); }); 기존 콘솔로그를 쓰면 잘 나온다. 백틱은 편하지만 값이 안나오면 기존 콘솔로그를 쓰자

1번 VS 켜고 폴더만든다. 2번 index.js 만든다. 3번 윈도우 기준 cmd 켠다(powershell안됨). index.js 경로로 간다. 4번 cmd에 yarn install 입력 yarn install // node modules 5번 yarn init 입력, question들은 기본값으로 만든다(엔터 눌러라) yarn init // package json 6번 package.json 들어가서 사진처럼 type, script 입력 7번 express 사이트 들어가서 (사이트 : express - npm (npmjs.com)) 인덱스에 사진처럼 넣어주자 ※ 이렇게 바꾸면 아래 과정을 안해도 된다. const express = require('express') -> import express fr..
express는 node js에서 프론트와 입력 출력이 잘 되게 도와주는 거다. Express - Node.js web application framework (expressjs.com) Express - Node.js web application framework Fast, unopinionated, minimalist web framework for Node.js $ npm install express --save expressjs.com 시작하는 법 yarn init // 혹은 npm init

여기 사설 playground(graphql의 한 사이트)가 있다. 왼쪽부터 설명하면 읽어오기 위해(GET) query를 쓰고(아니면 mutation), query 객체 안에 fetchBoards라는 함수를 써주고 매개변수로 (page : 1)을 써준다. 함수 안쪽에는 보고싶은 객체를 차례로 써준다. like, writer, title에 관한 정보들이 보인다. 객체들을 조절할 수도 있다. query에서 like, writer만 보냈을 때 두 객체만 출력된다. 또한 fetctBoards 같은 함수들은 DOCS에 있다. 함수와 매개변수, 그리고 리턴값이 나온다. 필요한 걸 쓰면 된다.

스키마란 디비의 구조를 말한다. 스키마엔 테이블, 타입, 관계 등을 나타낸다. 참고 링크 What is a Database Schema? | Database.Guide What is a Database Schema? | Database.Guide In database terms, a schema (pronounced “skee-muh” or “skee-mah”) is the organisation and structure of a database. Both schemas and schemata can be used as plural forms. A schema contains schema objects, which could be tables, columns, data database.guide

코딩테스트 연습 - 문자열 내림차순으로 배치하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 programmers.co.kr 문자열을 큰 글자대로 정렬하는 문제이다. 소문자는 대문자의 앞에 온다. 내코드 정렬함수를 대소문자 따로하니 기존보다 두 배가 됐다. 합쳐서 하는 방법은 있지 않았을까 더 간단하게 만들었다. 경과시간도 평균 2.0ms 줄어들었다 다른사람코드 놀랍게 내가 개정한 코드와 동일했다. 간접접으로 칭찬받은 느낌이다.

코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. programmers.co.kr x의 배수를 n만큼 나열하는 배열을 구하는 문제다 내코드 배수 넣어주면 된다. 남의 코드 크게 다르진 않다

코딩테스트 연습 - 자릿수 더하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출 programmers.co.kr 숫자의 자리수를 더하는 문제다 예) 123 -> 1+2+3 = 6 내코드 이중 for문을 써도 9 * 9, 81번밖에 구문이 돌아가지 않기 때무에 굉장히 빠르다고 자부한다. 또한 자리에 맞는 숫자가 있으면 break를 줬기 때문에 100000...이 아닌이상 81번 이하로 돌아간다. Math.pow를 써..

코딩테스트 연습 - 약수의 합 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수 programmers.co.kr 0 ~ 3000 중 한 숫자의 야구를 구하는 것이다. 예) 2 4 6 12 약수 1 + 2 = 3 1 + 2 + 4 = 7 1 + 2 + 3 + 6 = 12 1 + 2 +3 + 4 + 6 + 12 = 28 내 코드 for문을 절반만 도는 점과 set, 그리고 reduce를 썼다. 다른 사람 코드 다른 사람 코드와 비교했을 때 내..

promise란 (Producing Code)시간 좀 걸리는 코드와 (Consuming Code)반드시 기다려야 하는 코드를 연결하는 객체다. 객체 특징 properties.state (상태) peding fulfilled rejected properties.result (결과) undefined a result value an error object 예제 1. 기본형이다. const myResolve = () => {console.log("I'm myResolve")} const myReject = () => {console.log("I'm myReject")} let myPromise = new Promise(function(myResolve, myReject) { // "Producing Code"..

콜백이란 매개변수로 쓰여지는 함수이다. 또한 여러 콜백들이 동시(synchronous)에 불러지기도 하며 따로따로(asynchronous) 불러지기도 한다. .then() 을 사용하여 따로따로(asynchronous) 순서 좋게 콜백을 사용할 수도 있다. .then()은 Promise synchronous asynchronous Promise (참고 : Promise란 (tistory.com))와 함께 쓰이며 .then()함수를 쓴다. 참고링크 JavaScript Callbacks (w3schools.com) JavaScript Callbacks W3Schools offers free online tutorials, references and exercises in all the major languag..

깊은 복사는 주소값을 다르게 갖는 것이고 얕은 복사는 주소값을 같이 쓰는 것이다. //배열, 객체는 그것 그대로 복사하면 이렇게 값이 하나만 바뀌어도 둘 다 영향을 받는다. let arr1 = [2,3,4]; let arr2 = arr1; arr1[0] = 100; console.log(arr2); // [ 100, 3, 4 ] // 바닐라 JS로는 JSON.parse(JSON.stringify 이것을 써야 한다. 하지만 '현업'에서는 쓰지 않는다고 한다. const newProfile = { name : "sam", hobby : {one : "hunting", two : "running"}, age : 8 } JSON.stringify(newProfile) //'{"name":"sam","hobby"..

Spread 요소들을 '흩뿌리는' 개념이다. 파라미터에서 쓰며 배열 또는 객체를 '뿌리는데' 쓴다. 두 개 이상의 배열이나 객체를 하나로 합치는데 쓴다. Rest 요소들을 '모으는' 개념이다. 객체를 지우는 데 쓰기도 한다. Rest를 이용하면 객체의 값을 삭제할 수 있다. delete를 사용 할 수도 있지만 현업에선 기존 값을 잘 삭제하지 않는다. 참고 사이트 Javascript Spread and Rest Syntax (...) | Better Programming Spread Syntax (…) vs. Rest Syntax (…) in JavaScript Understand the difference with two examples of each betterprogramming.pub javascr..

배열이나 객체의 값을 쉽게 분해하는 것이다. for문을 쓸 수도 있지만 for_of 또는 for_in을 쓰기도 한다. 또한 spread syntax( ... ) 을 쓰기도 한다.( 참고 : spread syntax vs rest syntax) 배열 변수 이름 부분에도 배열기호를 써준다. 그리고 spread syntax(...)를 썼다. 나머지 배열을 담아낸다는 뜻이다. 객체 for_of문을 쓰려면 Object.entries를 써야 한다. 하지만 for_in문을 써버리면 쓰지 않아도 된다. spread syntax를 이용해서 result에 나머지들이 들어간다. 객체를 파라미터로 받으면 인자로 분해해서 받을 수도 있다. 이렇게 하면 더 안전하다. 참고 사이트 Destructuring assignment - ..

----이어지는 글---- 선언, 초기화, 할당 차이 (tistory.com) var let const hoisting O O O value, after hoising undefined X X going to TDZ? X O O re-declarable? O X X able to re-assign? O O X var 할당이 아니라 선언만 해도 값이 안에 들어가진다. 재선언을 하면 좁은 스코프에서 쓰던 값이 넓은 스코프에서도 쓰이게 된다. 또한 영어로 Lexical Environment에 들어가는데(참조) 다른말로 스코프를 따로 지정 안해주면 글로벌로 변수가 쓰인다는 뜻이다. 또한 값도 undefined로 할당되며 호이스팅 된다. var hoisting에 관해 let var 과 마찬가지로 호이스팅이 된다...
----이어지는 글---- var let const 차이점 그리고 호이스팅 (tistory.com) 선언 : 특정 이름으로 스코프에 알려준다. 초기화 : 메모리에 선언과 동시에 진행된다. 할당 : 변수 안에 값 집어넣기 선언타입 : var, let, const (이들의 차이점) 참고 링크 Quick Tip: How to Declare Variables in JavaScript - SitePoint Quick Tip: How to Declare Variables in JavaScript - SitePoint Julian Motz examines how variables are declared in JavaScript, and introduces the three different types of decla..

코딩테스트 연습 - 문자열 다루기 기본 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 programmers.co.kr 문자열에 숫자만 포함됐는지 확인하는 문제다. 정규식을 사용하려 했다. 1차 시도 function solution(s) { let answer = true; const regex = /[0-9]/g; // 0~9까지의 숫자인 정규식 //includes 정규식 안된다. return s.includes(regex) === ..
코딩테스트 연습 - 서울에서 김서방 찾기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 서울에서 김서방 찾기 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니 programmers.co.kr 배열 안에서 어느 요소의 인덱스를 찾는 문제다. indexOf를 이용하면 쉽게 푼다 function solution(seoul) { return `김서방은 ${seoul.indexOf("Kim")}에 있다`; } 다른 사람도 비슷하게 했다.

코딩테스트 연습 - 가운데 글자 가져오기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 문자열의 가운데 글자를 가져오는 문제다 나는 문자열 길이가 홀수, 짝수일 때 출력이 다르기 때문에 두 경우를 나눠서 구현했다. function solution(s) { // 가운데 글자를 반환한다, 가운데를 알아야 한다, 짝수와 홀수일 때 다르다. let arr = s.split(''); if(arr.length % 2 === 1)..
퍼사드 패턴은 API에 최소한의 정보만 보여주는 것이다. 따라서 함수이름만 가지고도 무슨 기능을 하는지 알 수 있게 하는 게 중점이다. import { getWelcomeTemplate, isValidEmail, sendEmail2DB } from "./email.js"; function createUser({name, age, school, email}){ // 1. email이 정상인지 확인(eamil 존재 여부, @포함여부) if(isValidEmail())){ //
- Total
- Today
- Yesterday
- Console
- nodemon
- NPM
- postman
- Spread
- Rest
- error
- function
- 코드캠프
- 에러
- yarn
- 독커
- docker
- 코딩습관
- js
- 프로그래머스
- GraphQL
- elasticsearch
- 도커
- axios
- typeorm
- Playground
- 공부법
- Callback
- arrow
- 백틱
- 콜백
- arrowfunction
- 호이스팅
- 명령어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |