findOne vs findAll 문제점 Sequelize의 쿼리 method 중 데이터 조회시 findOne 혹은 findAll을 사용하는데 이때 조회할 데이터가 없는 경우 두 방식에서 차이가 생긴다. findOne은 null을 findAll은 {}를 반환한다. null이 반환되는 경우 service나 controller 계층에서 잘 모르겠는 오류가 발생한다. 시도해본 것들 굳이 findOne을 쓰지 않고 findAll을 사용한다. findOne을 쓰면서 repository 계층 내에서 if문을 통해 데이터가 없는 경우 {}를 반환하도록 한다 해결 두번째 방식으로 해결했다. 알게 된 점 Sequelize의 쿼리로 조회하는 방식에 저런 차이가 있다는 것을 알게 되었다. 하지만 근본적인 해결책은 아닌 것 ..
JWT 토큰 프론트에서 활용 문제점 로그인시 JWT토큰을 생성하고 미들웨어에 활용하는 법을 익혔으나, 프론트와 백엔드를 연결할 때 이를 이용하지 못함 시도해본 것들 쿠키를 이용해서 해보기?, 새로운 미들웨어를 만들어보기, ... 해결 프론트의 script 부분에서 localstorage를 이용하여 로그인, 로그아웃을 구현하고, header 값을 주어 미들웨어를 사용할 수 있게 함 로그인 if (localStorage.getItem("token")) { getSelf(function () { alert("이미 로그인이 되어있습니다."); window.location.replace("/"); }); } function sign_in() { let nickname = $("#nickname").val(); l..
Node.js 심화 프로젝트 시작 문제점 팀원들과 함께 계획을 수행하면서 아직 부족한 부분들에 대해 어떻게 해야할지 걱정이 많았음 시도해본 것들 튜터님께 질문(해주신 희서님께 감사드립니다.) 알게 된 점 당장 배운걸(3계층 아키텍쳐, 테스트 코드) 바로 처음부터 적용하는 것은 이상적이지만 꼭 그럴필요는 없다. 기존 방식 대로 열심히 만들다가 어느 정도 만들어진 뒤에 합치면서 리팩토링을 수행하고 이 때 아키텍쳐 구조를 적용시키면 된다. 테스트도 마찬가지. 또한, 이제 몽땅 합치는 것이 아니라 각 기능별로 나뉘어지는 것을 원하기 때문에 오히려 좋다! 작성중인 팀 노션 페이지 프로젝트 문서(제출용) 1. 프로젝트 소개 www.notion.so
Node.js 심화주차 원격 강의: Javascript 테스트 프레임워크 Jest 테스트 코드 작성을 위한 jest 세팅 1. jest 모듈 설치 npm init -y npm i jest -D 2. package.json 파일 수정 → npm test 명령어로 쉽게 jest 실행 가능 { ... "scripts": { "test": "jest" }, ... } 3. 테스트 코드를 작성할 파일 생성 일반적으로 "테스트할파일이름.spec.js"로 네이밍 프로젝트 디렉토리 예시
Node.js 심화주차 원격 강의: 계층형 아키텍쳐 패턴 알게 된 점 대표적인 아키텍처 패턴: 저장소 패턴/ 서비스 계층 패턴/ 작업 단위 패턴/ 애그리게이트 패턴 아키텍처 패턴을 도입할 때에는 이익과 비용에 대해 확실한 이유가 있어야함(어플리케이션과 도메인이 충분히 복잡한 경우에 활용) 계층형 아키텍처 패턴 어떤 경우에서도 계층을 분리하여 유지하고 바로 아래 계층에만 의존하게 함 계층화의 핵심은 높은 응집도(Cohesion)와 낮은 결합도(Coupling) 3계층 아키텍처 패턴 프레젠테이션 계층 (Presentation Layer) 비즈니스 로직 계층 (Business Logic Layer) 데이터 엑세스 계층 (Data Access Layer) 처리 과정: Client의 Request → Contro..
시스템 설정 관련 에러 문제점 typescript로 예시를 따라해보는 중 "이 시스템에서 스크립트를 실행할 수 없으므로 ~~ 파일을 로드할 수 없습니다." 라는 에러가 발생함 시도해본 것들 처음부터 다시 해보기, 구글에 에러 그대로 검색 해결 Windows Powershell을 이용한 시스템 설정 변경 1. Get-ExecutionPolicy -> Restricted 임을 확인 2. Set-ExecutionPolicy RemoteSigned로 설정 변경 *RemoteSigned: 로컬에서 본인이 생성한 스크립트와, 신뢰할 수 있는(서명된) 스크립트 파일 실행 가능 알게 된 점 단순 코드 문제가 아니라 시스템 설정으로 인해 에러가 발생할 수도 있다!
Prettier 사용법 문제점 항상 일정한 코드 포맷을 만들고 싶다 협업 시 팀만의 코드 포맷이 필요하다 시도해본 것들 그동안 생각만 해보았지 툴을 찾아보려고 하지 않았다.. 해결 Prettier 플러그인을 활용한다 알게 된 점 // .prettierrc.js module.exports = { trailingComma: 'es5', // 코드 맨 뒤에 콤마(,)를 붙일수 있는 경우 ES5에서 허용되는 부분까지만 붙임 tabWidth: 2, // 들여쓰기 한번에 2만큼의 스페이스로 구성 semi: true, // 코드 뒤에 세미콜론을 붙임 (코드 맥락 파악에 중요) singleQuote: true, // 문자열 표기 시 외따옴표 사용 (편의성이 좋음) arrawParens: 'always' // Arrow..
디자인 패턴 CS 특강 문제점 처음 접하게 된 개념.. 이후 다시 재정리 해야함! 각 패턴 예시들을 상세히 공부해볼 것 알게 된 점 생성(Creational) 패턴 객체 생성에 관련된 패턴 중요!: 추상 팩토리(Abstract Factory), 싱글턴(Singleton) 구조(Structural) 패턴 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴 행위(Behavioral) 패턴 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴 Node.js 숙련주차 과제 리뷰 알게 된 점 토막상식) 클라우드 서비스의 종류 IaaS(Infrastructure as a Service): 스토리지, 네트워킹 및 컴퓨팅 리소스를 제공하는 서비스 PaaS(Platform as a Service): 애플리케이션 및 ..
Node.js 숙련주차 개인과제 - ERD 작성 시도해본 것들 직접 작성..? 사이트 이용 https://drawsql.app/ https://www.erdcloud.com/ 해결 Dbeaver 프로그램 내 엔티티 관계도 이용 알게 된 점 프로젝트 설계단계에서는 각종 웹사이트를 이용해서 대략적으로 ERD를 작성해보는 것이 좋고, 프로젝트 완료 후 db를 ERD로 표현하고자 할 때에는 Dbeaver와 같은 DB 관리 도구를 이용하면 좋다. Node.js 숙련주차 개인과제 - 배포 문제점 1. 기억이 안 나...!! 2. 포트가 바뀌었다 해결 배포 과정 복습 1. 모듈 설치 npm install 2. AWS에서 보안규칙 변경 → 8080번 포트 추가 3. iptables 규칙 변경 (80 → 8080) su..
Sequelize사용 시 create, findAll, findOne, update, destroy 활용 await Comment.create({ postId: _postId, userId, comment }); await Comment.findAll({ attributes: ['commentId', 'userId', 'comment', 'createdAt', 'updatedAt'], include: [ { model: User, attributes: ['nickname'] } ], where: { postId: _postId }, order: [ ['createdAt', 'DESC'] ], }); await Comment.findOne({ where: { commentId: _commentId }}) ..
- Total
- Today
- Yesterday
- 13909
- SQL
- 24060
- 26069
- 20920
- 4134
- MySQL
- 24313
- 백준
- 13241
- 1269
- 코육대
- 2053
- 25192
- 2738
- programmer
- 2587
- 24723
- 25501
- 5597
- 항해 플러스
- Python
- 10807
- 벡준
- Programmers
- Wil
- 항해+
- til
- 2903
- 17103
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |