728x90
Object / MapJavascript Type⸰ 원시 타입 : boolean,null,undifiend,number,string,symbol⸰ 객체 타입 : 함수,배열,정규표현식등 원시 타입을 제외한 나머지 Object⸰ Key :string,symbol⸰ Key 순서 보장 X⸰ Value 는 Key 를 통해서만 접근 가능 ⸰ for-in 문으로 반복문 수행 가능 (for-of 문 불가)⸰ Symbol.iterator 구현 Xconst person = { name: "yeHyun", gender: "female",};for (const prop in person) { console.log(prop + " : " + person[prop]);}/*name : yeHyungender : female..
vscode 디버깅디버깅 명령어 ⸰ 1 :continue,resume - 다음 breakpoint 실행 직전으로 이동 ⸰ 2 :step over - 현재 코드 라인을 실행하고, 다음 라인으로 이동 - 현재 코드 라인이 함수이면, 함수 안에서 멈추지 않고 해당 함수를 실행하며 지나감 - 특정 함수가 잘 작동하는지 확인하고 싶을 때 사용⸰ 3 :step into - 현재 코드 라인이 함수이면, 해당 함수 내부로 진입한 이후 한 줄씩 짚어가며 넘어감 - 코드를 한 줄씩 모두 디버깅하고 싶을 때 사용⸰ 4 :step out - 현재 코드 라인이 함수 안이면, 해당 함수를 끝까지 실행하고 반환 후 멈춤 - 해당 함수를 한 줄씩 확인하다가, 에러 없음을 확신하여 함수를 끝내고 싶을 때 사용⸰ 5..
TCP 연결 해제TCP 연결 해제(4 way handshake) 1.FIN: 클라이언트 연결 해제 요청 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 서버에 보낸다. 그리고 클라이언트는 FIN_WAIT_1의 상태로 들어가 서버의 응답을 기다린다. 2.ACK: 클라이언트 연결 해제 요청 확인 서버는 클라이언트에게 ACK를 보내 해제 요청 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태에 들어간다. 클라이언트가 서버의 ACK 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다. 3.FIN: 서버 연결 해제 요청 서버는 2에서 ACK 세그먼트를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보낸다. 서버로부터 FIN 세그먼트를 받은 클라이언트는 TIME_W..
비동기 함수의 반복문forEach( )⸰ 동기적으로 동작, 비동기 함수를 기다리지 않음⸰ try/catch 가능⸰ 간단한 동기 반복 작업에 사용const func = async () => { await Promise.all(data.map(async (i) => { await insertDatabase(i); }));};비동기 작업의 완료를 보장하지 않으므로, Promise.all을 사용하여 병렬 처리 for ⸰ 동기적으로 동작, 비동기 함수를 기다리지 않음⸰ 조건식, 초기화식, 후위식 설정 가능하여 유연하게 반복 제어const func = async () => { for (let i = 0; i 비동기 작업을 순차적으로 처리 for ... of⸰ 동기적으로 동작, 비동기 함수를 기다리지 않음..
[챌린지] 3주 차 회고회고설계 / 구현구현에서 동료분들은 함수 하나하나, 구조 하나하나를 다 깊이 알고, 동작 원리도 다 이해하고, 비슷한 함수와의 차이도 명확히 구분하며 자신들이 사용하는 함수나 구조에 근거가 있었다. 하지만 나는 그냥 인터넷 서칭하여 하나만 알고 있었기 때문에, 동료분들과 지식의 깊이도 달라서 문제에 대한 접근 방식이 제한적이라는 것을 깨달았다. 따라서 나도 하나의 검색 결과만 찾아서 사용하지 않고, 비슷한 종류도 같이 검색을 하고 차이점도 따로 정리를 하며 학습의 깊이를 깊게 가져가야 한다고 깨달았다. 그리고 설계는 다들 바로 다이어그램을 그릴 정도로 능숙하셨다. 나는 다이어그램을 그린 적이 많이 없어서 항상 피하기만 해서 더 다이어그램 그리는 능력이 늘지 않았던 것 같다. 그리고..
[책]「개발자의 원칙」박성철님 | 덕업일치를 넘어서프로그래머는 여러 사람에게 설명 / 협상을 잘해야 하며, 계획도 잘 세우고 목표를 달성하며 이를 위해 여러 결정도 스스로 내리는 것도 중요하다는 것을 알게 되었다.게임은 컴퓨터 성능을 최대로 활용하는 분야라는 점이 참신했다.팀워크는 1 + 1 이 2 이상이 되도록 만드는 것호황기 이후, 개발자라는 직업에 대한 사명의식을 가지고 책임지는 진짜 전문가를 필요로 하는 사회가 될 것이다.이동욱님 | 프로덕트 중심주의프로덕트가 목표라면, 지향해야 할 가치나 목표가 명확해지고, 이를 달성하기 위해 더 디테일한 다음 단계를 고민할 수 있다.혼자 작업하더라도, 깃/깃플로/풀 리퀘스트 등 활용하여 ‘협업 모드’로 개발을 권장한다.소프트웨어 제품 제작이나 출시 과정에 관심..
git 내부 구조기본 오브젝트⸰blob - 타입 : blob 타입 - 사이즈 : 컨텐츠의 용량을 bytes로 표시 - 컨텐츠 : 다양한 형식의 파일 저장(텍스트, 이미지, 음악, 이진 파일): 파일 이름, 파일 형식은 저장되지 않고, 파일의 메타정보를 제외한 파일의 내용 전체를 저장: 각 파일의 내용은 고유한 Blob 오브젝트로 저장: 각각의 고유한 SHA-1 해시를 가지고 있음 ⸰tree - 타입 : tree 타입 - 사이즈 : 트리 오브젝트의 용량을 bytes로 표시 - tree 객체 : 하위 디렉토리의 트리 객체를 재귀적으로 참조 - blob 객체 : 한 디렉토리에 있는 모든 blob을 담음: 객체에 대한 접근 권한, 파일 이름 관리: 디렉토리 내 파일들을 blob 오브젝트로, 그리고 ..
PromisePromise⸰ 여러 개의 비동기 작업을 순차적으로 수행할 때 콜백 함수가 중첩되어 코드의 깊이가 깊어지는 콜백 지옥을 개선⸰ 콜백 함수를 대체하고, 비동기 작업의 흐름 쉽게 제어 3가지 상태⸰Pending(대기): 비동기 처리 로직이 아직 완료되지 않은 상태new Promise(function(resolve, reject) { // ...});위 메서드를 호출한 상태 ⸰Fulfilled(이행): 비동기 처리가 완료되어 프로미스가 결과 값 반환해준 상태new Promise(function(resolve, reject) { resolve();});resolve( )가 호출된 상태로 then( )을 이용하여 처리 결과 값을 받을 수 있음 ⸰Rejected(실패): 비동기 처리가 실패하거나 오..