목록분류 전체보기 (179)
FrontEngineer JungBam
스터디 팀원분으로 인해 처음으로 2단계 문제, 혼자놀기의 달인 문제를 풀면서 깨닫게 되었다. 그냥 단순히 구현하는 것뿐 아니라 알고리즘은 성능도 고려해야 한다는 것. 아래 내 코딩을 보면 단순히 문제를 직관적으로 코딩하다보니 for문이 3개나 중첩되어 있고 이로 인해서 정답을 제출했을때 두번 돌렸을 때 시간 안에 들어오는 경우의 수가 1개 뿐이었다..(이럴수가..) 1. 중첩 반복문은 지양(최소화) 2. 변수를 매번 for문에서 선언함으로써 선언된 변수가 cards의 배열 길이가 100일 떄 100만개가 선언되는 문제 진짜 간단히 말해서 성능이 꽝이라는 이야기..ㅠㅠ 가장 기본적으로 깨달은 부분부터 개선하면서 알고리즘 공부를 해야겠다ㅠㅠ function solution(cards) { let answer..
프로그래머스 삼총사 문제를 풀다가 하나의 배열을 매개변수로 받아서 중복이 되지 않게 조건을 만족시키도록 코딩을 해야했다. 해결방법은 간단했다. 반복문의 기준값을 변경해주면 되는 것이었는데 이걸 생각하는데에 1시간이나 걸렸고 그 과정에서 뻘짓을 어마무시하게 했다. for (let i = 0; i < number.length - 2; i++) { for (let j = i + 1; j < number.length - 1; j++) { for (let z = j + 1; z < number.length; z++) { // 만족시킬 조건 } } } 개 고생했으니 잊지 않겠지, 하다가 정리해두고 나중에 코테 볼때 한번 보고 가자 해서 카테고리 생성
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cXiqQL/btrQZdupTAY/75oP4iCDojJfzVkflwIuHK/img.png)
함수 [프로그래밍 언어의 함수 : 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행단위로 정의한 것] 함수를 사용하는 이유(In 모던자바스크립트) 1. 코드의 재사용성 → 유지보수의 편의성 증가(모듈화) 2. 코드의 신뢰성을 증대 3. 코드의 가독성을 향상 ☞ 정의에서 말하는 실행단위라는 것은 정의하는 함수명으로 그 실행단위를 설명할 수 있도록 하는 것을 포함 + @@ 함수 내에서 작업하였을 때 좋은 점 4. 모듈화를 통한 정보은닉(캡슐화의 장점) ☞ 클로저를 통해 함수의 변수에 대한 캡슐화가 보장됨.(공식문서) 5. 코드의 생명주기를 부여함으로써 성능 향상(전역에서 작업하게 되었을 때에는 생명주기가 길어 성능면에서 떨어진다.) 6. 스코프 체인을 생각해봤을 때에 함수 안에서 선언하여 작업..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VC78C/btrQYsMjtm7/56OrBjPzYWU8Iz6aEWYGP0/img.png)
작업 중 백단에서 받아오는 더미 데이터 일부인데 여기서 보듯 json객체는 말에서 알 수 있듯이 {}로 감싸져서 객체화 되어 넘어온다. 이것과 이어서 express의 .render()메소드의 두번째 매개변수로 데이터를 넘겨주는 과정에서 알게 된 사실.. json 파일의 데이터를 보낸다는 것은 json 객체를 보낸다는 것. 그럼 어떠한 객체들이 담긴 객체를 만들어서 보낸다는 건 json 파일을 보내는 것과 같다는 것. 이 board라는 것이 바로 json객체가 된다는 것이고 그 안에서 maxIndex와 newArticles를 쓸 때에는 그 자체를 가져다가 쓸 수 있다는 것.
배열 여러 자료를 묶어서 활용할 수 있는 특수한 자료형태 일반적인 선언형태 const array = [10,20,30,40,50] 이때 배열 안에 있는 각각의 값을 요소라고 한다. 그리고 이들의 순서를 알려주는 값을 index라고 한다. 배열로 데이터를 받았을 때에 각각의 요소와 length를 확인하기 위해 가장 좋은 방법은 console.log()로 찍어보는 것이다. 사실 데이터를 받으면 거의 무조건 찍어본다...(눈으로 확인해야만 생각이 되는 수준) 배열함수 정리 ★ 배열함수에서 작업하면서 가장 신경쓰는 것은 1. 원본을 변경시키느냐 (※ 파괴적 처리 : 원본을 손상 / 비파괴적 처리 : 원본을 유지) 2. 반환시키는 값이 어떤 것이냐 shift() - 배열을 왼쪽으로 이동 / 첫번째 삭제 unshi..
작업을 하다보니 한 페이지에 두개의 섹션에 각각의 페이지를 구현하는 일이 생겼다. (페이지네이션에 각각의 페이지를 불러오는 것) 쿼리스트링으로 두개의 값을 넘기는 것은 간단했다. ${i} missing과 abandoned에 각각 값을 넣어서 보내주면 되는 일이었다. 근데 다른 페이지의 현재 페이지 값을 어떻게 갖고 올까 고민하는 문제가 생겼다. 이걸 해결해주기 위해서 찾은 방법이 URL에서 다른페이지에 해당하는 쿼리스트링 값을 가져오면 된다였다. 어떻게 가져오는지 알아보자. 현재 url이 http://localhost:5000/shelter?missing=3&abandoned=1 이라고 해보자. 이 url을 읽어오는 window 메소드는 아래와 같다. window.location.href (쿼리스트링만 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/SmMaa/btrQI2HeQjc/6C94aecPKyiVyRkDtc5W7k/img.png)
기존 코드로 처리를 하다보면 네트워크 창에서는 정상적인 요청처리가 되었다는 것이 뜬다. 클라이언트의 입장에서는 아무 문제없는 것이지만, 개발자의 입장에서는 오류처리된 것이 정상적으로 요청처리되어 상태를 정확하게 알 수 없는 상황이 생길 수 있을 것이다. 이러한 문제를 해결하는 것이 status()인데 아래와 같이 사용하게 되면 '네트워크' status 창에 에러코드가 전달되게 된다. 즉, 내가 클라이언트를 위해 정상적이게 보이도록 처리한 부분이지만 내가 봤을 때에는 어떤 문제인지 알 수 있다는 것!! res.status(404).render('404', { what: '페이지' }) 위와 같이 작성했을 때, 비록 404 페이지가 열리면서 오류처리가 되지만 네트워크에서 상태코드를 통해 어떤 상태인지 확인이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lMuUw/btrQJcvW6im/3nXkJs9xxX7eoesnXAKrDk/img.png)
서버에서의 변수명이 일치하지 않는다던가 json파일 문제라던가 하는 문제들에 대해 처리하는 방법 // 서버 문제를 처리할 미들웨어 app.use(function (error, req, res, next) { res.render('500') }) .use에 위의 코드에 있는 4가지의 매개변수를 모두 받아 작성하면 서버 문제에 대하여 처리하는 라이브러리를 사용할 수 있게 된다.(나는 서버 문제 처리 페이지로 렌더시켰다. 서버에 문제가 발생하면 클라이언트가 인지가 될 정도로만..)