백엔드 도전기 8일차

홍성준·2022년 11월 10일
0

오늘 배운 내용

오늘도 역시 오전 알고리즘 오후 수업이 진행되었다. 알고리즘은 프로그래머스를 푸는데, 남는 시간에 좀 더 공부하고자 다른 문제도 풀려고 하나하나보는데, 난이도가 쉬운 레벨에서도 어려운 문제가 함정처럼 숨어 있어 굉장히 난해했다.

오후에는 데이터베이스의 이론과 SQL NoSQL의 차이를 배우고, 도커를 통해 DB를 실행시켜 어제 만들었던 도커와 연결을 해주었다. 이 연결은 docker-compose를 통해 연결을 해주었고, 기존에 만들었던 dockerfile을 여러개 만들어 빌드를 시켜주고 이미지를 실행시키는 방법보다 더욱더 간단하게 도커를 실행시킬 수 있었다.

async / await

기본적으로 자바스크립트는 비동기 방식으로 동작을 하게 된다. 그래서 어떤 함수에서 다른 API로 요청을 보내고 그 응답에 대한 데이터를 화면에 띄워야 될 때, 비동기 방식이기 때문에 요청에 대한 응답이 오기전에 데이터를 띄울려고 한다. 그래서 막상 화면을 보면 데이터가 아닌 promise라고 하는 문자열이 출력된 것을 볼 수 있다. 그래서 이 동작 방식을 동기로 바꿔줘야하는데, 동기 방식은 요청이 올 때까지 기다렸다가 응답이 왔을 때 그 다음 코드를 수행한다. 사용 방법은 아주 간단하다. 함수 앞에는 async라는 키워드를 붙여 주고, 요청을 보내는 부분 앞에다가는 await를 붙여주면 동기방식으로 동작을 하게된다. async를 붙여주지 않고 await를 사용하면 에러가 발생하게 된다.

위와 같이 비동기 방식으로 된 fetchAsync()를 실행시켜보면 콘솔창에 제대로 출력이 되지 않는다.

profile
안녕하세요

0개의 댓글