목록전체 글 (103)
coding etude
이것저것 바빠서 또 .. 오랜만에 포스팅을.... (...유구무언.. 인간은 나약한 존재... ) 오늘은 클라이언트와 서버에 대해서 이야기 해볼까 한다. 클라이언트란 무엇일까? 사전적 의미는 고객라이는 뜻으로 사용자 정도로 해석하면 될 것 같다. 그렇다면 서버는?? 사전적 의미는 제공하는 사람 or 제공자 이다. 그럼 클라이언트의 종류는 어떤것이 있을까? 사실 클라이언트의 종류는 굉장히 다양하다 컴퓨터/ 모바일/ 브라우져 등등 서버에 요청을 보내고 그 결과를 사용자에게 전달해서 보여주는 기기 또는 프로그램을 모두 통칭하는 말이다. 자 그럼 우리는 이 시점에서 서버와 클라이언트의 상관 관계도를 그려보아야 한다. 보통 서버라고 하면 위의 사진과 같은 모습을 상상할 것 이다.. 생각하는것이 맞다..........
동기/ 비동기는 무엇일까? 한국어 사전을 검색해 보았다. 최소 7가지의 동기라는 단어가 나온다....-_-;;; 그 중에서 가장 적절한 말은 (동기 : 같을 동/ 기약할 기 [명사 : 같은 시기. 또는 같은 기간])을 의미한다. 그럼 synchronous는 무엇일까?? [synchronous : 동시 발생[존재]하는] 이라는 뜻을 가지고 있다. 이 말인 즉, 실행 했을 때 그 결과값이 동시에 발생해야(존재해야) 한다는 말이다. 예를들어 커피숍에 들어가서 주문을 하려고 줄을 섰는데.. 첫번째 사람이 커피를 주문하고, 결재를 하고, 커피를 만들고, 커피를 받으면 다음 사람이 주문을 할 수 있는 것이 동기 인것이다. '커피를 주문 했으니 주문한 커피를 반환해야 한다' // 주문과 받는것이 동시에 이루어 지고 ..
정말 오랜만에 포스팅을 하는.. 쿨럭.. 정신줄 놓고 sprint 끝내는거에만 집중 해서인지.. 그동안 복습을 하나도 안했다는... 이러다가 진짜 아무것도 못하게 될까봐.. 다시 한번 정신을 붙잡고.. 쿨럭.... fs(file system) 이라는것이 처음 나왔다.. 여기서부터는 서버와 DB의 영역으로 들어서는 듯한데.. 당췌 이해하기가 어렵다.. 일단 개연성 없이 주어진 데이터를 머리속에 입력해 보자. 아무튼 이 fs를 정확하게 인지하고자 검색을 했다.(en.wikipedia.org/wiki/File_system) 해석하자면 컴퓨터에서 데이터를 저장하고 불러올 때 메모리에 그냥 저장만하면 구분없는 하나의 큰 데이터로 표시 될것이고 원하는 파일을 찾을 수 없게 되는데, 이러한 상황을 방지하기 위해 데이..
Linked List : node 들의 연결 구조로 head 와 tail을 가지고 있고 각 node는 다음 node의 값을 가지고 있는 구조이다. 1. Linked List의 장점과 단점 : Linked List는 데이터와 link 주소 를 가지고 있는 node 들의 연결 이라고 볼 수 있다. 실제로 node 들이 연결 되어 있는것이 아니라 단순히 데이터가 다음 데이터의 주소를 가지고 있는 것이다. 이 node들 데이터와 주소 두가지를 모두 가지고 있어야 하는 특이한 데이터 이다. @장점 - node들의 link주소를 이용하면 데이터의 삽입과 삭제가 간편하다. : 만약 리스트의 모든 위치를 파악하고 있다면 단순하게 node.next를 바꿔주는것 만드로 어느 위치에서든 데이터를 삽입 할 수 있다. @단점 ..
OOP (Object-Oriented Programming) : 사전적 의미 그대로 객체 지향 프로그래밍의 약자로 명확히 정의된 의미는 없다. 하지만, 객체 지향의 특성을 통하여 객체지향의 의미를 알 수 있다. 객체 지향 프로그래밍이란 실세계에 존재하는 모든 것(객체)을 가상의 프로그램의 세계에 구현하기 위해 객체의 특징적인 개념 또는 기능들을 추상화(abstraction)작업을 통하여 간결하게 만들어 내는 프로그래밍의 한 형식이라고 할 수 있다. (abstraction 을 통한 encapsulation을 실행하는것) *지향의 사전적 의미 : 그것(객체구현)을 실현하는 데 필요한 수단과 예상되는 결과의 관념을 이르는 말 객체지향 언어는 이전의 컴퓨터 친화적인 언어에 가까운 절차지향 프로그래밍과 다르게 인..
Stack : 한쪽으로만 자료를 넣고 뺄수 있는 Last in first out(LIFO) 형태의 자료구조 Stack 의 method pop : Stack의 제일 위(끝)에 자료를 제거한다. push(node) : Stack 의 제일 위(끝)에 node(자료)를 추가한다. peek : 가장 마지막의 자료를 반환 한다. isEmpty : Stack가 비어있을 때 true 를 반환. Stack 의 사용 예시 재귀의 사용 : 재귀 사용 시 임시데이터를 스텍에 넣어주고 backtrack(퇴각검색)을 하면서 스택의 자료를 다시 꺼내온다. 웹브라우져의 뒤로가기 실행취소 (Undo) 역순 문자역 만들기 후위표기 계산법 Stack의 구현 class Stack { constructor() { this.storage = ..
ESlint : linting 을 위해 개발된 유틸리티 Eslint 는 node.js 로 개발 되어서 npm으로 쉽게 설치가 가능하고 설치 후 기본적으로 제공되는 몇가지의 규칙이 제공된다. ESlint의 장점으로 오류를 찾아 내는 규칙을 동적으로 언제나 사용자가 직접적으로 작성 및 수정 할 수 있다는 것이다. 보통 프로그램을 코딩 할 때 오류를 찾기 위해서 따로 코딩을 해줘야 했지만 ESlint를 이용하면 그 수고를 조금은 줄여줄수 있다. ※ lint = 보풀이라는 뜻으로 linting 은 보풀을 제거 한다는 뜻으로 프로그래밍에서는 오류를 제거하다 라는 뜻을 갖는다. ★설치하기 - npm 으로 제작 vsCode 터미널에서 다음 명령어를 입력하면 쉽게 설치가 가능 하다 $ npm install eslint..
Arrow Funcion(화살함수) : ES6 에서 추가된 함수 기능으로 간결한 익명의 함수 이다.(lambda) @화살함수의 특징 - 혼자서는 사용 될 수 없다. : 간결한 익명 함수이고 메소드 형식으로 표현 할 수 없기 때문에 혼자서는 사용 할 수 없다. - 사용 시 parameter 값을 받아 사용하게 된다. // 일반함수 예제 arrow.map(function(parameter){조건식}); // 화살함수 예제 arrow.map((parameter) => { ... }); : 위의 예시처럼 더 간갈한 익명 함수를 선언 할 수 있게 되었다. - 화살 함수는 this, arguments, super(class 상속), new.target(생성자) 를 바인딩 하지 않고 오직 상위객체의 값만을 사용 할 ..