전체 글

· Algorithm
문제 설명 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0result += el) } else if(commonElementArr.length && commonElementArr.every((el)=>el==="0")){ result = "0" } else { result = "-1"; } console.log(result) return result; }; 첫 구상한 것에 살짝 덧붙여서, 문제의 요건에 맞게 배열의 요소가 모두 0인 경우 0을 리턴하게 해주었고 배열의 요소가 한 개도 없을 경우 -1을 리턴하게 만들어 주었다. 정답을 확인해보니 (9개/17개)를 맞추며 정답률 50퍼센트가 간신히 넘었다. Second Code 다시 한 번 생각해보니 내가 위에 짠 코드는 X배열의 길이가 Y..
· Node.js
env란? env를 사용하는 이유? 프로젝트를 진행할 때 서버주소, DB 정보, 고유 API KEY 등 숨겨줘야 하는 정보들이 존재한다. 이러한 정보들은 민감한 정보임과 동시에 보안이 이루어져야 하는 정보들이다. 만약 이러한 정보들이 깃 오픈소스에 공개될 경우, 해킹을 당하거나 보안적인 면에서 위험할 수 있다. 이러한 문제로 dotenv 패키지를 이용하여 환경변수 파일(.env)을 외부에 만들어 접근하는 방식으로 이러한 위험을 피할 수 있다. (.env라는 외부 파일에 환경변수를 정의하여 변수를 받아오게 되면 보안과 유지보수에 용이하다) dotenv Package dotenv 설치 npm install dotenv dotenv 파일 생성 주의할 점이, env 파일은 프로젝트의 최상위 루트에 만들어주어야 ..
· TIL
[Node 주특기 입문 마지막 날] 주말에도 열심히 Node를 했지만 결국 마지막 날까지 과제를 완료하지 못했다. 정확하게는 과제를 시작조차 못했다. 전체 강의 중 마지막 10분에서 엄청나게 막히면서 오늘 하루도 다 썼다. 이번 Node 주특기 입문 주 내내 mac강의를 window OS에서 따라가려니 너무 벅찼다. 어떻게 보면 시간이 매우 아까운 것 같기도 하다. 공부한 전체 시간이 100이라고 했을 때 내가 직접 코드를 짜보는 시간은 3 정도였던 것 같고 97정도가 프로그램 설치, 설치, 설치, 설치오류, 설치, 설치오류의 반복이었던 것 같다. 정작 코드는 짜보지도 못한 채 설치오류만 하루종일 상대하고 있으니 이게 맞나 싶다. Local 환경 ⇛ Ubuntu 환경 ⇛ Root ip 환경 오늘은 Loc..
· TIL
Node 주특기 입문 [4일차] 이상하게도, 어제와 마찬가지로 전날 이해가 안갔던 부분들이 어느정도 이해가 되기 시작했다. 내가 이해한 부분이 확실하지는 않지만 아예 아무것도 모르겠던 어제와는 달리 정확하진 않지만 코드의 순서나 데이터가 어떻게 움직이는지에 대해 조금은 감을 잡은 것 같다. 전체적인 흐름을 파악하기 위해 조금 길더라도 내가 이해한 방식으로 글을 적어보려고 한다. MongoDB를 이용한 데이터 GET 하기 우선, 어제까지는 mongoDB를 연결하고 Thunder Client를 사용함에 있어 데이터를 어디에서 가져오는지, 가져온 데이터를 가공해서 어디로 주는지, Thunder Client는 무엇인지에 대해 전혀 감을 잡지 못하고 그저 코드만 따라 칠 뿐이었다. (그 뿐 아니라 스키마는 무엇이..
· TIL
Node 주특기 입문 [3일차] 오늘도 역시나 이해가 안간다. mongoDB와 mongoose, thunder client를 사용하는 법에 대해 배웠는데 코드가 이해가 안가는 것은 아니지만 코드를 이 파일에서 짜다 다른 파일로 넘어가고 다른 파일에서 짜다 또 다른 파일로 넘어가고 하다보니 코드가 쌓였고 결국에는 이해하기 힘들어졌다. 아마 DB를 다루는데 전체적인 큰 그림을 못봐서 생기는 문제점이 아닌가 싶다. 솔직히 말하자면 req가 request로 요청하는 것이고 res가 response가 응답하는 것으로 알고 있긴 했다. "client가 request하고 server가 response한다"고 할 때 그 'request'와 'response' 인 것 같다고 생각하며 코드를 보려했지만 맞는 것 같으면서도..
· TIL
Node 주특기 입문 [2일차] 오늘은 어제 이해가 되지 않았던 부분에 대해 다시 공부해보는 시간을 가졌다. Express.js를 이용한 웹 서버 띄우기 Express.js를 통해 실제로 웹 서버를 띄우고 API를 호출했을 때 정상적으로 API가 도달하고, 반환값이 정상적으로 돌아오는지 확인해봤다. 순서를 정리해보면 다음과 같다. ① npm init -y ② npm install express ③ 서버 켜주기 ④ thunder client 실행 ⑤ router 생성 ⑥ router 보내기 / 가져오기 ⑦ router 를 Express.js에 적용시키기 ① npm init -y 서버를 띄우기에 앞서 기본적인 설정들을 몇 가지 해주어야 하는데 그 중 하나가 ' npm init -y ' 이다. 터미널에 npm..
· TIL
Node.js 주특기 입문 주차 기본적인 javascript 학습과 함께 몇 번의 개인과제, 팀과제를 끝내고 난 후 오늘부터 주특기 입문 주차가 시작되었다. 이제 본격적으로 Node를 입문한다고 생각하니 기대 반 두려움 반이었다. 오늘은 Node의 기본기 위주로 공부를 했기 때문에 배웠던 부분에 대해서 적어볼까 한다. Node.js의 특징 ① 논 블로킹 : 기존의 블로킹은 프로그램 내부에서 함수를 호출하면 호출된 함수가 작업을 마칠때까지 대기하는 방식이었지만, 논 블로킹은 함수가 실행되는 중에도 다른 작업을 동시에 진행할 수 있는 장점이 있다. DB에 있는 데이터를 Node.js로 가져온다고 했을 때 가지고 오는 것들을 무조건적으로 기다리는 것이 아니라 백그라운드에서 돌아가면서 오는 것들을 기다렸다가 나..
· TIL
팀 프로젝트 마지막 날 매번 찾아오는 두통 때문에 오늘 하루도 힘들었다. 집중력도 좋지 않았으며, 많은 일을 하지 못했다. 그래도 간략히 적어보자면 다음과 같다. 오전에는 프로젝트 제출 전 마지막 점검을 했다. 팀 회의를 통해 내 파트 뿐만 아니라 다른 팀원들의 파트도 문제가 없는지 마지막으로 변경하고 싶은 부분이 있는지 의견을 묻고 원하는 부분을 변경했다. 변경 부분점들 중에서 나는 유효성 검사부분에 사소한 문제점들이 보여 수정했다. 점심에 팀 과제를 제출하고 난 뒤에는 그동안 시간이 부족해서 못봤던 코드잇 '자바스크립트 객체 지향 기본기'부분을 봤다. '상속'과 '다형성' 파트를 봤는데 이미 스파르타 코딩클럽에서 한 번 공부했었고 이미 써 봤던 친구들이라 익숙했다. 확실히 실제로 먼저 만들어본 코드들..
· TIL
Team Project 3일차 오늘은 기존 firebase로 작업되어 있던 댓글 기능을 전부 local storage로 바꾸는 작업을 했다. 처음에 firebase와 local stroage를 섞어서 진행했던 이유는 이 프로젝트에서 요구하는 바가 "댓글 기능"이었기 때문이었다. "댓글 기능"은 온전히 사용자들 간의 소통을 위한 것이라고 생각했기 때문에 다른 사용자들끼리 서로의 댓글을 읽으려면 자신의 브라우저에만 저장되는 local storage가 아닌 firebase에 데이터를 저장해야 한다고 생각하고 프로젝트를 진행하는 중이었다. (local storage는 부가적으로 id값 비교나 pw 비교에서 쓰려고 했다) 하지만 아침 시간 튜터님과 대화 중 오로지 local storage만 이용해야 한다는 내용을..
윤찬님
찬이_Devlog