본문 바로가기

전체 글

getter와 setter 간단명료 정리! 일단 코드는 아래 페이지에 있다. getter는 뭘까? 객체 내에 있는 함수로 객체의 프로퍼티들을 함수에서 사용할 수 있게 해준다. 프로퍼티들의 value 값들을 갖고 다양한 함수를 만들 수 있다. setter는 뭘까? setter가 있으면 객체의 프로퍼티 값들을 외부에서 바꿔줄 수 있다. 그렇다면 getter 와 setter 의 조합되면 setter 로 프로퍼티 값들을 바꿔 주고, 그 바뀐 값들로 getter가 함수로 실행해 줄 수 있다. 이 모든 작업을 객체 외부에서 객체에 접근하듯이 직관적으로 수행할 수 있다. getter와 setter 모두 객체 안에 프로퍼티처럼 존재하기 때문이다. 자세한 코드는 아래 페이지를 참조바란다. https://ko.javascript.info/property-acces.. 더보기
thunder client 에서 url입력과 브라우저 url 입력은 대체로 같은 효과다 일단 아래처럼 thunder client에서 GET 메서드 url을 입력했을 때 goods 객체가 리턴된 것을 확인할수 있다. 브라우저에서 위와 같은 url 을 입력했을 때도 client는 같은 리턴값을 받게 된다. 위의 결과를 만든 코드도 정리해 본다. const express = require("express") // express 사용 선언 const router = express.Router(); //Router 사용 선언 // /routes/goods.js const goods = [ { goodsId: 4, name: "상품 4", thumbnailUrl: "https://cdn.pixabay.com/photo/2016/09/07/02/11/frogs-1650657_1280.jpg", cate.. 더보기
express 그리고 middelware 다시 정리! 며칠 전에 express와 middelware 가 뭔지 간단히 정리했었는데 지금 실제 코드를 보며 다시 정리하고자 한다. 간단정리 글은 아래 링크를 참조바란다. WIL: 알고리즘 풀이는 퍼즐 맞추기일까? feat. node.js, Express and Middleware 1. Express.js 이란? Express.js는 Node.js로 웹서버, 모바일 애플리케이션을 만들 수 있게 도와주는 웹 프레임워크이다. Express.js 이외에 다양한 웹 프레임워크가 존재하지만 많은 Node.js 웹서버가 Express.js 프레임워크를 통해 개발되었다. npm을 통해 설치한다. 2. npm (Node Packaged Manager ) 이란? npm은 node.js로 만들어진 패키지(모듈)을 설치하고 관리해주는.. 더보기
배열에서 요소 3개를 더했을 때, 소수가 되는 경우의 개수 문제는 제목과 같고 자세한 문제는 아래에서 확인 가능하다. https://school.programmers.co.kr/learn/courses/30/lessons/12977 결과적으로 작성한 코드는 아래와 같다. 이중 재귀함수getCombinations 부분은 인터넷에서 그대로 가져왔다. getCombinations의 자세한 내용은 아래 포스팅으로 정리했다. 대단히 복잡한 함수이고 이걸 만든 사람은 어떻게 만들었을지 궁금하고 그분이 존경스럽다. https://gamunbidev.tistory.com/80 function solution(nums) { var answer = 0; const getCombinations = (arr, num) => { const results = []; if (num ===.. 더보기
재귀함수. 집요한 정리 프로그래머스 문제 하나가 재귀함수를 필요로 했다. 아래 문제이다. 소수 만들기이다. https://school.programmers.co.kr/learn/courses/30/lessons/12977 그래서 재귀함수를 들여다보았는데 문제를 풀기 위해 내가 들여다 본 재귀함수는 아래와 같다. const getCombinations = (arr, num) => { const results = []; if (num === 1) return arr.map(v => [v]); arr.forEach((fixed, index, origin) => { const rest = origin.slice(index + 1); const combinations = getCombinations(rest, num - 1); cons.. 더보기
배열에서 문자열 요소들을 오름차순 정렬하면 대문자부터 나온다. 알고리즘 문제풀이 중 기억하고 싶은 부분이 있어 포스팅한다. 자세한 문제는 아래 링크와 같다. (프로그래머스) https://school.programmers.co.kr/learn/courses/30/lessons/12917 기억할 점 : 배열에서 문자열 요소들을 sort() 메서드로 오름차순 정렬하면 대문자부터 나온다. 이걸 몰라서 풀이가 엄청나게 돌아서 갔다. sort() 만 하면 알아서 대문자가 앞에 오고 그걸 reverse() 하면 끝나는 문제였다. 그런데 나는 sort 메서드를 쓰면서도 대소문자를 구분해 배열하는 코드를 굳이 만들어 넣어 줬다. 아래와 같다. function solution(s) { function isUpper(strValue) { let firstStrValue = strVa.. 더보기
WIL: 알고리즘 풀이는 퍼즐 맞추기일까? feat. node.js, Express and Middleware 이번 주에 하게 된 질문은 제목과 같다. "알고리즘 풀이는 퍼즐 맞추기일까?" 일단 퍼즐을 맞추기 같은 방식은 효과가 있었다. 로직의 일부만 코딩하고 콘솔로 확인한 후, 그 다음 일부를 코딩하는 걸 반복해서 로직들을 연결하는 방식 말이다. 처음부터 전체 코드를 설계하고 그 설계를 구현할 수는 없는 것 같다. 일단 '되는 것'들을 눈으로 확인한 후 그 다음 단계를 생각해도 누가 욕하지 않는다. 여기서 '되는 것' 이란 하다못해 배열의 오름차순 정렬이어도 좋다. 그게 되는 걸 눈으로 확인했다면 그 로직을 기반으로 다음 단계를 구상할 수 있다. 한단계 한단계 나아가는 것이다. 여기서 '배열의 오름차순 정렬' 같은 사소한 작업이라도 그게 로직의 일부일 수도 있다면 하는 게 안 하는 것보다 낫다. 왜냐하면 오름차.. 더보기
같은 숫자는 싫어 ! 알고리즘 자세한 문제는 아래 프로그래머스 링크 참조바란다. https://school.programmers.co.kr/learn/courses/30/lessons/12906 나의 풀이는 아래와 같다. function solution(arr) { var answer = [] arr.map((_, i)=>{if (arr[i]!==arr[i-1]) { answer.push(arr[i]) } }); return answer } arr = [4,4,4,3,3] console.log(solution(arr)) 풀면서 중요했던 포인트는 map() 메서드가 arr을 돌면서 이전 인덱스 요소와 값이 다른 요소만 var answer [] 배열에 넣는다는 것이다. 굳이 빈 배열을 하나 만들것도 없이 그냥 arr에다 필터를 써서 이전.. 더보기