본문 바로가기

분류 전체보기

(90)
호이스팅과 TDZ 스코프 = "변수가 영향을 미치는 범위" ​ 호이스팅 = "스코프 내부 어디서든 변수 선언은 최상위에 미리 선언되는 것" *선언만 될 뿐, 실제로 값이 할당되는 않는다. ​ 위의 호이스팅 방식에서 var, let, const 이 3개의 변수선언 코드는 차이점을 가진다. ​ var let const 1단계 변수 선언 + 초기화(undefined) 선언 선언+초기화+할당 2단계 value 할당 초기화(undefined) 3단계 할당 위의 표와 같이, 단계별로 작동되는 방식이 다르다. 그렇기에 아래와 같이 코드를 사용할 때 나타나는 값이 다르게 된다. ​ console.log(name) var name = "a" //undefined console.log(name1) let name1 = "a" //error..
JavaScript 객체와 불변성 자바스크립트 내에서 데이터 타입은 크게 두 가지로 분류된다. 기본형 데이터와 참조형 데이터 ​ 기본형데이터 (Primitive Data) 참조형데이터 (Reference Type) number string null undefined boolean symbol 객체 배열 함수 날짜 정규표현식 Map Set 참조형데이터는 기본형데이터를 제외한 모든 객체라고 생각하면 되겠다. ​ 데이터 타입을 나누는 이유는 복사를 할 때, 작동하는 방식이 완전히 다르다. ​ 일단 가변성이라는 기준을 두고 보았을 때, 기본형데이터 = 불변 참조형데이터 = 가변 그렇다면 가변성이 복사를 할 때에, 어떠한 차이를 만드는 지 아래를 보며 생각해보자. ​ let a = 10 let b = 10 console.log(a===b) //결..
JavaScript의 자료형과 JavaScript만의 특성 자바스크립트 는 "느슨한 타입(loosely typed)의 동적(dynamic) 언어"이다. ​ "느슨한 타입(loosely typed)"이라는 것은 변수를 설정할 때에 어떠한 특정 타입에 연결되지 않는다는 것이며, "동적(dynamic)"이라는 것은 변수를 최초 할당한 타입과 다르게 재할당이 가능하다는 것을 의미한다. 참고링크 (https://developer.mozilla.org/ko/docs/Web/JavaScript/Data_structures) 그래서인지, 자바스크립트에는 ==,=== 두가지 등호가 있다. ==은 언어 내에서 임의적으로 형변환을 하여 인식해준다. ===은 임의적으로 해석하지 않는다. ​ 예를 들어보자. 100 == "100" //True 100 === "100" //False ​..
스파르타 웹개발종합반 (화성에서 땅 사기) 화성에서 땅사기라는 프로젝트를 만들었는데, 잘 이해가 안되서 다시 복기하며 적어본다. 평당 500원이라고 했을 때, ​ @app.route("/mars", methods=["POST"]) def mars_post(): name_receive = request.form['name_give'] address_receive = request.form['address_give'] size_receive = request.form['size_give'] ​ 위의 size_receive라는 값에 500원을 곱해줘야한다. ​ 하지만 여기서 size_receive값이 20"평"과 같이 숫자와 문자가 섞여져 있다. 그래서 이 값에서 숫자인 20만 추출해내야 한다. ​ 그럴때는 슬라이싱을 사용하면 된다. size_rece..
스파르타 웹개발종합반 5주차 오늘로써 일단 웹개발 종합반 5주차강의를 완강하면서 1회독을 마쳤다. ​ 처음 html, css, js 부터 시작해서, 파이썬과 데이터베이스 그리고 직접 서버를 만들기까지의 과정을 배웠다. 한 마디로, 풀스택 과정을 맛볼 수 있었다. 그 과정에서 나에게 어려웠던 부분은 백엔드 부분이였고, html과 css는 바로바로 화면으로 결과물이 나와서 그런지 나름 이해가 빠르게 되었던 것 같다. ​ 오늘 배운 강의는 이해보다는 과정의 흐름에 집중되었다. ​ 가비아를 통해서 도메인을 생성하고, 그 도메인과 내가 만든 인스턴스를 연결시키는 것이다. 그리고 깃배쉬를 통해서 서버를 여는 법과 끄는 법을 배웠다. ​ 앞으로 남은 3일 간에 빠르게 웹개발 종합반을 한 번 더 완강을 하려고 한다. 이번에는 하나하나 말로 설명하..
스파르타 웹개발종합반 4주차 오늘은 굉장히 멘붕온 날이였다. ​ 실습과정에서 분명히 강의랑 똑같은 코드를 작성했음에도, 계속해서 오류가 나는 바람에 몇 시간동안 진도를 나가지 못했다. 거의 오류가 나는 이유를 찾아내느라 하루를 다 보낸 것 같다. ​ 그렇게 겨우겨우 실습을 마무리하고, 집으로 돌아와서 다시 코드를 작성해보니 비슷한 실수를 또 한다. ​ POST는 클라이언트(ajax)에서 서버(flask)로 데이터를 보내는 방법이다. @app.route("/homework", methods=["POST"]) def homework_post(): name_receive = request.form['name_give'] comment_receive = request.form['comment_give'] doc = { 'name': nam..
스파르타 웹개발종합반 3주차 웹개발 종합반 3주차에서는 파이썬과 mongoDB를 다루는 법에 대해서 배웠다. ​ 지금 3주차를 듣고나서 기억나는 것은 for in을 사용한 구문밖에 없는 것 같다.. ​ 아무래도 강의에서 선생님이 하는 것을 따라하다 보니, 강의가 끝나고 혼자서 하려면 강의내용을 거의 처음부터 다시 봐야하는 경우가 많다. 내 생각에는 빠르게 웹개발을 2회독하고, 파이썬이나 자바스크립트강의를 들어야 부트캠프에 참여할 수 있을 것 같다. ​ 이번 강의에서는 크롤링을 해보았다. 네이버영화에서 영화제목과 평점, 그리고 순위를 파이썬을 이용하여 데이터로 집어넣는 것 까지 배웠다. ​ movies = soup.select('#old_content > table > tbody > tr') ​ for movie in movies: ..
스파르타 웹개발종합반 2주차 오늘은 스파르타코딩클럽의 2주차 강의를 들었다. ​ 오늘은 주로 ajax라는 코드를 이용하여 api에 들어있는 정보를 사이트로 가져오는? (get방식?)방법을 배웠다. 오늘은 어제보다 유독 시간이 오래 걸렸던 것 같다. 중간에 분명 같은 코드이나 다른 화면이 나와 질문게시판에 올리기도 하였다. ​ ajax에서 주로 썼던 코드를 기억나는 대로 적어봐야겠다. ​ 주로 먼저 변수를 설정한다. let 무엇 = response['어떤정보'] ​ let temp_html = ` $('#') ` ​ temp_html이 작동하려면 백틱(`)을 두번 찍어줘야한다. 자주 까먹으니 기억해두자. ​ 그리고 무언가를 지칭할 때, $('# 무언가')를 사용한다. 달러표시와 샾표시를 잘 ..