공부/이모저모 23

javascript == 와 === 의 차이

JavaScript에서 ==와 ===는 비교 연산자로, 두 값의 동등성을 확인합니다. 하지만 이 둘은 약간의 차이가 있습니다. == (동등 연산자): ==는 두 값이 동등한지 비교합니다. 하지만 엄격한 타입 검사(strict type checking)를 수행하지 않습니다. 이 연산자를 사용할 때 JavaScript는 비교하는 값의 타입을 변환하여 동일한 타입으로 만든 후 비교합니다. 예를 들어, 문자열 "1"과 숫자 1은 다른 타입이지만 ==로 비교하면 JavaScript는 문자열 "1"을 숫자 1로 변환하여 동등성을 확인합니다. === (일치 연산자): ===는 두 값이 정확하게 일치하는지를 비교합니다. 두 값의 타입과 값이 모두 같아야 합니다. 타입 변환 없이 엄격한 비교를 수행하기 때문에 타입이 다..

공부/이모저모 2024.01.30

Ubuntu 환경변수 총정리 (/etc/profile vs .profile vs /etc/zsh vs .zshrc)

환경변수란 환경변수란 말그대로 변수다. 근데 이제 OS에서 실행되는 소프트웨어가 참조하기위한 변수인데 핵심은 OS에서 실행되는 소프트웨어가 무엇인가? 인데 우분투의 경우 bash, zsh 윈도우의 경우 cmd 이다. 즉, 환경변수란 bash와 같은 커맨드 쉘이 참조하기 위한 변수라고 생각하면된다. 환경변수 예시 위에서 이야기한 것처럼 OS에서 실행되는 프로그램인 bash에서는 환경변수를 참조할 수 있다. Ubuntu에서 홈 디렉토리에 있는 .profile 파일을 열어서 맨 마지막 줄에 export TEST=1103 과 같이 입력하면 TEST라는 이름의 환경변수를 등록하고 그 값으로 1103을 설정한다는 뜻이다. 한번 환경변수를 확인하고 값을 출력해보면 다음과 같다. source .profile은 변경된 ..

공부/이모저모 2022.09.08

오버플로우(Overflow) 관련 비슷한 용어 정리

오버플로우(Overflow) : 정해진 영역을 벗어나는 현상 인티져 오버(언더)플로우(integer over/underflow) : 값이 잘려서 의도하지 않은 값이 들어갈 수 있음. 반복문 우회 버퍼 오버플로우(buffer overflow) : 정해진 버퍼 크기를 넘어서 값이 들어감. 값이 잘리지 않음. 스택 오버플로우(stack overflow) : 정해진 스택의 크기를 넘어서 값이 들어감. 힙 오버플로우(heap overflow) : 정해진 힙의 크기를 넘어서 값이 들어감. 스택 버퍼 오버플로우(stack buffer overflow) : 스택 영역에 있는 버퍼가 정해진 크기를 넘어서 값이 들어감. 힙 버퍼 오버플로우(heap buffer overflow) : 힙 영역에 있는 버퍼가 정해진 크기를 넘..

공부/이모저모 2022.02.11

diff란? - 컴퓨터 파일 비교 유틸리티

https://ko.wikipedia.org/wiki/Diff diff - 위키백과, 우리 모두의 백과사전 컴퓨터에서 diff는 두 개의 파일 간 차이에 대한 정보를 출력하는 파일 비교 유틸리티이다. 일반적으로 하나의 파일 버전과 동일한 파일의 다른 버전 간의 변경 사항을 보여주는 데 쓰인다. diff는 ko.wikipedia.org 컴퓨터에서 diff는 두 개의 파일 간 차이에 대한 정보를 출력하는 파일 비교 유틸리티이다. 일반적으로 하나의 파일 버전과 동일한 파일의 다른 버전 간의 변경 사항을 보여주는 데 쓰인다. diff는 문서 파일의 줄 사이 변경 사항을 보여준다. https://sourceware.org/git/?p=glibc.git;a=blobdiff;f=malloc/malloc.c;h=80c..

공부/이모저모 2022.02.10

C언어 배열 시작주소에 연산 (arr+1) 해석

#include #define R 10 #define C 5 int main() { int(*p)[R][C]; //5*10=50개의 배열을 갖는 하나의 포인터 p선언. int arr[10][5]; printf("%p\n", arr); //arr는 int[10][5] printf("%p\n", arr+1); //arr+1은 int[5]를 가리키는 포인터 int[5]* 포인터의 요소가 int[5]일뿐. //int arr[3] 하고 arr+1이 int를 가리키는 포인터라는 것과 같은 이유 printf("%d\n", sizeof(arr)); //arr의 크기는 int[10][5] 배열의 크기 4*5*10 printf("%d\n", sizeof(arr+1)); //arr+1의 크기는 int[5]를 가리키는 포인터..

공부/이모저모 2021.10.19

C언어 배열이름에 &붙이는 경우(&배열이름??)

#include int main() { int a = 3; //&(변수) -> 변수가 있는 주소 int arr[2] = { 1,2 }; printf("%p ", &arr+3); //BASEADD+24 printf("%p ", arr+1); //BASEADD+4 //두 값의 차이는 십진수 20 return 0; } &arr+3과 arr+1의 주소 값 차이는 십진수 20이 날 것이다. 실제로 전자 : 0x9f5c3afbe0 후자 : 0x9f5c3afbcc 가 나와서 주소 값의 차이는 0x14 (십진수 20)이 나온다!! arr = &arr[0]의 값을 가리키고 있는 포인터 arr[0] -> int &arr[0] -> int * arr+1 일때 1의 의미는 int의 바이트 수 (4) &arr = arr배열의 ..

공부/이모저모 2021.10.19

주요 포트번호 및 서비스 정리 (FTP,HTTP,SSH,텔넷,SMTP...)

포트 번호 서비스 이름 설명 20 FTP(data) FTP는 File Transfer Protocol의 약자로 TCP/IP 프로토콜을 이용해 서버와 클라이언트 사이의 파일 전송을 위한 프로토콜이다. 21 FTP(제어) FTP에서 사용자 인증, 명령을 위한 연결이 만들어진다. 22 SSH SSH는 Secure SHell의 약자로 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 서비스를 나타낸다. 강력한 인증과 암호화 통신을 위해 기존의 텔넷같은 서비스를 대체하여 만들어졌다. 23 텔넷 원격 접속 서비스이다. 특정 사용자가 네트워크를 통해 다른 컴퓨터에 연결하여 그 컴퓨터에서 제공하는 서비스를 받을 수 있도록 하는 인터넷 표준 프로토콜..

공부/이모저모 2021.10.01
728x90