Object의 equals 매개변수로 객체의 참조 변수를 받아서 비교하여 결과를 boolean값으로 반환하는 메서드 참조 변수의 값(주소 값)으로 두 객체가 같은지 다른지 판단 equals()의 오버라이딩 Object의 equals메서드는 두 객체의 주소 값만 비교하기 때문에, 두 객체의 내용이 같아도 주소 값이 다르면 다른 객체로 본다. 따라서 객체 내용을 비교하여 같고 다름을 판단하고 싶다면 해당 클래스에 equals 메서드를 오버라이딩해주어야 한다. 대표적인 예시로 String, Integer 클래스가 있다. String의 equals Object와 같이 두 객체의 주솟값이 같으면 true 반환한다. 차이점은 주솟값이 다르더라도 두 객체의 value를 비교하는 과정이 추가되어 있다는 점이다. Int..
브라우저 렌더링 과정 브라우저는 브라우저엔진 등으로 이루어져있다. 이중에서 렌더링엔진이 브라우저 렌더링을 담당. 브라우저 렌더링은 다음과 같은 과정으로 이루어짐. DOM트리 CSS파서 등을 기반으로 렌더트리가 구축되는 등의 작업. DOM 트리 구축 하나의 html 페이지는 div, span 등 각각의 요소를 가집니다. 각 요소는 하나하나 노드(Node)로 설정이 되어 트리 형태로 저장되는데, 이를 DOM 트리라고 합니다. 예를 들어 div > span, span이라는 요소가 있다면 div라는 부모노드 밑에 span이라는 자식노드가 2개 생기는 것입니다. 렌더트리와 렌더레이어 생성 각각의 노드는 CSS 파서에 의해 정해진 스타일 규칙이 적용되어 있습니다. span.color = "red"는 노드 색깔이 빨..
공인 IP 주소와 사설 IP 주소 IP 주소는 공인 IP 주소와 사설 IP 주소로 나뉜다. 공인 IP 주소 인터넷에서 사용되는 주소 IP 주소 할당 기관에 의해 할당된 주소 인터넷 상에서 유일한 주소 사설 IP 주소 인터넷 미연결 TCP/IP 네트워크를 위한 IP 주소 인터넷 IP 주소 관리 대상에 불포함 서로 다른 네트워크에서 중복 사용 가능 인터넷 IP 주소와 엄격하게 구분 (사설 IP 주소 네트워크 인터넷 연결 불가) 사설 IP 주소 범위 클래스 A : 10.0.0.0 - 10.255.255.255 클래스 B : 172.16.0.0 - 172.31.255.255 클래스 C : 192.168.0.0 - 192.168.255.255 공인 IP 주소에는 클래스를 쓰지 않지만 사설에서는 여전히 사용한다. ..
스택 스택은 배열과 마찬가지로 데이터를 저장하고, 데이터를 꺼내기 위해 사용하는 자료구조 중 하나이다. 스택은 이와 다르게 최근에 저장한 데이터만 꺼내올 수 있다. 스택이라는 이름 뜻 그대로, 데이터를 차곡차곡 쌓아 저장하고, 데이터를 꺼낼 땐 위에 쌓아 넣은 것부터 하나씩 추출하는 자료구조이다. 이러한 스택의 특성을 가리켜 후입선출(Last In, First Out) 특성을 가진다고 한다. 스택의 시간복잡도 push push 함수는 스택의 맨 위에 데이터를 삽입한다. 즉, 스택 내부에 있는 다른 데이터에 접근하지 않기 때문에, 어떤 데이터가 들어오더라도 시간복잡도는 항상 같다.이 경우, Big-O 표기법에 따라 O(1)로 표기한다. pop pop 함수도 push함수와 마찬가지다. 다른 데이터에 접근할 ..
HTTPS VS HTTP HTTP는 Hypertext Transfer Protocol의 약자다. 즉 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. HTTPS에서 마지막의 S는 Over Secure Socket Layer의 약자로 Secure라는 말을 통해서 알 수 있듯이 보안이 강화된 HTTP라는 의미다. HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 메시지를 주고 받는 과정에서 악의적인 감청이나 데이터의 변조등이 일어날 수 있다. 이를 보안한 것이 HTTPS다. SSL SSL(Secure Sockey Layer)은 보안 소켓 계층 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜 전자상거래 등의 보안을 위해 넷스케이프(netscape)에..
복잡도 복잡도는 문제 해결에 사용되는 연산의 횟수를 의미하는 시간복잡도와 프로그램이 종료되기까지 필요한 자원 공간의 양을 의미하는 공간 복잡도로 나뉜다. 복잡도는 알고리즘에 데이터가 주어질 때 연산 시간, 혹은 연산에 사용되는 공간의 크기를 객관적으로 비교할 수 있는 기준을 제공하기 때문에, 문제를 해결하는 알고리즘을 평가하는 데에 사용된다. 공간 복잡도 공간 복잡도란 프로그램을 실행시킨 후 완료하기까지 필요로 하는 공간의 크기를 의미한다.이때 필요한 공간은 고정 공간과 가변 공간으로 나뉜다. 고정 공간 : 코드가 저장되고, 단순한 변수와 상수가 저장되는 공간. 알고리즘과 무관하다. 가변 공간 : 코드가 실행되는 도중에 동적으로 필요한 공간, 알고리즘과 연관된 공간 Big-O 표기법을 사용해 입력된 데이..
네트워크 토폴로지 (통신망의 구조) 컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결한 형태를 의미한다. 계층형(Tree) 토폴로지 트리 구조 형태로 정보 통신망을 구성하는 것으로 정보 단말 장치를 추가하기 용이한 구성 장점 분산 처리 이용 가능 단말의 추가, 삭제 간단 단점 단방향 버스형(Bus) 토폴로지 중앙의 통신 회선 하나에 여러 개의 정보 단말 장치가 연결된 구조로 LAN에서 주로 사용, 신뢰성 우수 장점 구조 간단 노드 추가, 삭제가 간단 단말의 고장이 통신망에 지장을 주지 않음 단점 우선 순위 제어가 어려움 통신 회선 길이 제한 기밀성 제공 불가 성형(Star) 토폴로지 중앙에 있는 정보 단말 장치에 모두 연결된 구조로 항상 중앙의 정보 단말 장치를 통해서만 연결이 가능한 구조, ..