일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TypeError: this.boardRepository.createBoard is not a function
- 호이스팅
- status code
- async/await
- westagram
- javascript
- crud2
- nodeJS
- pm2
- OSI7계층
- 트랜잭션
- Jest
- django westagram
- bcrypt
- rebase
- manytomanyfield
- typescript
- 스코프
- wecode
- 노드
- node
- JWT
- CORS
- 프로미스
- on_delete
- 실행 컨텍스트
- Django
- docker
- 장고초기세팅
- 자바스크립트
- Today
- Total
목록프로젝트 (92)
될때까지
Unit Test 용어 TestCase : Unittest Framework의 테스트 조직의 기본 단위 Fixture : 테스트를 진행할 때 필요한 테스트용 데이터 혹은 설정 등을 이야기한다. 주로 테스트가 실행되기 전이나 후에 생긴다. Assertion : Unittest에서 테스트하는 부분이 제대로 됐는지를 확인하는 부분이다. 자바스크립트 테스트 프레임워크 : jest, enzyme, mocha 1. 먼저 server.js와 app.js 분리하기 테스트코드를 만들 때 서버는 필요없고 앱만 필요하다. 앱의 routers나 미들웨어 관련 코드는 server에 남겨두고 app을 리턴하는 createApp함수만 app에 생성해주자. 테스트 단계에서는 테스트용 request를 활용하기 때문에 서버를 구동시킬 ..
🔥 관심사의 분리와 레이어드 패턴 정리 포스팅 참고 🔥 레이어드의 의존성 순서 app -> router -> controller -> service -> models 순으로 갈수록 데이터베이스의 접근에 가까워진다. 각 파일에서 export한 모듈들을 어떤 파일에서 require해서 사용하고 있는 지 흐름을 읽어보면 상위에서 하위 레이어로만 의존하는 걸 알 수 있다. app.js : express app으로 서버를 생성한다. express app 인스턴스를 생성하고 필요한 미들웨어를 붙이는 로직이 들어간다. routes : 라우팅 로직 controllers : http 요청에 따른 에러 핸들링 및 서비스 로직에서 데이터를 받아와 응답으로 내보낸다. services : 컨트롤러에서 넘겨받은 인자로 다양한 ..
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..
배열에 담아 반환되는 쿼리의 실행 결과, 깔끔하게 코드에 적용하기 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문을 완벽히 이해..
intro kakao oauth2 개념 정리하기 노드 세션 2번까지 시청하기 인스타그램 진행하던 프로젝트 READ, UPDATE, DELETE 기능 구현하기 노드 프로젝트 초기 셋팅은 지난달에만 20번 넘게 해봤다.. 두달배웠다고 장고 전문가는 아닌데 장고와 전혀 다른식의 동작방식이 이해하기 참 어려웠다. 1차 프로젝트 리빌딩도, 솔직히 다른 사람 코드를 보면서 따라쳤을 뿐, 왜 그런 코드가 필요하고 컨트롤이 아닌 서비스에서 작성해야하는지 정확히 몰랐다. 그래서 개념정리를 하기 위해 인스타그램을 혼자 만들고 있었는데 하길 잘했다 싶다. 전문적이진 아니지만.. 그래도 API를 만들 수 있다는 자신감이 생겼다. 오늘부터는 프리온보딩 백엔드를 위한 노드 영상이 주어졌다. 내가 몰랐던 ORM 개념이 등장하고 또..
intro 항상 느끼지만.. 기본문법은 참 재미없다 사실인걸.... 💡 날짜 new Date()를 호출하면 새로운 Date 객체가 생성된다. 인수없이 호출하면 현재 날짜와 시간이 저장된 Date 객체가 반환된다. const rightNow = new Date(); console.log(rightNow); // 2022-09-19T09:00:50.835Z // 아래와 같이 날짜,시간,월의 값을 가져올 수 있다. const rightNow = new Date(); const year = rightNow.getFullYear(); const month = rightNow.getMonth() + 1; const date = rightNow.getDate(); const day = rightNow.getDay()..
intro 할게많아졌다. 월/목은 CS스터디를 하기로 했고 화/금은 자바스크립트 스터디를 하기로 했다. 오늘까지 과제였던 이력서도 작성해서 위코드 과제로 제출했다.. 정신없이 흘러가겠다 싶었는데 10월부터 시작한든 프리온보딩 백엔드 과정도 신청했다. 아무래도 위코드에서는 파이썬, 장고로 프로젝트를 진행했기 때문에 노드를 더 공부하고싶었는데 잘됐다 한달만 더 공부하자 싶었다. 빨리 취직하고 싶지만, 공부진행하면서 취준 같이 진행하면된다!! 주 목적을 잊지말자 백엔드 개발자 아자아자! 사전 스터디로 자바스크립트 레플릿을 안내받았다. 10월 4일부터 백엔드 과정이 시작이라 시간이 별로 없다..!! 지금 인스타그램 만들기도 진행중인데, 넷 다 하려면 정신없겠다(CS스터디, 자바스크립트 스터디, 레플릿, 인스타..
Docker란? .Dockerfile 만들기 # 어떤 이미지로부터 새로운 이미지를 생성할건가? FROM node:16.16.0 # 워킹 디렉토리 설정 WORKDIR /usr/src/app # Docker를 실행할때 패키지에 대한 정보를 이미지로 저장한다 COPY package*.json ./ # npm install 명령어로 디펜던시를 설치하기 RUN npm install # 현재 경로에 있는 모든 파일을 이미지로 저장하겠다. COPY . . # PORT 연결하기 EXPOSE 4000 # 컨테이너에서 실행될 명령어 CMD ["npm", "start"] FROM node:16.16.0 어떤 이미지를 사용해서 빌드할것인지 명시 -> node:16.16.0 이미지를 base image로 사용하겠다. WORKD..
pm2란? process manager의 약어로 node.js로 만들어진 프로그램의 프로세스 관리를 편하게 할 수 있도록 도와주는 패키지다. node.js로 기능구현을 마친 뒤 해당 프로젝트를 실제 서비스로 운영하려고 할 때 데몬 프로세스를 사용해 서버를 구동시킬 수 있는데 nohup, forever, pm2 등 여러 패키지가 존재한다. 이 중 점유율이 높은 pm2를 사용해보자. pm2 사용하기 1. pm2를 설치하기 (-g옵션을 사용해서 전역 설치를 해야지 실행명령어로 사용할 수 있다.) npm install pm2 -g 2. pm2 실행하기 (서버 소스코드가 작성되어있는 파일을 실행시킨다) pm2 start 3. 실행중인 리스트 확인하기 pm2 list 4. pm2 정지하기 pm2 stop 5. ..