전체 글 221

모듈(module), require(), IIFE

모듈이란 여러 독립된 기능들에 관한 코드가 모여있는 하나의 파일 모듈의 특징 - 유지보수성 기능들이 모듈화가 잘 되어있다면, 의존성을 그만큼 줄일 수 있기 때문에 어떤 기능을 개선하거나 수정할 때 편하다. - 네임스페이스화 js의 전역 변수는 전역 공간을 차지하는데 모듈을 분리하면 모듈만의 네임스페이스를 갖기 때문에 중복을 방지한다. - 재사용성 똑같은 코드를 반복하지 않고, 모듈로 분리시켜서 필요할 때마다 사용 할 수 있다. 모듈 유형 - 외장 모듈 일반 node.js 개발자들이 만들어 놓은 모듈(라이브러리) 외장 모듈을 사용 하기 위해선 npm을 사용 - 내장 모듈 node.js를 설치하면 제공되는 기본 모듈 module객체 확인 console.log(module) /* Module { id: '.'..

coding/Node.js 2022.08.03

TIL 220802

이번 과제의 최대 고비들 바로 데이터베이스 전환(sql로), map함수에서 await으로 데이터 찾은 뒤 응답하기 오전 아침부터 일단 데이터베이스 전환을 위해 생활코딩 mysql도 보고 관계 설정 구글링도 해보았는데 잘 되지는 않았다. 어제 전환을 하면서 데이터는 잘 저장되고, 수정도 가능하지만, 관계 설정을 하지 않아서 결국 몽고 디비처럼 사용하고 실정이다. User 테이블에서 userId를 가져와 Post 테이블의 userId를 연결하는 게 아니라 그냥 토큰에서 userId를 뽑아서 강제로 값을 넣어주고 있었다. 점심때까지 관계 설정을 해결하고 싶었지만 이 부분도 실마리조차 잡을 수 없을 것 같아서 고민을 했다. 고민후 내린 내 결정은 일단 넘어가자 과제를 완벽하게 하는 것도 중요하겠지만, 관계 설정..

일지/TIL 2022.08.02

sequelize CRUD 사용법

테이블 조회(findAll, findOne) findAll 쿼리 결과를 배열 객체로 반환 조건에 맞는 데이터 전부를 배열로 반환한다. const { User } = require('./models'); // 유저 테이블 안에 있는 모든 데이터를 가져옴 const user = User.findAll({}) // age가 20인 데이터들을 가져옴 const user = User.findAll({where:{age:20}}) findOne 쿼리 결과를 객체로 반환 조건에 맞는 데이터 하나만 객체로 반환한다. const { User } = require('./models'); // 조건에 맞는 데이터 하나만 가져온다. const user = User.findOne({}) // 이름이 jin인 데이터 하나만 가져..

coding/Node.js 2022.08.02

TIL 220801 - 베이터베이스 전환 문제

후.. 어렵다.. 좋아요 게시물 보여주기 기능은 뒤로하고 데이터 베이스 전환을 했는데 절반은 성공했다. 기존의 데이터들을 저장하고 보여주는 거는 전환을 다 했는데 각 테이블의 필드들끼리 관계를 설정해서 데이터끼리 연결을 시켜줘야 하는데 씨퀄라이즈라는 라이브러리를 사용하는 게 너무 어렵다 여러 글들을 찾아서 읽어보아도 좀처럼 이해가 잘 되지는 않는다. 정말 학습 강의가 없으니까 응용을 못하네 다른 분들도 힘들어하긴 하던데 어떻게 해야 이 문제를 해결하고 이런 문제 같은 고민이 있을 때 어떻게 뛰어넘을 수 있을까... 어렵네 화수목 3일 안에 완성은 할 수 있을까? 하는 걱정도 든다 ㅜ 오늘 공부한 개념 https://jin-coder.tistory.com/53 배열과 유사 배열 객체 유사 배열 객체 이름 ..

일지/TIL 2022.08.01

배열과 유사 배열 객체

유사 배열 객체 이름 그대로 배열과 유사한 객체 배열처럼 보이지만, 사실 key가 숫자이고, length 값을 가지고 있는 객체 JS 에서 querySelectorAll이나 document.body.children으로 엘리먼트를 가져오면 유사 배열 객체에 담겨서 온다. // 배열 var arr1 = ['aaa', 'bbb', 'ccc']; console.log(arr1); // (3) ["aaa", "bbb", "ccc"] // 유사배열 var arr2 = document.body.children; console.log(arr2); // HTMLCollection(10) [header.main-header, aside.main-sidebar, div.wrapper, div#playerArea, // if..

coding/JS 2022.08.01

WIL 3번째 주말

항해를 시작하고 21일 약 3주가 지났다 벌써 4번째 챕터다 주특기 숙련 내가 선택한 노드를 더 잘 사용하기 위해 개인과제 및 팀 과제를 하면서 실력을 쌓아가는데 어렵다 ㅋㅋ 너무 어려워서 아예 못 따라갈 정도는 아닌데 개념들을 정리하고 코드를 사용하고는 있지만 100% 되고 있지는 않는 느낌? 개인과제도 뭐 잘 끝내가고 있고, 개념 정리도 최소 하루 1개씩은 하면서 정리를 하지만 과연 이걸 학습 자료 없이 할 수 있을까? 물론 다들 구글링 하고, 기존 코드 보면서 한 다곤 하지만 그런 할 수 있을까가 아닌 참고 자료들 없이 내가 이렇게까지 생각을 해서 움직 일 수 있을까에 대한 확신이 없어 불안하다. 당연히 코드 치는 건 구글링 하고 기존 꺼 보면서 변형하고, 응요 하겠지만 내가 무언가를 해야지 마음을..

일지/WIL 2022.07.31

Restful API

Rest API API 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하여, 서로 정보 교환을 가능 하도록 하는것 프로그램을 위한 인터페이스. 즉, 프로그램 간 커뮤니케이션을 담당하는 기능 Rest API에서 Rest 는 Representational State Transfer의 약자로 소프트웨어 프로그램 아키텍처의 한 형식이다. 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. Rest는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용 할 수 있는 아키텍처 스타일이다. Rest의 개념 웹에서 데이터를 전송하고 처리하는 방법을 정의한 인터페이스 HTTP URI를 통해 자원을 명시하고, HTT..

coding/IT, CS 2022.07.31

package.json

package.json 현재 프로젝트에 관한 정보와 패키지 매니저(npm, yarn)을 통해 설치한 모듈들의 의존성을 관리 하는 파일 배포한 모듈 정보를 담고 있으며, JSON 형식의 파일 생성방법 npm init // 프로젝트명, 설명 등 작성할 내용이 있을 경우 또는, npm init -y // 입력할 내용없이 package.json 생성 직접 작성할 수도 있고 npm init 명령을 통해서 자동으로 생성가능 함 기본 구조 name 프로젝트 이름으로, 가장 중요하다. 중앙 저장소에 배포할 때 version과 함께 필수 항목이다. version 프로젝트 버전을 정의힌다. 3단계 버전을 사용하며, - 로 태그 이름을 적을 수 있다. description 프로젝트 설명으로, 문자열로 기술한다. npm se..

coding/Node.js 2022.07.31

TIL 220730 - await 고통... 해결못함 ㅠ

아......... 짜증 난다...... await 너무 어렵다... 오늘 빠르게 좋아요 기능 만들고 sql 공부해서 데이터를 다 바꿀 생각이었는데 sql은 무슨 좋아요 기능도 다 만들지 못했다.. 사용자가 좋아요를 눌렀을 때 게시물에는 좋아요 누른 사람의 고유 id를 넣어주고, 사용자에게는 내가 좋아요 누른 게시물의 고유 id를 넣어주는 것까진 성공 좋아요 기능은 완성했는데 문제는 내가 좋아요 누른 게시물을 가져와서 보여주는 것이다 와 솔직히 그냥 유저가 누른 게시물 id 돌려주면서 게시물에서 그 정보 하나씩 빼와서 data에 담아주면 되겠지 하고 금방 하겠네 했는데 오늘 아침부터 지금까지 해결하지 못했다.. 문제는 비동기 awiat 때문 데이터를 보여주기 전에 배열에 게시물 id의 정보를 찾아서 담아..

일지/TIL 2022.07.31

TIL 220729

오늘은 항해 4 챕터 주특기 숙련 주차의 첫날 주특기 입문 때 노드를 배우고 익스프레스로 서버를 열어서 간단한 API로 요청과 응답을 했었다. 숙련 주차 때는 이와 비슷한 과정을 하지만 기능이 더 추가돼 로그인 기능을 구현해보고, DB도 RDB로 변경하여 API를 사용하는 것이 목표다. 다행히 지난주 개인 공부시간을 많이 확보해서 강의를 미리 들어놓아서 학습자료를 보는데 완벽하게는 아니지만 어느 정도 이해가 되는 것 같았다. 아침에 발제가 끝나고 이번 주 독스를 꼼꼼히 보면서 지난주 모범답안도 확인하고, 다른 분들의 개념 정리된 것도 하나씩 보면서 내가 잘 알지 못한 것들을 하나씩 채워 나갔다. 아직 모르는 게 너무 많고, 분명히 개념 정리도 했음에도 100% 이해한 것이 없는듯한 느낌이다 더 열심히 공..

일지/TIL 2022.07.29