Dev
[인터넷 통신] IP, TCP/UDP, PORT, DNS
IP (Internet Protocol) -> 인터넷 프로토콜 지정한 IP 주소에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 패킷의 구성 : 출발 IP 주소, 도착 IP 주소, 데이터 IP의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송 된다. 비신뢰성 : 중간에 패킷이 소실 되거나 순서대로 도착하지 않을 수 있다. 프로그램 구분 : 같은 IP 주소에서 사용하는 서버에서 통신하는 프로그램이 두 개 이상이라면 구분이 안 됨. TCP (Transmission Control Protocol) -> 전송 제어 프로토콜 연결 지향(TCP 3 way handshake) : 연결 후 데이터 전달 데이터 전달 보증 : 패킷이 누락 되었을 경우 확인 가능 순서 보장 :..
[Python] 람다 함수
람다 함수란? 작고, 이름이 없는 함수를 말한다. 람다 함수 선언 및 사용 람다 함수는 임시적으로 사용하는 것이기에, 정의가 되지 않지만 변수에 저장하여 사용할 수도 있고, 선언하자마자 호출이 가능하다. # lambda 인자 : 실행식 lamda a, b : a + b # 즉시 호출 print((lambda a, b : a + b)(3, 5)) # 8 # 변수에 람다 함수 저장 add = lamda a, b : a + b print(add(3, 6)) # 9
[Python] 함수
함수란? 특정한 기능을 수행하는 프로그램 단위이다. 파이썬에서의 함수는 사용자 정의 함수와 내장 함수로 나누어진다. 함수 선언 및 호출 # 함수 선언 def a (): print("hello") # 들여쓰기 주의 a() # 함수 호출 # "hello" 파이썬에서 함수 선언 할 때 주의점은 들여쓰기다. 함수를 선언하고 함수에 포함될 코드는 들여쓰기를 사용하여 작성한다. 다른 언어에서도 마찬가지지만, 함수 정의와 호출은 다르다. 함수를 def ~~를 하면 함수를 만들고, 선언 하는 것으로, 실행이 되지 않는다. 선언한 함수를 실행하기 위해서는 호출을 해야하는 데, 호출을 하는 방법은 함수명() 이다. 함수의 인자 이용 기본적인 인자는 아래와 같이사용한다. # 리턴이 있는 함수 선언 def add(a, b):..
[Python] 딕셔너리
딕셔너리란? 딕셔너리는 키와 값이 한 쌍이 되어 나열된 시퀀스를 의미한다. car = {"A" : "소나타", "B" : "그랜저, "C" : "재네시스"} 빈 딕셔너리 생성 및 항목 추가와 참조 user = {} 이런 식으로 빈 중괄호를 열어 빈 딕셔너리를 생성 할 수 있다. user["1" ] = "PINO" 이런 식으로 딕셔너리에 항목을 추가 할 수 있다. user = {} user["1"] = "PINO" print(user["1"]) # >>> PINO 딕셔너리의 키 값은 수정 불가능한 객체로 사용해야한다. 딕셔너리 키는 수정 불가능한 객체는 모두 가능하다. 따라서 정수, 실수, 튜플도 이용이 가능하며, 리스트는 불가능하다. 딕셔너리 항목의 순회 딕셔너리 항목을 순회하기 위해서는 keys()와 ..
[JavaScript] JS 표준 내장 객체, Map
Map이란? Map은 JavaScript의 표준 내장 객체로, 키와 값이 쌍으로 이루어진 콜렉션이다. Map 객체의 특징 객체를 포함한 모든 값을 키로 사용 할 수 있다. 객체는 이터러블이 아니지만, Map은 이터러블이다. 키 값이 고유하다. Map 생성 const map = new Map([["key", "value"], ["key1", "value1"]]) console.log(map) // Map(2) {'key' => 'value', 'key1' => 'value1'} set()를 이용한 요소 추가 const map = new Map([["고기", "삼겹살"], ["물고기", "금붕어"]]) map.set("해산물", "오징어") map.set("캐릭터", "짱구").set("물고기", "금붕어"..
[JavaScript] JS 표준 내장 객체, SET
SET이란? SET은 JavaScript의 표준 내장 객체로, 중복되지 않은 유일한 값의 콜렉션(집합)이다. SET 객체는 수학적 집합을 구현하기 위한 자료 구조로, 교집합, 합집합 등을 구현 할 수 있다. SET 객체의 특징 동일한 값을 중복하여 포함 할 수 없다. 요소 순서의 의미가 없다. 인덱스에 요소로 접근 할 수가 없다. 자료형에 관계 없이 원시 값과 객체 참조등 모두 저장 가능하다. SET 생성 const set1 = new Set() console.log(set) // Set(0) {} const set2 = new Set([1, 2, 3]) console.log(set) // Set(3) {1, 2, 3} const set3 = new Set("Hello") console.log(set) ..
[JavaScript] 비동기 처리 - Promise
JavaScript에서 비동기 처리는 전 게시글에 나온 콜백 함수를 통해서 처리를 했지만, 콜백 함수가 중첩 되어서 계속 호출해야하는 복잡한 코드의 경우는 계속 들여쓰기를 사용을 하여도, 코드의 가독성이 현저하게 떨어지게 되는 콜백 지옥이 발생이 됩니다. 해당 문제를 해결하기 위해 Promise를 사용하게 되었습니다. Promise란? Promise는 현재에는 당장 얻을 수 없지만 가까운 미래에 얻을 수 있는 데이터에 접근하기 위한 방법을 제공한다. Promise 생성 방법 아래와 같이 Promise 객체를 생성하는 데, 보통은 변수에 할당 하는 것이 아닌, 함수의 리턴 값으로 사용하는 경우가 많다. const promise = new Promise((resolve, reject) => {}) Promi..
[JavaScript] 평가와 일급, 고차 함수
평가란? 코드가 계산 되어 값을 만드는 것을 의미한다. 일급이란? 아래의 항목에 해당 되는 것을 의미한다. 일급은 값으로 다룰 수 있다. 일급은 변수에 담을 수 있다. 일급은 함수의 인자로 사용이 가능하다. 일급은 함수의 결과로 사용 될 수 있다. // a와 10은 변수에 담을 수도, 값으로 다룰 수 있어 일급이다. const a = 10 // abc()와 a, def는 모두 일급이다. const abc = a => a + 10 const def = abc(a) 일급 함수란 일급으로 다뤄지는 함수로, 값으로 다룰 수 있다. JavaScript에서 함수가 일급인 것은 조합성과 추상화의 도구로 사용 할 수 있다는 것이다. // 함수 a => a + 5는 변수 add에 저장 할 수 있기에, 1급이다. cons..
[Git] 브랜치(branch)
Git은 비선형 개발 작업 흐름을 가진 버전 관리 시스템이다. 이 말은 분기처리, Branch를 사용한다는 것이다. 브랜치란? 새로운 버전을 만드는 것이며, 메인 브랜치에 반영이 되지 않아서 안전하고 오류 없는 상태를 유지한다. 브랜치는 작업 중인 새 기능에 대한 브랜치를 생성하여, 자유롭게 실험해보고 원할하게 작동하면 메인 브랜치에 병합 하는 등으로 사용한다. 브랜치는 여러개 생성도 가능하고, 브랜치에 브랜치를 생성하는 것 또한 가능하다.
[Git] 버전 관리
버전 관리란? 파일의 추가 및 수정 이력등을 관리하는 것을 의미한다. 프로젝트들의 규모가 커짐에 따라 개개인의 파일 버전 관리의 필요성이 대두 되기 시작하였다. 파일명으로 관리를 하면 복잡해지기도 하고, 해당 파일을 언제 어떻게 수정 되었는 지에 대한 정보도 알 수 없다. 버전 관리에는 누가 어느 저장소에, 어느 파일을, 언제, 무엇을이라는 개념이 필요하다. 시간 흐름에 따라 파일 또는 폴더에 대한 변경 사항을 추적하고 관리를 할 수 있어야한다. 필요하면 이전 버전으로 되돌리고, 변경 사항의 자세한 확인이 가능해야하고, 소스 내용의 충돌에 대한 철리와 언제 어떤 파일이 삭제되고 추가 되었는 지에 대한 확인, 여러 사용자에 대한 처리 등 여러가지로 버전 관리가 되어야하는 데, 그것을 해주는 것 중 하나가 ..