일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정보처리기사실기
- 중학수학
- html/css
- 연습문제
- JSP/Servlet
- 머신러닝
- 자바스크립트
- JSP
- 혼공머신
- 디버깅
- 자바스크립트심화
- 데이터분석
- 오블완
- rnn
- 중학1-1
- 컴퓨터비전
- 정보처리기사필기
- 자바 실습
- c언어
- SQL
- 개발일기
- 데이터베이스
- 컴퓨터구조
- 딥러닝
- 순환신경망
- CSS
- 상속
- JDBC
- 자바
- 파이썬
- Today
- Total
목록비동기 (9)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
남은 실습 문제와 미션 문제를 마저 풀어보겠다. 실습 7 - Promise 작성과 사용 문제 풀기 세미콜론을 찍으면 오류가 나기도 한다. 어디서인지는 잘 모르겠지만 .으로 시작하는 괄호에 찍을 때인 것 같다. 미션 : async - await 사용하기 promise가 연쇄적으로 나오는 문제가 발생했다. 우리는 여기서 async와 await을 사용해 깔끔한 코드를 작성해볼 것이다. 문제 풀기 async 키워드를 사용해 선언하고, 앞에서 Promise.all을 가져온 후 기다리라는 뜻의 await를 넣어준다. promise의 경우 명령이 연쇄적으로 나오지만, async는 명령을 구분해서 작성하게 된다. await을 붙임으로 순차적으로 실행함을 보여준다. 학습을..
이번에는 Node.js가 무엇인지 살펴볼 수 있는 시간이 될 것 같다. 1주 차에는 이론 수업 위주로 진행된다. 이론 2 - Node.js의 특징 한번 실행하고 기다리려면 시간이 걸리므로 하나의 동작을 세 번으로 나누어 한번에 실행하는 것이다. node.js는 싱글 스레드이다. 비동기가 가능한 이유는 일을 자신이 하지 않고 시키는 방식이기 때문이다. 그렇기에 작업이 끝나기를 기다릴 필요가 없다. 동기 방식에서는 실행하고 완료할 때까지 CPU만 소모되며 낭비된다. 자바스크립트에서는 단일 스레드를 사용하여 이러한 낭비를 줄인다. 결과가 왔을 때 이벤트가 실행된다고 보면 된다. 퀴즈 2 - Node.js의 특징 문제도 잘 풀었다. ..
실습 문제만 풀면 이 단원 학습도 마치게 된다. 오늘 저녁도 안 먹고 잠을 잤더니 배가 무척 고프기는 하지만 그래도 공부를 해볼 것이다. 실습 4 - 유저 정보 요청하여 변환하기 App.js index.html index.js User.js 문제 풀기 1. 유저 정보를 변환하는 함수 작성하기 또는 이렇게 작성해도 된다. 유저를 거르는 필터 함수를 받는다. 2. transformUser 함수 작성하기유저 이메일 정보 등을 변환하는 정보를 작성한다. 실행해보니 앱이 작동되지 않아 코드를 수정해보았다. 변수 이름과 함수 이름을 잘못 쓴 부분이 있었다. 3. 코드 수정하기 4. 코드 실행하기 데이터가 이렇게 요청되었다. 모두 40세 이상의 유저를 받을 수..
API의 다른 형태인 fetch API에 대해서 공부해보겠다. 이론 6 - Fetch API for문을 통해서 header의 정보를 얻을 수 있다. promise를 사용하지 않고 .json을 사용하는 것은 이와 같다. 이런 식으로 fetch 데이터를 활용해서 통신할 수 있다. 퀴즈 6 - Fetch API 학습을 마치고조금 전에 7시 다 되어서 6시 40분이었나 아무튼 그쯤이었는데 너무 졸리고 피곤해서 밥 먹을 기운도 없어 낮잠을 자게 되었다. 근데 계속 자다가 금방 전화가 와서 깼다. 그리고 오늘 공부할 게 조금 남아있던 참이라 일어나서 학습을 마무리해본다. 강의를 듣다 너무 피곤해서 학습일지를 쓰다 말았다.배는 고프지만 머리는 맑아서 참 ..
다시 이어서 비동기 공부를 시작해본다. 요즘 들어 공황장애가 다시 심해졌는지 외출을 한번 할 때마다 너무 힘들다. 어제도 그제도 버스나 지하철 타면 숨이 막히고 하늘이 노래져서 정말 힘든 시간을 보냈다. 오늘도 같은 증상을 느끼며 길에서 쓰러지지 않으려고 호흡을 하며 정신줄을 놓지 않으려고 애를 썼다.지금도 많이 힘들지만 그래도 아주 천천히 공부를 해볼 생각이다. 그러다가 너무 힘들면 쉴 생각이다. 이것 외에도 지금 몸의 다른 증상이 있어 걱정이 많이 된다. 아무튼 몸이 병이 날 정도로 열심히 개발 공부를 했다는 증거니 스스로가 자랑스럽기는 하다. 예전에 발레리나 강수지가 그런 말을 했던 기억이 난다. 저녁에 발이 아프지 않다면 그건 연습을 열심히 하지 않았다는 거라고..그래서 난 한편으로는 감사하고 기..
점심을 먹고 눈 찜질도 하고 쉬었다가 이제 4시가 다 되어 오후 공부를 시작해본다. 오후에도 3시간 정도 열심히 공부할 생각이다. 2시간만에 3주차 학습을 마치고 자바스크립트 마지막 날 두 교시 분량의 수업도 절반 이상 마치는 것이 이번 오후 공부의 목표이다. 이론 4 - async/ await 원래는 .then(), .catch()를 사용하는데 await 키워드를 사용하면 then에서 data를 받을 수 있다. fatchData2를 호출하는 경우에 fatchData3를 바로 실행하지 않고 fatchData2가 promise로 리턴된다. promise가 성공 혹은 실패가 될 때까지 제어를 멈추게 된다. 따라서 비동기 코드의 순서를 부여하는 것은 promise와 같다. ..
식사를 기다려며 한 가지 단원을 더 공부하기로 했다. 강의가 조금 길지만 그래도 이것까지는 공부를 마쳐볼 것이다. 점심에 고구마를 찌려고 다듬고 기다리는 중이다. 작은 요리라도 해보면 한 끼 식사의 감사함을 느낄 수 있다. 이론 3 - Promise 실행 결과를 보면 Promis의 처리가 더 먼저 되는 것을 알 수 있다. new Promise를 사용할 수도 있고, 비동기 처리를 반환하는 fetch()를 사용할 수도 있다. promise에는 상태를 나타내는 flag가 있다. 성공의 경우 then, 실패할 때는 catch가 호출된다. 콜백 함수는 executor라고 한다. 이 코드는 0~1 값 중에서 0.5보다 작은 때는 실패는 그 외에는 성공을 호출한다. 이렇게..
이번에는 이벤트 루프에 대해서 공부해 보겠다. 이론 2 - 이벤트 루프 타이머 끝에 실행되거나 인터벌 간격으로 코드를 처리하는 경우가 있다. 메인 스레드는 콜 스택을 이용해서 코드를 읽고 실행한다. 콜스택에서 함수 안에 함수를 호출하는 경우 함수가 스택에 쌓이게 된다. 이렇게 실행 컨텍스트가 쌓이게 된다.비동기에서는 10초 후에 setTimeOut이 종료되면 Task queue로 들어간다. 이벤트 루프가 하는 일은 Task queue에 task가 남아있다면 이벤트 루프를 통해 task를 Call stack에 넣고 코드를 실행한다. 내부적으로는 콘솔이 실행된다. request()를 만나면 resquest 를 호출한다. Task queue에 ..
조금 전까지 1시간 반 동안이나 새벽에 해결하지 못한 문제를 다시 풀어보았으나 여전히 해결하지 못해 그냥 넘어가기로 했다. 나중에 풀 수 있는 때가 있을 것이다. 때로는 안 풀리는 문제가 있을 때 넘어가는 것도 좋은 방법이다. 그래도 3문제 중에서 한 문제는 해결했다.이제 3주차 새로운 단원 학습을 시작해 본다. 이론 1 - 자바스크립트 제어 흐름 자바스크립트 코드는 1번부터 순차적으로 실행되는 것은 아니다. 예를 들어 함수가 선언되고 실행 문장은 17번째 줄에 있다고 해서 코드는 이 순서를 왔다갔다 하면서 실행한다. 비동기 흐름에서도 마찬가지다. 비동기 코드를 이처럼 작성해 볼 수 있다. 자바스크립트는 비동기 API를 작동하여 이 함수를 별도의 공간에 저장한다. 즉, 하나의 메인..