본문 바로가기

전체 글33

엘리스트랙 7주차 후기 1. 학습 내용 2. 느낀점 및 피드백 1. 학습내용 [게시판 CRUD 제작], [회원가입 및 로그인 구현], [JWT, Nginx] 등을 학습했다 2. 느낀점 및 피드백 실전 프로젝트 들어가기 직전 주(사실 지금 진행중)의 내용이라 그런가 확실히 난이도가 있었지만, 배우는 것들이 확실히 "아 이건 쓰겠다", "바로 접목시켜야겠다" 싶은 내용들이 많았다. 게시판 crud의 경우 사실 다 아는 내용이라 복습하는 느낌이었지만, 페이징 처리에 있어서는 확실히 어려웠다. 쇼핑몰 사이트를 개발하는데 있어 페이징은 필수적이라서 알아둬야 하지만, 사실 강의를 다 들은 입장에서 "해봐"하면 할 자신이 없다. 아무래도 프로젝트를 하면서 틈틈히 강의를 다시 참고하거나 구글링을 해야하지 않을까 싶은 부분이었다... 2023. 10. 4.
async/await은 blocking이 아닐까? (비동기 처리 고찰) 1. 의문이 든건 아래의 코드에서부터. router.get('/', async (req, res) => { const datas = await books.find({}) res.json(datas) }) books.find({})를 통해 books에서 모든 데이터를 가져오는걸 "기다렸다가" json으로 보내라는 코드이다 기다렸다가...? node.js는 싱글스레드 기반이니까 blocking인가보다. 2. 근데 js는 싱글 스레드 + 논블락킹이라며? 별 생각 없이 넘어가려했는데.... 흔들리지 않는 개념이 있었다. "js는 싱글스레드 + 논블락킹"이라는 것. 근데 저건 blocking아닌가? 찾다보니 하나의 글을 읽을 수 있었다. https://medium.com/geekculture/does-async-.. 2023. 9. 21.
백준 25192번 [인사성 밝은 곰곰이] const input = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n') const [n, ...test] = input const hashSet = new Set(); let answer = 0; test.map((str) => { if(str == "ENTER"){ answer += hashSet.size hashSet.clear() } else{ hashSet.add(str); } }) answer += hashSet.size console.log(answer) 문자열과 나온 횟수를 map으로 풀려고 시도하다가 set으로 접근하니까 쉽게 풀렸던 문제 2023. 9. 21.
백준 17219번 [비밀번호 찾기] const input = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n') const [n, m] = input.shift().split(' ') const map = new Map() for(let i=0; i 2023. 9. 19.