본문 바로가기

반응형

전체 글

(124)
가비지 컬렉션 - 마크앤 스윕 래퍼런스 카운트는 순환참조의 오류를 해결하지 못함. 따라서 일정 주기, 메모리의 사용량에 따라 마크앤 스윕을 실행해서 가비지 컬렉션을 보완 => 변수 선언 후 출처와 연결해준다. => 출처를 연결한 그래프를 순회한다. => 루트 출처와 연결이 끊긴 객체는 지워버린다.(스윕) => 우측 하단과 같이 순환참조하는 객체를 가비지로 인식하고 스윕해준다. => 주의! 선언한 객체 전체를 순회하기 때문에 무거운 작업이다. 참조 : https://www.youtube.com/watch?v=tTH4WdpRC2k
가비지 컬렉션 - 레퍼런스 카운팅 자바스크립트는 프로그래머가 직접 메모리를 관리하지 않는다. 사용이 끝난 객체를 가비지 컬렉터가 자동으로 메모리에서 지워주기 때문이다. 작동방식은 레퍼런스 카운팅, 마크앤 스윕 등이 있다. 래퍼런스 카운팅의 작동방식. => 객체마다 래퍼런스 카운트 부여하고 계산하는 방식이다. => 더 이상 참조하는 곳이 없는 변수는 가비지 컬렉션의 대상이 된다. (래퍼런스 카운드 == 0) => 주의! 우측하단과 같이 순환참조가 일어나는 경우 래퍼런스 카운트가 0이 될 수 없음으로 (더이상 접근하지 않지만)가비지 컬렉션이 발생하지 않는다. 참조 : https://www.youtube.com/watch?v=j9Vncn04GsE
자바스크립트 중요 개념 자바스크립트는 런타임에 타입이 결정되는 동적 언어이면서 함수의 선언 위치에 따라 스코프를 결정하는 정적(렉시컬) 스코프를 갖는다. 데이터 타입 - primitive(immutable) type = value => 숫자, 문자열, 불리언, null, undefiend, symbol - reference(mutable) type = reference => array, date, regexp, map, weakMap, set, weakSet *immutable = 스스로 값을 바꿀 수 없음 밸류와 레퍼런스의 차이 call by value = 참조하는 값을 가져온다. call by reference = 참조하는 주소를 가져온다. a1 = [1,2]와 a2 = [1,2]가 있을때 a1 !== a2이다. a1과 a..
[항해99]수료와 앞으로의 계획, 이사 지난 1주일 동안 : 이사준비, 이사, 면접준비, 수료식이 있었다. 1) 항해 99 수료 좋은 사람들과 행복한 99일 이었다. 많은 장면이 스친다. 처음 크롤링해서 데이터 베이스에 사진을 저장하던 그 경이로움과 최초로 로그인을 구현하던 기쁨, 4주차 개인과제 제출 10분전 몽고db연결이 안돼서 키보드를 내려칠뻔한 순간과 cors에러 해결 방법을 몰라 팀원들과 게더에서 새벽 4시까지 삽질하던 밤, 실전프로젝트 기획을 위한 1주일 마라톤 회의, 완성 못할 것 같았던 실전 프로젝트의 mvp 런칭 후 받은 칭찬과 격려, 100여명 청중 앞에서의 최종 발표회 등등 1.1) 수료 후 하지만 취업할때 까지 항해는 끝이 아니다. 우리 1조 백엔드 3명은 각각 계획이 다르기에, 앞으로 5조에 합류해 알고리즘과 타입스크립..
자바스크립트 딥다이브 시작 항해 지원주차를 맞아 이력서와 면접을 준비하고 있다. 예상 질문을 정리하며 자바스크립트의 본질에 대해 깊이있게 배워야겠다는 생각이 들어 딥 다이브를 충동구매했다. 항해 기간동안 작동하는 코드 만들기에 급급해서 놓친 작동원리를 찬찬히 정리해보고자 한다. 90여일간 맨땅에 헤딩만 해서인지, 근본적인 작동원리를 설명해주는 이 책이 상당히 흥미롭다.
캐싱과 레디스 1. 캐싱이란 데이터의 원래 소스보다 더 빠르고 효율적으로 엑세스 할 수 있는 임시 데이터 저장소 속도향상을 위해 사용 원본보다 빠른 접근속도, 동일한 데이터 반복 엑세스 데이터 재사용 횟수가 2회 이상 있어야 캐싱으로 의미를 갖는다 잘 변하지 않는 데이터일수록 효율적이다 2. 레디스란(remote dictionary server) 키-벨류 단순한 구조 인메모리 저장소로 빠른 성능 (평균작업 속도 < 1ms) 캐싱전략(읽기) 데이터 유형과 엑세스 패턴 고려해야함 읽는 작업이 많을때? look aside ⇒ 레디스 를 먼저 찾고 데이터 없으면 db에서 꺼내어 레디스에 탑재 (뽀모모 서비스는 레디스 다운되면 데이터 가져올 수 없다.. db에 접근하는 코드 있어야) db에서 레디스로 미리 데이터 밀어넣는것 ?..
정규식 1 정규식을 알면 알고리즘 수월. 공부시작 1. 플래그 : 여러개의 플래그를 넣을 수 있으며, 전역검색, 대소문자 구분 무시 등을 설정한다. - g : 전역 검색 - i : 대소문자 구분 없는 검색 - m : 다중행 검색 - s : .에 개행 문자도 매칭 - u : 유니코드 : 패턴을 유니코드 포인트의 나열로 취급 - y : "sticky" 검색을 수행. 문자열의 현재 위치부터 검색을 수행 2. 특수문자 : 공백찾기 또는 n개의 알파벳을 찾기 등 검색의 고도화에 필요. ex) /abc/ => "abc chocolate" (o), "grab crab" (x) 둘다 abc를 포함하지만 "grab crab"의 경우 ab c이기 때문에 검색 불가. 1) \ : 백슬래시 다음의 문자는 특별하지 않고, 문자 그대로 해..
mysql아 고맙다! 이번 실전 프로젝트에서 ORM으로 sequelize와 DB로 mysql을 사용중이다. sequelize와 mysql은 참 기특하다. 배울수록 재밌다. 외래키만 쥐어주면 데이터 베이스 이곳 저곳을 뒤져가며 필요한 정보를 조합하고, 계산하고, 제외하고, 정렬하는 등 온갖 재주를 다 부려서 원하는 데이터를 뱉어낸다. 항해를 수료한 다음 sql근본에 대한 공부를 깊게 공부하자. mysql아 고맙다! 덕분에 백엔드하길 잘했다 느낀다.

반응형