일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JWT
- westagram
- pm2
- django westagram
- crud2
- async/await
- 호이스팅
- 스코프
- 장고초기세팅
- Django
- Jest
- node
- on_delete
- bcrypt
- docker
- 프로미스
- wecode
- 노드
- TypeError: this.boardRepository.createBoard is not a function
- status code
- rebase
- nodeJS
- 트랜잭션
- javascript
- manytomanyfield
- CORS
- OSI7계층
- 자바스크립트
- 실행 컨텍스트
- typescript
- Today
- Total
목록전체 글 (190)
될때까지

어허 테스트코드 만만치않아..?! 로그인 성공 시 토큰을 보내준다. 해당 기능을 확인하는 테스트 코드를 작성하다가 맞딱드린 문제. 토큰을 추출까진 했는데..? 예측하기론 뭔가 JSON 파싱? 인코딩? 그런 게 안된 것 같은데 JSON.parse를 중간에 추가해도 안되고 계속 undefined라고 뜬다 도대체 왜그러는거야 구글링, jest공식사이트 모두 살펴봤지만 나와 같은 상황이 없다.. 이것 저것 다른 메소드를 적용해봐도 계속 뜨는 빨간색 에러.. 뭘까 어떻게해야할까 스택오버플로우에 물어봐야겠드아.. 답변달아주세요 🙏🙏 [2022.10.1 토요일] 아무리 생각해도 뭔가 JSON이 string으로 전환이 안된 것 같았다. 그래서 파싱코드를 추가해봤다. token이라는 변수에 그럼 string형태로 {"t..

Unit Test 용어 TestCase : Unittest Framework의 테스트 조직의 기본 단위 Fixture : 테스트를 진행할 때 필요한 테스트용 데이터 혹은 설정 등을 이야기한다. 주로 테스트가 실행되기 전이나 후에 생긴다. Assertion : Unittest에서 테스트하는 부분이 제대로 됐는지를 확인하는 부분이다. 자바스크립트 테스트 프레임워크 : jest, enzyme, mocha 1. 먼저 server.js와 app.js 분리하기 테스트코드를 만들 때 서버는 필요없고 앱만 필요하다. 앱의 routers나 미들웨어 관련 코드는 server에 남겨두고 app을 리턴하는 createApp함수만 app에 생성해주자. 테스트 단계에서는 테스트용 request를 활용하기 때문에 서버를 구동시킬 ..

테스트코드를 작성하기 위해 jest를 설치했다. npm i jest test폴더를 만들고 폴더안에 테스트 코드를 작성하고 jest를 실행했는데 npm test 아래와 같은 노랑이가 나타났다. 테스트를 실행하고 나서 JEST가 종료됐으면 좋겠는데 안꺼지는 상황. 해당 경고문(?)을 살펴봤더니 "Consider running Jest with `--detectOpenHandles` to troubleshoot this issue." 저 옵션이 무엇인고 찾아보자 => JEST --detectOpenHandles Attempt to collect and print open handles preventing Jest from exiting cleanly. Use this in cases where you nee..
🔥 관심사의 분리와 레이어드 패턴 정리 포스팅 참고 🔥 레이어드의 의존성 순서 app -> router -> controller -> service -> models 순으로 갈수록 데이터베이스의 접근에 가까워진다. 각 파일에서 export한 모듈들을 어떤 파일에서 require해서 사용하고 있는 지 흐름을 읽어보면 상위에서 하위 레이어로만 의존하는 걸 알 수 있다. app.js : express app으로 서버를 생성한다. express app 인스턴스를 생성하고 필요한 미들웨어를 붙이는 로직이 들어간다. routes : 라우팅 로직 controllers : http 요청에 따른 에러 핸들링 및 서비스 로직에서 데이터를 받아와 응답으로 내보낸다. services : 컨트롤러에서 넘겨받은 인자로 다양한 ..
🧚🏻♂️ 관심사의 분리 하나의 파일에 모든 코드를 다 작성하는 경우를 스파게티 코드라고 한다. 스파게티 코드의 단점은 하나의 기능만 수정해야하는데 다른 코드들이 연결되어 있어서 영향을 받을 가능성이 크다는 점이다. 코드가 많아지면 가독성이 떨어지는 것도 단점이다. 코드를 역할에 따라 파일을 분리하는 데, 주로 아래와 같은 기준으로 나눈다. HTTP Request/Response 처리 Business Logic 처리 Database 통신 처리 분리된 구조로 코드를 구현하면 코드의 가독성과 확장성이 높아진다. 또 파일에 작성된 코드들의 목적과 범위가 명확하기 때문에 구조를 파악하기에도 용이하다. 이렇게 주된 역할과 집중해야하는 기능을 분리해서 서로 다른 기능을 하는 파일은 신경쓰지 않도록 하는 것을 "Se..
Object.entries() : [키, 값] 쌍의 배열을 반환 => [["key1", "value1"], ["key2", "value2"]] Object.entries().forEach() : 배열 안의 요소 하나하나씩을 돌겠다 =>["key1", "value1"], ["key2", "value2"] app.post('/login', async (req, res) => { // PART 1 : request body check const {email, password} = req.body; const hasKey = { email : false, password : false}; const requireKey = Object.keys(hasKey); // req.body = { // email : "o..

자바스크립트 스터디 2번째 주제는 '실행 컨텍스트'다. 해당 개념은 파이썬을 공부할때도 접해본 적이 없었던 것 같은데.. 더욱 생소하게 다가왔다. 코어 자바스크립트 책을 읽기 전에, 생활코딩과 같은 여러개의 유튜브 영상을 시청하며 감을 잡고 있었는데 우아한 테크코스 테코톡에서 실행 컨텍스트 개념을 아주 잘 설명해줘서 해당 내용을 블로그에 정리해보려고 한다. => 하루의 실행 컨텍스트 🔥 자바스크립트엔진이 코드를 실행하는 방법 1. 자바스크립트 코드를 실행시키면 자바스크립트 엔진은 '콜 스택'이라는 통에 전역 실행컨텍스트를 담는다. 2. 실행 컨텍스트니까 Record와 Outer가 담겨있다. 3. 전역에서 함수 A를 호출하면 함수 A의 실행 컨텍스트를 생성하고 콜 스택에 담는다. 4. 함수 A에서 함수 B..
배열에 담아 반환되는 쿼리의 실행 결과, 깔끔하게 코드에 적용하기 const user = await myDataSource.query(` select id, email, nickname, password from users where email = ?`, [email]) console.log('user', user) 해당 query의 결과 user를 콘솔에 찍어보면 아래와 같이 배열에 담겨서 반환된다. user [ { id: 1, email: 'codekim@justcode.co.kr', nickname: 'codeKim', password: 'c0dek!m' } ] 배열안에 객체로 담겨서 반환되기 때문에 유저의 유무를 체크할 때도 .length === 0을 사용해서 비교했다. // 없다 => 없는 유저..
🎉 ORM ( Object Relational Mapping) 객체지향 프로그래밍과 관계형 데이터베이스 사이의 호환되지 않는 데이터를 변환해준다. 그래서 우리는 프로그래밍 언어만으로도(자바스크립트, 파이썬) 데이터 베이스 내부의 자료 속성에 접근할 수 있다. [장점] SQL문을 작성하지 않아도 되기 때문에 개발의 생산성이 향상된다. 이미 짜여진 SQL문을 ORM이 자동 생성해주기 때문에 관련 쿼리문 작성 버그나 실수가 잦아진다. [단점] raw query에 비해 실행 속도가 느리다. ORM이 선언한 SQL쿼리의 미세한 수정이나 디버깅이 어렵다. ORM으로 표현 못하는 쿼리가 존재한다. => 특정 ORM에 익숙해지면 다른 ORM 사용시 또 처음부터 익혀야하는 비용이 발생한다. 따라서 SQL문을 완벽히 이해..
프로그래밍 패러다임(Programming Paradigm)이란? 패러다임이란 '한 시대의 사람들의 견해나 사고를 근본적으로 규정하고 있는 인식의 체계. 또는 사물에 대한 이론적인 틀이나 체계'를 말한다. 위키피디아에 나온 이 뜻이 너무 어려워 다른 기고를 참고했다. 여기서는 '사물을 보는 방법, 문제를 삼는 방법, 문제를 푸는 방법의 총체'를 패러다임이라 일컫는다. 어떤 시대적 상황이나 현실을 바라보는 여러 종류의 인식의 틀 하나 하나를 패러다임이라고 할 수 있다. 💡 그렇다면 프로그래밍 패러다임이란? 프로그래머가 프로그래밍 관점을 갖게 하고 코드를 어떻게 작성할 지 결정하는 역할을 한다. 프로그래밍 하기 위한 방법/전략, 프로그래밍 스타일, 소프트웨어를 "어떻게" 구성해서 코딩할지 생각하는 방법이라 이..