본문 바로가기

과거공부모음

(122)
나의 개발일지 20220127 TIL(Today I learned) - Sequelize 관계 Today I learned 오늘은 Sequelize를 학습을 하면서 관계를 설정하고 sync()를 하면 테이블이 생성될 때 foreign key설정이 되는 것을 확인했다 이런식으로 진행을하면 관계를 설정한대로 설정이 된다 이전 프로젝트의 문제점이였던 부분을 해결할 수 있을거 같은 느낌이 들었다 이전 프로젝트의 문제점이 관계설정은 했는데 데이터베이스에는 foreign key가 설정이 안되고 테이블이 생성되는 문제였다 join을 사용할 때 문제가 생기지 않아서 그냥 작업을 진행했는데 피드백 중 급한 상황이 발생해서 데이터베이스를 직접 건드려야 하는 경우가 발생했을 때 관계가 연결이 안되어있어서 문제가 생기면 어떻게 해결하겠냐는 피드백이었다 오늘 학습을 진행하면서 문제를 해결할 수 있다고 생각이 들어서 바로..
나의 개발일지 20220126 TIL(Today I learned) - Sequelize Today I learned 오늘은 Sequelize의 학습이 부족한거 같아서 Sequelize를 왜 사용하는지와 더 잘 사용하기 위해서 학습을 진행했다 Sequelize를 사용하면 뭐가 편하고 좋은지 알아보기 위해서 mysql2를 이용해서 SQL문을 직접 사용하면서 데이터베이스와 연결해보았다 Sequelize를 사용하면 메서드만 잘 사용하면 쉽게 원하는 연결을 할 수 있었는데 mysql2를 이용하니까 SQL문을 사용해서 작업을 진행해야해서 꽤 불편했다 mysql2로 작업을 해보고 Sequelize로 작업을 해보기 위해서 CLI을 사용하지 않고 Sequelize를 모델세팅부터 작업을 진행해보려고 했는데 문제가 발생했다 Sequelize가 제대로 활성화가 되지않고 데이터베이스와 연결이 되지않았다 문제를 해..
나의 개발일지 20220125 TIL(Today I learned) - 데이터베이스 모델링, 타입스크립트 enum Today I learned ERD 용어 정의 Entity Relation diagram 엔티티(Entity): 개념적으로 실제로 존재하는 개체 고유해야한다 애트리뷰트(Entity Attribute): 엔티티 구성요소 릴레이션(Relation): 엔티티와 엔티티의 관계 카디널리티 비율에 대해 언제 쓰면 좋은지 생각해보자 1:N 회원과 게시판 N:M 학생과 과목 인덱스를 써도 인덱스를 쓰지 않는 것과 별반 차이가 나지 않는 경우가 있습니다. 테이블의 레코드가 어떻게 구성이 되면 이런 경우가 발생할 수 있을까요? 헬스장 테이블이 있다고 생각해보자 여자와 남자 회원들을 여자, 남자로 인덱싱 해본다고 생각하면 인덱스를 쓰는 이유가 없다 타입스크립트 타입스크립트를 학습하면서 nodemon을 사용하기 위해서 nod..
나의 개발일지 20220120 TIL(Today I learned) - module.exports와 export, 객체의 프로퍼티 확인 Today I learned 오늘은 타입스크립트를 학습하면서 타입스크립트가 module.exports가 아니라 export를 사용하는 부분에서 무슨 차이가 있고 왜 사용하는지 궁금증이 생겼다 module.exports와 export는 뭐가 다를까? module.exports는 node.js에서 모듈을 관리하는 기능이다 export는 javascript ES6부터 제공하는 모듈 관리 기능이다 둘 다 모듈을 만들어 내보내는 기능을 제공하는 키워드이다 javascript 객체를 다시 복습하던 중 객체에 프로퍼티가 있는지 확인하는 방법을 학습하게 되었다 그래서 프로젝트에 적용을 시켜보았는데 제대로 작동을 했다 객체 특정 프로퍼티가 있는지 없는지 확인하는 방법 기존 프로젝트에서 프로퍼티를 확인하기 위해서 type..
나의 개발일지 20220119 TIL(Today I learned) - 크롤링 Today I learned 오늘은 타입스크립트를 학습하면서 만들었던 포켓몬도감 사이트를 크롤링해서 JSON파일로 저장하는 실습을 하면서 크롤링을 학습했다 오늘 작업을 진행하면서 TimeOutError와 TypeError가 발생했다 waitForFunction을 사용해서 HTML 콘텐츠를 평가하게 만들었다 내가 원하는 엘리멘트가 생기고 평가할 수 있게 timeout옵션으로 5초를 설정했는데 크롤링을 진행하면서 엘리멘트가 5초로는 모두 생성이 되지 않아서 timeout 에러가 발생하는 듯 보였다 timeout을 10초로 늘려주고 테스트를 진행해보는 시도를 했다 10초로 늘려주니 대기시간은 많이 늘어났지만 정상적으로 크롤링을 실행했다 너무 많이 늘려준거 같아서 대기 시간을 줄이면서 에러가 나지 않는 대기 시..
나의 개발일지 20220118 TIL(Today I learned) - 데이터베이스, 타입스크립트 Today I learned 오늘은 데이터베이스를 이중화 작업을 한다는 가정을 하고 데이터베이스를 이중화하려면 어떤 식으로 해야 하는지 생각해 보고 공유하는 시간을 가지고 데이터모델링에 대해서 가볍게 학습했다 그리고 타입스크립트 학습을 진행했다 데이터베이스를 이중화하는 작업에서 내가 생각한 방법은 마스터 데이터베이스와 스탠바이 데이터베이스를 준비하고 일정한 시간이 지나면 스탠바이 데이터베이스가 마스터 데이터베이스를 싱크 하는 방식으로 생각했다 이렇게 이중화를 하면 정해진 시간 전에 마스터 데이터베이스가 다운이 된다면 스텐바이 데이터베이스는 씽크전의 데이터베이스를 가지고 있기 때문에 데이터손실이 발생한다고 생각을 했다 서로 아이디어를 공유하면서 제일 좋은 방법이라고 생각을 한 방법은 데이터베이스에 로그가 ..
나의 개발일지 20220117 TIL(Today I learned) - logging Today I learned 오늘은 프로젝트에 트랜젝션을 적용하는 작업과 logging을 시스템을 적용하기 위해서 작업을 진행했다 트랜젝션을 사용해보려고 트랜젝션을 학습하면서 우리 프로젝트 서비스는 트랜젝션을 사용할 서비스가 존재하지 않았다 그래서 트랜젝션은 트랜젝션이 어떠한 기능인지 학습만 하고 넘어갔다 그리고 logging 시스템을 작업을 진행했다 logger을 내보내기해서 logging 시스템이 필요한 부분에서 가져와서 사용한다 logger의 메서드 error를 사용해서 log파일을 남기면 로깅시스템 해결이다 발생한 에러가 잘 나오는 모습을 볼 수 있다. 오늘은 타입스크립트 인스턴스를 학습하고 트랜젝션의 필요성과 동작원리를 학습하고 node.js에서 logging시스템을 구성하는 방법을 알게되었다
나의 개발일지 20220116 TIL(Today I learned) - 실시간 주문 확인 Today I learned 오늘은 socket.io를 이용해서 프로젝트에 적용을 위해서 서버에 socket.io를 설정하고 주문이 들어왔을때 실시간으로 확인을 시켜주는 작업을 진행하는데 문제가 지속적으로 발생을 했다 처음에는 주문 생성하는 부분에서 모든 소켓에 접속해있는 모두에게 보내고 싶은데 응답이 없는 문제였다 이 문제를 해결하기 위해서 다음 코드와 같은 시도를 했다 connection이벤트를 발생하고 해당 소켓에 이벤트를 푸쉬를 했다 반응은 있었다 하지만 모든 소켓으로 메시지가 받아지지 않았고 보낸 메시지가 계속해서 받아지는 문제가 발생을 했다 하나의 문제를 해결했는데 더 많은 문제가 발생을 했다 이 문제를 해결하려고 여러가지 방법을 해봤지만 모두 실패를 했다 혹시 무언가 세팅을 잘못했다 싶어서 ..