일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- game
- MySQL
- JavaScript
- nodejs
- Nest.js
- TypeScript
- 공룡게임
- AWS
- Queue
- react
- 자료구조
- mongoose
- 게임
- class
- jest
- OCR
- nestjs
- MongoDB
- Python
- cookie
- Dinosaur
- GIT
- dfs
- flask
- typeORM
- 정렬
- Sequelize
- Express
- Bull
- Today
- Total
목록TIL (128)
포시코딩
TypeScript 기본적인 문법 말고 특수한 애들만 따로 공부를 더 해봤다. 튜플(Tuple) 튜플은 배열의 길이가 고정되고 각 요소의 타입이 지정되어 있는 배열 형식을 의미한다. const player: [string, number, boolean] = ["seonghun", 1, true] 열거형 - 이넘(Enum) 이넘은 특정 값들의 집합을 의미하는 자료형 타입스크립트에서는 숫자형 이넘과 문자형 이넘을 지원한다. enum Color {Red, Green, Blue} // 초기값이 없을 시 0부터 1씩 올라감 console.log(Color.Red); // 0 console.log(Color.Green); // 1 console.log(Color.Blue); // 2 let a: Color = Co..
회원인증방법 session-based 로그인 시 서버는 세션에 로그인을 했다는 정보를 저장하고 세션에 저장했다 라는 정보를 쿠키로 만들어 브라우저에게 전달 요청을 할 때 쿠키 데이터가 서버에 자동으로 전송됨 서버는 쿠키 안에 있는 세션 아이디를 바탕으로 저장되어 있던 세션 스토어에서 아이디를 갖고 찾음 아이디가 있다면 인증 완료 특징 사용자가 로그인 했다는 정보(세션)을 서버에 저장(장점이자 단점) token-based (JWT) 로그인 시 서버는 JSON Web Token을 발행해 브라우저에게 전달 브라우저는 (쿠키 or localStorage 등에 저장) 요청을 할 때 헤더에 웹 토큰을 같이 전송 서버는 웹 토큰이 유효한지 검증을 마치면 인증 완료 특징 서버에 유저들 로그인 상태를 저장할 필요 없음 ..
로그인 API의 Token 처리 before controller const response = await this.usersService.login(email, password); res.cookie('accessToken', response.accessToken); res.cookie('refreshToken', response.refreshToken); res.status(response.code).json({ message: response.message }); 기존에는 로그인 API 요청에 대해 모든 로그인 과정이 끝나면 백엔드에서 쿠키를 저장해줬었는데 쿠키를 생성하는 주체가 백엔드 서버가 되면 안된다는 피드백을 받았다. 프론트가 완전 분리 되어있다면 백엔드에선 쿠키를 만들어 전달하지 않습니다. ..
팀 스터디 개요 이전에 한 달 동안 구해조 팀에 있을 때 그 한 달을 따로 공부하는 기간 3주 + 팀프로젝트 기간 1주로 보냈는데 3주동안 거의 소통도 안하고서 팀프로젝트 기간으로 진입하고나니 팀프로젝트를 제대로 수행할 능력이 되지 않는 팀원들이 몇몇 있다는걸 깨달았다. 그 때는 깨닫게 된게 너무 늦어 부족한 팀원을 이끌 능력 부족 + 알려줄 시간 부족으로 인해 거의 방치하게 됐었다. 결과적으로 그 분들은 팀프로젝트에서 할 수 있는게 거의 없었고 팀 자체적으로도 4명중 2명이서만 프로젝트에 참여하는 상황이 발생해 매우 난감했었다. 때문에 새롭게 팀이 바뀌고 나서 바로 팀원들의 현재 수준을 파악했는데 마찬가지로 5명중 잘 못따라오는 분들이 계셨고 그나마 잘 하는 분들도 팀프로젝트에 앞서 어떤 부분에 대해 ..
throw & try/catch 예외처리(Exception Handling) 개요 지금까지 프로젝트를 진행하며 애매하면 무조건 try/catch로 감싸고 봤는데 그러다보니 정작 중요하게 예외처리를 해야되는 상황에서는 그러지 못하는 상황이 발생했다. 단적인 예로 살펴보면 다음과 같다. controller class OrdersController { ordersService = new OrdersService(); test = async (req, res) => { console.log('controller 진입'); try { const result = this.ordersService.test(); console.log('service 결과: ', result); if (result) { res.json..
JavaScript - Map 자료형 vs Object 자료형 Object 자료형 먼저 Map을 배우기 앞서 익숙한 Object 자료형에 대해 간단히 정리해보자 Object 자료형에 대해 key와 value를 얻으려면 아래와 같은 두가지 방법이 있다. Object.keys() const arr = {'a': 1, 'b': 2}; Object.keys(arr).forEach((key) => { console.log(key, arr[key]); }) // a 1 // b 2 for in const arr = {'a': 1, 'b': 2}; for (key in arr) { console.log(key, arr[key]); } // a 1 // b 2 Object.values() values만 따로 얻고 싶다..
JSON 클라이언트에서 서버로 데이터를 보낼 때 왜 string 타입을 지켜야하는지 정확하게 알지 못했다. 그냥 string으로 보내야 하니까 JSON을 쓰는구나~ 정도로만 당연하게 생각했는데 알고보니 어떤 서버가 있다고 치고 클라이언트가 해당 서버로 접속하려 할 때 javascript로 만들어서 javascript의 데이터 타입을 쓸 수도 있는거고 Go로 만들어서 Go의 데이터 타입을 쓸 수도 있는 상황이 생길 것이다. 그 때문에 서버에서 각 클라이언트 종류에 따라 대응하기 힘드니 하나의 통일된 string 값으로 받게 된 것이고 그걸 JSON으로 편하게 받게 점차 진화했다고 보면 되겠다. 물론 거꾸로 서버가 여러 언어일 경우에 대해 고려했을 때도 마찬가지다. MySQL 테스트 선발대반 진행에 앞서 M..
정규화, 역정규화 정규화 RDBMS를 관리하는데 있어서 꼭 해야하는 일로 정규화를 꼽을 수 있다. 여러 곳에서 공통적으로 쓰이는 값에 대해 중복을 제거하고 테이블 간의 relation을 만들어 사용하는게 그 예인데 이럴 경우 단점으로 join을 많이 써야 하는 상황에서 데이터 조회의 비용을 증가 시킨다. 그래서 나오게 된 것이 역정규화이다. 역정규화 개념에 대해서는 몰랐지만 나도 모르게 써본적은 있다. MongoDB를 처음 쓰게 되면서 배울 때 보통은 그룹 테이블에 유저 id만 명시해 해당 유저의 정보를 가져와야되는 상황에선 해당 id값으로 유저 테이블을 조회하거나 애초에 유저와 그룹 테이블간에 join을 해야 됐었는데 그냥 그룹 테이블에 유저 id를 넣을 때 유저의 기타 정보들 까지 다 때려 박는 형식..
Vanilla JS append(), prepend() 예제 1 let div = document.createElement("div"); let p = document.createElement("p"); let span = document.createElement("span"); div.append(p); div.prepend(span); console.log(div.childNodes); // NodeList [ , ] 예제 2 let div = document.createElement("div"); div.append("Some text"); div.prepend("Headline: "); console.log(div.textContent); // "Headline: Some text" 그동안 cre..
https://medium.com/@jwyeom63/더-이상-배우려-하지-않는-개발자-expert-beginner의-등장-dd40c40aeedf [번역]더 이상 배우려 하지 않는 개발자 : Expert Beginner의 등장 *이 글은 Erik Dietrich의 How Developers Stop Learning: Rise of the Expert Beginner를 번역한 글입니다. 모든 저작권과 권리는 Erik에게 있습니다. *This article is a… medium.com 오늘은 새롭게 배운게 아닌 어쩌면 내 앞으로의 인생에 있어서 도움이 될지도 모를 글을 읽게되어 정리해보고자 한다. 처음 이 글을 읽게 된 계기는 테스트 코드에 대해 정리하면서 테스트 코드를 아직도 쓰지 않는 개발자들과 그들처럼..