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..
The four Fs FACTS Node.js 심화 주차 원격 강의 완강 캐시 CS 특강 수강 새 팀 프로젝트 시작 및 S.A 작성 FEELINGS 입문, 숙련 주차는 정말 할만 했었는데 심화 주차에 들어오자마자 큰 고비를 느꼈다. 아키텍쳐 구조와 테스트 코드에 대한 내용들이 생각보다 머리에 잘 들어오지 않았다. 계속 반복 학습하며 프로젝트 적용할 수 있도록 해야할 것이다. 팀원분들도 다들 같은 어려움을 겪고 있는 것 같아 프로젝트에 걱정이 많지만, S.A를 작성하며 계획을 하다보니 기대가 되기도 한다. FINDINGS 객체지향 프로그래밍, 3계층 아키텍쳐 패턴, 테스트 코드에 대한 이해 캐시에 대한 이해 체계적인 S.A 작성과 역할분담, GitHub와 DB 세팅을 수월히 진행하게 됨 FUTURE 이번 ..
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..
The four Fs FACTS Node.js 숙련 주차 과제 수행(MongoDB, MySQL 활용한 Node.js 백엔드 서버 구현 연습) 디자인 패턴 CS 특강 수강 FEELINGS 처음엔 꽤나 막막했던 과제였으나 또 어떻게 어떻게 마무리해서 제출까지 할 수 있었다. 배운것은 많았지만 아직까지도 강의 내용에서 크게 벗어나거나 응용하지는 못하는 수준이라고 생각된다. 더 적극적으로 관련 기술에대해 탐색해보는 시간을 가져야겠다. FINDINGS 관계형 데이터베이스의 1:1, 1:N, N:M 관계에 대한 이해 Swagger와 같은 프레임워크를 이용한 API 관리에 대한 이해 디자인 패턴에 대한 이해 FUTURE 저번주, 이번주 배운 내용을 탄탄하게 복습해서 다음주 학습도 무난히 마칠 수 있도록 할 것이다. ..
디자인 패턴 CS 특강 문제점 처음 접하게 된 개념.. 이후 다시 재정리 해야함! 각 패턴 예시들을 상세히 공부해볼 것 알게 된 점 생성(Creational) 패턴 객체 생성에 관련된 패턴 중요!: 추상 팩토리(Abstract Factory), 싱글턴(Singleton) 구조(Structural) 패턴 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴 행위(Behavioral) 패턴 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴 Node.js 숙련주차 과제 리뷰 알게 된 점 토막상식) 클라우드 서비스의 종류 IaaS(Infrastructure as a Service): 스토리지, 네트워킹 및 컴퓨팅 리소스를 제공하는 서비스 PaaS(Platform as a Service): 애플리케이션 및 ..
- Total
- Today
- Yesterday
- 5597
- 26069
- 2587
- 항해 플러스
- 17103
- 24313
- 24723
- 20920
- 코육대
- 2053
- 4134
- programmer
- 25501
- 백준
- 24060
- 벡준
- 1269
- 13909
- Python
- til
- 2738
- 25192
- SQL
- 10807
- 2903
- Programmers
- MySQL
- 항해+
- 13241
- Wil
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |