null의 typeof가 object인 이유
·
웹개발/JavaScript
배열 [ ] 의 typeof는 뭐일까요? => object 객체입니다.객체 { } 의 typeof는 뭐일까요? => object 객체입니다.너무나도 당연한 사실이죠. 그런데 null 의 typeof는 뭐엇일까요?놀랍게도 object객체가 나옵니다. 이유는 JavaScript 초기 설계에 오류가 있었기 때문입니다. 그냥 개발이 잘못된 거에요.typeof null === "object"는 자바스크립트의 설계 상의 버그로, 수정되지 않고 현재까지 남아있는 역사적인 흔적입니다.
JavaScript, NaN 뭔지는 알고 있자
·
웹개발/JavaScript
혹시 NaN(Not a Number)이라는 결과를 본적이 있지 않으신가요?없으시다면,, 고수시거나 뉴비시거나 둘중 하나일 테지요.. 하하하 NaN이란 "Not a Number"라는 뜻으로 자바스크립트에서 "숫자가 아니다."를 나타내는 특수한 값이에요. 숫자 연산 중에서 정상적인 숫자 값을 얻을 수 없는 경우에 NaN이 반환이 됩니다. 가장 쉬운예시로 24+"2" 이런식이죠,더 많은 예시를 보여드릴게요.console.log(Number("hello")); // NaNconsole.log(10 / "two"); // NaNconsole.log(Math.sqrt(-1)); // NaN이 코드에서 알 수 있듯이, 문자열을 숫자로 변환할 수 없거나, 0으로 나누거나 등등 잘못된 연산에서 NaN이 발생..
JavaScript 리터럴이란 무엇인가
·
웹개발/JavaScript
공부하다가 갑자기 리터럴이라는 단어가 되게 낯설게 느껴지는거 있죠?저 스스로에게 설명해보라 하는데 저도 명확이 얘기를 못하더라고요..그래서 정리해봤습니다.리터럴이란...코드에 직접 작성하는 값을 의미합니다. 쉽게 말해서 변수나 함수에 저장되는 것이 아닌, 코드 자체에 포함되어 있는 값을 말하는데요, 잘 이해가 안되시죠?코드로 설명드릴게요.// 변수에 저장된 값let name = "Jun";// 코드에 직접 작성된 값 (리터럴)console.log("문자열1");console.log(24); // 숫자 리터럴여기서 "Jun", "문자열1", 24가 모두 리터럴에 해당합니다.1. 문자열 리터럴 (String Literal)문자열 데이터를 표현할 때 사용합니다. ' ', " ", 또는 벡틱 ` `을 사용할 수..
네이밍 컨벤션 4가지: 카멜, 스네이크, 파스칼, 케밥 케이스
·
웹개발/JavaScript
프로그래밍에서 네이밍 컨벤션은 코드의 가독성과 유지보수성을 크게 향상시킵니다.이때 사용할 수 있는 4가지의 네이밍 컨벤션을 설명하겠습니다.1. 카멜 케이스 (Camel Case)첫 단어는 소문자로 시작하고, 이후 각 단어의 첫 글자를 대문자로 표기하는 방식입니다.// 변수명let firstName = "Kimjunsu";const maxCount = 100; let isActive = true;// 함수명function getUserData() { ... }function calculateTotal() { ... }// 객체의 프로퍼티const user = { firstName: "Kim", lastName: "Junsu", phoneNumber: "123-456-7890"};낙타의 등 ..
CodeSnap으로 캡처하자: VSCode 코드 캡처 라이브러리
·
웹개발/JavaScript
혹시 기술블로그 보다보면 이런식으로 코드표현된거 본적 있지 않으신가요? 본적이 없다고 하더라도- 깃헙에 ReadMe파일을 작성할때 코드를 예쁘게 보여주고 싶은 경우- 기술블로그에 코드를 올리고 싶은데 밋밋해 보일때- 코드리뷰할 때 특정 부분만 캡쳐해서 공유하고 싶을때이럴때 사용하기 좋은 라이브러리가 있는데요,VSCode의 확장프로그램CodeSnap입니다!Crtl + Shift + X 단축키로 확장프로그램 창을 연 후,CodeSnap입력후 찾아서 설치하시면 됩니다.설치 후, 코드캡쳐 방법1. 캡처할 코드를 드래그 합니다.2. 우클릭 후 하단의 CodeSnap을 선택한다.3. (1)번을 눌러 이미지를 저장하거나, (2)번을 우클릭하여 복사할 수 있다.
취업 안될까봐 불안하세요? 저도요..
·
취준일기
컴퓨터공학을 전공하며 어느덧 3학년 2학기. 이제 내년이면 나도 4학년이 된다. 취업 준비가 슬슬 다가오는 시점이다. 취업 시장이 좋지 않다는 얘기는 이미 잘 알고 있다. 주변의 선배들도 졸업 후 계속해서 취준에 매달리고 있다는 걸 보면 불안해지기도 한다. 그래도 나는 졸업 후 공백 없이 바로 취직해서 일을 하고 돈을 벌고 싶다. 그게 내 목표다. 하지만 요즘 이 목표가 나를 점점 불안하게 만든다. 자소서, 면접 준비, 코딩 테스트, 포트폴리오, 이력서, 인턴, 현장실습… 채워야 할 것들이 너무 많다! 학업과 병행하려니 정말 벅차다. 공부도 해야 하고, 개인적으로 준비해야 할 것도 쌓여 있는데… 가끔은 감도 잡히지 않고 그냥 복잡하고 답답하다. 가끔은 누군가 내 멘토가 되어, 내가 가야 할 길을 정리해 ..
React useState
·
웹개발/REACT
안녕하세요! 오늘은 제가 React를 공부하면서 가장 먼저 마주한 React Hook 중 UseState에 대해 이야기 해보려고 합니다.useState가 뭐길래? 🤔React에서 가장 기본이 되는 Hook인 useState!쉽게 말하면 우리가 만드는 컴포넌트에 "기억력"이라는 능력을 주는건데요.코드 구조부터 알아보겠습니다.const [count, setCount] = useState(0); count: 우리가 기억하고 싶은 값setCount: 그 값을 변경할 수 있는 함수useState(0): 처음 시작할 때의 값* 두 번째 자리에는 통상적으로, 첫 번째 변수앞에 set을 붙이고 대문자로 시작하는 방법을 사용한답니다!실전에서는 이렇게 사용합니다.보통 사용하는 예시를 보여드리겠습니다.function Li..
TCP 흐름 제어와 연결 관리
·
전공 공부/컴퓨터네트워크
TCP 흐름 제어 (Flow Control)TCP의 흐름 제어는 송신자가 수신자의 버퍼 여유 공간을 초과하지 않도록 데이터 전송을 관리하는 기능입니다. 네트워크와 응용 계층 사이에서 데이터 전송 속도의 불균형을 해결하기 위해 사용됩니다.흐름 제어의 원리:Receive Window (rwnd): 수신자가 수용할 수 있는 데이터의 양을 TCP 헤더에 포함하여 송신자에게 전달합니다.송신자는 수신자가 지정한 rwnd 값보다 적은 양의 데이터를 전송하여 오버플로우를 방지합니다.운영체제에 따라 RcvBuffer(수신 버퍼)의 크기를 조정하여 네트워크 성능을 최적화합니다.문제 상황:만약 네트워크 계층에서 소켓 버퍼로의 데이터 전달 속도가 응용 계층에서 가져가는 속도보다 빠르면 버퍼 오버플로우가 발생할 수 있습니다. ..