본문 바로가기

Learn

(9)
[ 1일 1개발지식 ] 캐시(Cache) 맛만 보기 캐시란? 캐시는 임시로 쓰이는 버퍼(buffer) 메모리이다. 캐시를 왜 쓰는데? 캐시를 사용하면, 빈번하게 쓰이는 데이터들을 메모리보다 빠르게 가져올 수 있다. 그것을 가능하게하는 것이 캐시이다. 캐시는 대부분 프로세서의 내부에 존재하고, 데이터를 찾으려고할 때 캐시에 해당 주소의 데이터가 있다면 캐시에서 꺼내쓰는 방식이다. 캐시에 저장되는 방식으로는 write-back 과 write-through 이렇게 두 가지로 나뉜다. Write-Back 캐시에 데이터를 썼다가 나중에 실제 메모리에 업데이트하는 방식 Write-Through 캐시와 메모리 둘 다 한꺼번에 쓰는 방식 그렇다면, 캐시를 거쳐가야하니까 분명히 오히려 도움이 안되는 경우도 있지 않을 까? 음... 근데 Cache Miss일 확률은 매우 ..
CSR, SSR, SSG 간단하게라도 알고가자 CSR (Client Side Rendering) 요즘 대세인 리액트는 CSR의 대표적인 예시이다. 말 그대로, CSR은 클라이언트 브라우저에서 초기에 어플리케이션 구동에 필요한 모든 파일을 로드한 뒤에 뷰가 구성된다. CSR의 특징 최초 페이지 로딩시간이 오래 걸린다. 아무래도 초기에 모든 파일들을 다운로드받아야 하기 때문에, 첫 화면이 구성되는 데에 다른 방식에 비해 오래걸릴 수 밖에 없다. 최초 페이지는 느릴지라도, 그 다음부터 페이지 이동이 빠르다. 최초 페이지 이후에서는 모든 파일들이 준비된 상태이기 때문에, 페이지를 이동할 때 굉장히 빠르다. SEO가 다른 방식에 비해 조금 부족하다. CSR이 SEO가 되지않는 것이 아니다. 그저 조금 부족할 뿐, 문제없다고 생각한다. CSR이 SEO에 취약하..
스파르타 웹개발종합반 (화성에서 땅 사기) 화성에서 땅사기라는 프로젝트를 만들었는데, 잘 이해가 안되서 다시 복기하며 적어본다. 평당 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이 작동하려면 백틱(`)을 두번 찍어줘야한다. 자주 까먹으니 기억해두자. ​ 그리고 무언가를 지칭할 때, $('# 무언가')를 사용한다. 달러표시와 샾표시를 잘 ..
스파르타 웹개발 종합반 1주차 오늘은 스파르타코딩클럽 내에 존재하는 웹개발종합반 1주차강의를 완강하였다. 1시간 30분정도짜리 강의로 html,css,java script 맛보기 정도로 강의를 마무리하였다. ​ 간단하게 위 세 가지 종류를 분류해보자면, html은 뼈대 및 구조이다. 그리고 css 는 그 뼈대 안에서 디자인하는 요소들을 다룬다. 그리고 마지막으로 java script는 디자인 요소들에 동작을 부여한다. ​ 굳이 영어로 구분해보자면 html - nouns css - adjectives javascript - verbs ​ 그러니 html로 뼈대를 구성하고, css로 디자인을 한다음 js로 동작을 넣어주면 완성이라고 생각하면 된다. ​ 확실히 움직이게하는 자바스크립트는 수식이 복잡해보이긴 했다. 그래도 개발의 장점은 쓸모..