본문 바로가기

분류 전체보기

(388)
<자바스크립트> 클래스의 기본과 상속 1. 클래스 기본 문법 * 클래스란 - 클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀이다. - 클래스는 전부 혹은 일부를 그 클래스 특성으로부터 상속받는 서브클래스를 가질 수 있으며, 클래스는 각 서브클래스에 대해 수퍼클래스가 된다. - 동일한 종류의 여러 객체를 생성할 때 new function을 사용할 수도있지만 자바스크립트의 클래스 문법을 사용하면 객체 지향 프로그래밍의 다양한 기능을 사용할 수 있다. * 기본 문법 - 클래스를 만드는 기본 문법은 다음과 같다. class MyClass { constructor() { ... } method1() { ... } method2() { ... } method3() { ... } ... } - 위와 같이 ..
<네트워크> 데이터 링크 계층 1. 데이터 링크 계층의 역할과 이더넷 * 이더넷 - 랜에서 데이터를 주고 받으려면 두 번째 계층인 데이터 링크 계층의 기술이 필요하다. - 데이터 링크 계층은 네트워크 장비 간에 신호를 주고 받는 규칙을 정하는데, 일반적으로 많이 사용되는 규칙이 이더넷이다. 쉽게 말해 이더넷은 네트워크를 구성하는 방식 중 하나의 방법이며, 오늘날 LAN을 대표하는 가장 대중적인 기술이다. - 앞서 봤었던 허브를 생각해보자. 데이터를 받으면 연결된 모든 컴퓨터에 보내버린다고 했었다. 이런 경우를 대비해서 규칙이 있다. 목적지 정보를 추가해서 보내는 것인데, 이렇게 하면 다른 컴퓨터는 데이터를 받더라도 무시하게 된다. - 충돌 : 컴퓨터 여러 대가 동시에 데이터를 보내면 데이터들이 서로 부딪히는 것 - 충돌을 피하기 위해..
<자바스크립트> 프로토타입 1. 프로토타입 상속 - 개발에서 기존의 객체가 가지고 있는 기능을 확장해서 비슷한 객체를 만들어야 하는 일이 흔하다. 이 때 사용할 수 있는 것이 프로토타입 상속이다. * [[Prototype]] - 자바스크립트 객체는 [[Prototype]] 이라는 숨김 프로퍼티를 갖는다. 이는 null 또는 다른 객체에 대한 참조가 되며, 다른 객체를 참조할 경우 그 대상을 프로토타입이라 부른다. - 객체에서 프로퍼티를 읽으려고 할 때, 해당 프로퍼티가 없으면 자동으로 프로토타입에서 그 프로퍼티를 찾는데, 이를 '프로토타입 상속'이라 부른다. - __proto__를 통해 값을 설정할 수 있다. __proto__는 [[Prototype]] 그 자체는 아니며, [[Prototype]]의 getter이자 setter이다..
<자료구조> 우선순위 큐 1. 우선순위 큐(Priority Queue) * 우선순위 큐 - 우선순위 큐는 큐와 달리 우선순위가 높은 것부터 Dequeue를 시키는 자료구조를 의미한다. - 이 장에서는 파이썬 모듈 heapq를 이용하여 구현해보자. * 힙(heap) - 힙은 완전이진트리(complete binary tree)를 기본으로 하는 자료구조이다. - 힙은 부모-자식 노드의 키값 대소 관계가 일정하게 유지된다. - 최대 힙 : 자식 노드의 키 값보다 부모 노드의 키 값이 항상 크다. - 최소 힙 : 자식 노드의 키 값보다 부모 노드의 키 값이 항상 작다. - 참고로 파이썬에서 heapq모듈은 최소 힙 자료구조만 제공한다. 2. 구현하기 * 생성 - 먼저 모듈을 불러와야 한다. import heapq heap = [] - 모..
<네트워크> 물리 계층 1. 물리 계층의 역할과 랜 구조 * 전기 신호 - OSI 모델의 1계층인 물리 계층은 0과 1만으로 이루어진 비트열을 전기 신호로 변환한다. - 전기 신호의 종류에는 아날로그 신호와 디지털 신호가 있다. - 아날로그 신호는 물결 모양이며, 전화회선이나 라디오 방송에 사용된다. - 디지털 신호는 막대모양이다. 비트열을 위와 같이 바꿔서 네트워크를 통해 전송하고, 수신 측 컴퓨터는 이를 다시 0과 1의 비트열 데이터로 변환한다. * 랜카드 - 컴퓨터는 네트워크를 통해 데이터를 송수신할 수 있도록 랜 카드가 메인보드에 포함되어 있는 내장형 랜 카드나 별도의 랜 카드를 가지고 있다. 2. 케이블의 종류와 구조 * 트위스트 페어 케이블 - 전송매체 : 데이터가 흐르는 물리적인 선로로 유선과 무선으로 나뉜다. -..
<네트워크> 네트워크 기본규칙 1. 네트워크의 규칙 * 프로토콜 - 프로토콜은 원래 외교상의 언어로써 국가간의 약속을 의미했다. 여러 나라와 각 나라의 언어로는 대화가 불가능한데 이럴 때 만약 영어로 하자고 규칙을 정한다면 대화가 가능해질 것이다. - CS에서 프로토콜은 시스템끼리 통신을 원활하게 하도록 해주는 절차나 규칙등을 의미한다. 간단하게 통신하기 위한 규칙이라고 보자. - 네트워크 용어에서 약자로 나오는 P는 대부분이 프로토콜이다. 2. OSI모델과 TCP/IP 모델 * OSI모델 - ISO에서 네트워크 기술의 기본이 되는 모델인 OSI모델을 표준 규격으로 제정하였다. - 통신 시 데이터는 7계층인 응용계층부터 차례대로 아래로 전달된다. - 송수신 측면에서 보면 다음과 같이 데이터를 주고 받는다. * TCP/IP 모델 - T..
<자바스크립트> JSON과 메서드 1. JSON - 복잡한 객체를 다룰 때, 객체를 보내거나 출력하는 상황에서 객체는 문자열로 전환되어야 한다. 이러한 상황을 유연하게 대처하기위해 JSON이 등장했다. - JSON(JavaScript Object Notation)은 값이나 객체를 나타내주는 범용 포맷이다. - 현재에는 라이브러리를 이용하여 다른 언어에서도 사용하게 되어 JSON을 데이터 교환 목적으로 많이 사용한다. - 대표적인 메서드로 .stringfy(객체를 JSON으로 변경)와 .JSON.parse(JSON을 객체로 변경)이 있다. 2. JSON.stringfy * stringfy - stringfy메서드는 말 그대로 객체를 문자열인 JSON으로 변경하는 메서드이다. let student = { name: 'Harry', age: ..
<네트워크> 네트워크 구조와 LAN&WAN 1. 네트워크의 구조 * 네트워크 - CS에서 네트워크란 2대 이상의 컴퓨터가 연결되어 통신 가능한 것을 의미한다. 네트워크를 통해 컴퓨터는 데이터를 서로 주고 받는다. - 인터넷 : TCP/IP 프로토콜을 사용하는 세계 최대 규모의 컴퓨터 통신 네트워크 * 패킷 - 패킷은 네트워크를 통해 전송되는 데이터 조각을 의미한다. - 큰 데이터가 있더라도 작게 나누어 보내는게 규칙이다. 만약 큰 상태 그대로 보낸다면 네트워크의 대역폭을 많이 차지하여 다른 패킷 흐름을 방해할 수 있다. 좁은 도로에 큰 트럭들이 천천히 다니고 있다고 생각해보라. - 패킷이 도착하고 원래 데이터로 되돌리는 작업이 필요한데, 이를 위해서 패킷에 순서를 붙여서 전송한다. - 패킷은 전송한 순서대로 도착하지 않는다. 그러나 부여받는 번호..
<월간회고> 03월 | 지금까지의 과정과 한 달간의 회고 들어가며 이번 달부터 월간 회고를 작성하기로 마음먹었다. 한 달간 얼마나 성장했는지, 무엇을 하였는지, 반성할 점은 없는지 그리고 다음 달에는 어떻게 성장하면 좋을지 작성할 것이다. 회고를 작성하는 가장 큰 이유는 역시 '성장'이다. 아직은 취업 전이라 '비전공자'라는 타이틀이 따라다닌다. 현재는 이 타이틀을 그렇게 신경쓰는 편은 아니다. 그러나 전공자가 아니기 때문에 다른 사람 뿐아니라 나에게 있어서도 나의 성장은 흔적이 필요하다고 느낀다. 이 글을 쓰는 시점이 벌써 FE개발자를 도전한지 5개월이 조금 넘었다. 길다면 길고, 짧다면 짧은 기간이지만 종종 내가 지금까지 뭘 공부했지? 뭘 한거지? 성장한 게 있나? 싶은 순간이 너무나도 많았다. 하지만 이 기술블로그에 작성한 글들과 깃허브에 남겨진 잔디와 ..
<파이썬> 2차원 배열 정렬 1. 기본적인 리스트 정렬 * sort 정렬 - sort는 리스트에서 제공되는 기본적인 메서드이다. 주로 아래와 같이 사용한다. lst = [2, 3, 5, 6, 1, 4] lst.sort() print(lst) # [1, 2, 3, 4, 5, 6] - sort 는 기본적으로 오름차순 정렬이다. 인자로 key, reverse를 넣어서 변형이 가능하다. lst = [2, 3, 5, 6, 1, 4] lst.sort(reverse=True) print(lst) # [6, 5, 4, 3, 2, 1] - 위는 reverse를 True로 하여 내림차순 정렬을 시행한 것이다. * key 사용하기 - 이번에는 key를 사용해보자. key는 함수의 결과에 따라 정렬을 할 수 있다. lst = ["one", "two", ..