본문 바로가기

전체 글

(123)
순수함수란? 순수함수란? 어떤 함수에 동일한 인자를 주었을 떄 항상 같은 값을 리턴하고 외부의 상태를 변경하지 않는 함수를 의미합니다 순수함수의 장점으로는 코드가 간결하고 동작예측과 테스트하기 쉽다는 장점이 있습니다 순수함수의 조건으로는 사이드 이펙트(side effect)가 없고 불변성을 가져야 됩니다 사이드 이펙트는 함수내부의 실행으로 인해 함수 외부가 영향을 받는것을 의미합니다 사이드 이펙트가 많을 수록 코드의 동작이나 데이터를 예측하기 힘들어집니다 불변성은 원본데이터를 수정하지 않는것을 의미합니다 참조형 데이터타입인 객체나 배열같은 경우 힙 메모리 주소를 가리키기 때문에 함수에 인자로 전달하면 해당 함수에서 인자로 받은 참조형 데이터를 수정하면 원본데이터까지 같이 바뀝니다 이것을 해결하기 위해 순수함수에서는 ..
Promise의 기능과 필요한 이유 프로미스(Promise)는 자바스크립트 비동기 처리에 사용되는 객체입니다 비동기 처리는 특정 코드의 연산이 끝나길 기다리지 않고 다음 코드를 처리하는것을 의미합니다 비동기에 대한 예시로 전화와 문자가 있습니다 전화를 받을때 하던일을 멈추고 전화를 받고 상대방에게 바로 대답을 해야되지만 문자는 확인만 한 후 나중에 응답해줘도 됩니다 전화는 동기적으로 처리하고있고 문자는 비동기적으로 처리를 하고 있습니다 비동기의 장점으로는 비동기요청에 따른 결과가 반환되는 시간 동안 다른 작업을 수행할 수 있습니다. 비동기 처리를 하기 위한 방법으로는 콜백 함수로 비동기처리를 하는 방법이 있습니다 하지만 비동기처리를 많이 해야되는 경우 콜백안에 콜백을 여러번 사용해야되고 코드의 가독성이 떨어집니다 이것을 콜백지옥이라고 합니..
REST API 와 Open API REST REST(“Representational State Transfer”) 는 http를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍쳐 입니다 REST API REST API 는 REST 를 기반으로 서비스 API를 구현한 것 입니다 REST API의 구성 REST API 는 자원(resource), 행위(verb), 표현(representations) 으로 구성됩니다 구성 요소 내용 표현 방법 자원(resource) 자원 URI (엔드 포인트) 행위(verb) 자원에 대한 행위 HTTP 요청 메서드 표현(representations) 자원에 대한 행위의 구체적인 내용 페이로드 REST 설계 원칙(성숙도 모델) REST 설계 원칙은 총 4단계(0~3단계)가 있습니다 3단계까지..
html 시맨틱 요소란? HTML의 최신 버전인 HTML5에서는 시맨틱 웹(semantic web)이 중요시 되면서 여러 시맨틱 요소(semantic element)가 새롭게 만들어졌습니다. 시맨틱이란 ‘의미가 있는, 의미론적인'이라고 해석할 수 있습니다. 다시 말해, 의미를 가진 요소를 사용하는 방식을 추구하기 시작했습니다. 최상위 제목(top level heading)을 표현할 때 사용하는 요소인 요소를 사용할 경우, 브라우저가 큰 폰트 사이즈를 적용할 뿐 아니라, 위아래로 간격을 주어 제목처럼 보이도록 합니다. 이와 같은 효과는 요소, 요소에 CSS 속성을 추가하여 요소와 똑같이 보이도록 할 수 있습니다. 그러나 div나 span태그에는 특별한 의미가 담겨있는 태그는 아니기 때문에 시멘틱 태그는 아닙니다 시멘틱 태그는 즉 ..
프로토타입 체인 HTML 삽입 미리보기할 수 없는 소스 위 코드를 보면 Person 생성자 함수에 의해 생성된 인스턴스 me 객체는 Object의 메서드를 사용하고 있다 이를 통해 알수있는것은 me의 객체가 Person 프로토타입의 프로퍼티 뿐만아니라 Object 프로토타입의 프로퍼티를 상속받은것을 알 수 있다 자바스크립트에서는 객체의 프로퍼티(메서드 포함)에 접근 할 때 접근하려는 프로퍼티가 없다면 프로토타입 내부 슬롯의 참조를 따라 순차적으로 검색합니다 ( me -> Person -> Object 순으로 검색하여 hasOwnProperty() 를 찾아 me 객체가 사용한것입니다) 이것을 체인처럼 연결되어있다고 하여 프로토타입 체인이라고 합니다 프로토타입 체인은 객체지향 프로그래밍에서 상속을 구현하는 방식입니다 프로토..
프로토타입 프로토타입 객체 프로토타입은 객체지향의 핵심인 상속을 구현하기 위해 사용됩니다 프로토타입은 부모객체의 역할을 하는 객체로 다른 객체에 공유 프로퍼티를 제공합니다 프로퍼티를 상속받은 하위객체는 부모객체의 프로퍼티를 자유롭게 사용 할 수 있습니다 모든 객체는 [[Prototype]] 이라는 내부 슬롯이 있으며 [[Prototype]] 에 저장되는 프로토 타입은 객체 생성 방식에 의해 결정됩니다 __proto__ 접근자 프로퍼티 모든 객체는 __proto__ 접근자 프로퍼티를 사용하여 [[Prototype]] 내부에 간접적으로 접근이 가능합니다 HTML 삽입 미리보기할 수 없는 소스 __proto__ 접근자 프로퍼티를 사용하여 [[Prototype]] 내부에 간접적으로 접근이 가능하지만 권장하지 않는 방법입니..
객체지향 프로그래밍이란? 객체지향 프로그래밍은 독립된 객체(Object)의 집합으로 프로그래밍을 표현하는 패러다임 입니다 객체지향 프로그래밍의 장점으로는 상속을 통한 코드 재사용성이 좋고 캡슐화를 통해 유지보수의 우수성이 있고 대형 프로그래밍의 경우 클래스(객체)단위로 모듈화 개발을 통한 업무분담에서 장점이 있습니다 사람을 객체로 표현하자면 아래와 같은 코드로 작성 할 수 있습니다 HTML 삽입 미리보기할 수 없는 소스 객체지향 프로그래밍은 4가지 특징이 있습니다 4가지 특징으로는 추상화, 상속, 캡슐화, 다형성이 있습니다 추상화 사람(person) 에게는 다양한 속성이 있습니다 속성은 변수나(이름,나이,성별등등), 메소드(행동,실행 : 먹는다,잠을 잔다등등)이 될 수 있습니다 여기서 필요한 속성만 간추려 내어 표현하는것을 추상..
클래스와 인스턴스 자바스크립트에서도 클래스와 인스턴스가 있습니다 프로토타입을 이용한 객체지향 언어의 상속을 구현 할 수 있습니다 문법 ES5 문법에서는 프로토타입을 이용하여 구현 할 수 있고 ES6에서는 class라는 키워드를 통해서 구현 할 수 있습니다 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 일반적으로 클래스이름은 파스칼 케이스를 사용합니다 (첫 글자가 대문자로 시작) 인스턴스 인스턴스를 생성하려면 new 키워드와 클래스를 가리키는 식별자로 선언합니다 ( 변수 = new 클래스이름) 인스턴스의 this는 인스턴스를 가리키게 됩니다 (위의 코드에서 인스턴스 person의 this는 this = Student { name: 'Lee Joong Won' } 입니다) 인스턴스를 생성하고 ..
파이썬 SQLite 데이터베이스 사용하기 HTML 삽입 미리보기할 수 없는 소스 import sqlite3 ->SQLite는 파이썬의 표준라이브러리 입니다 (설치가 필요없습니다 선언만 하면 됩니다) ​ SQLite의 장점으론 가볍고 웹브라우저 내부에서도 사용가능하며 안드로이드/iOS의 표준으로 제공하는 데이터베이스라는 것 입니다 또한 별도의 데이터베이스 애플리케이션을 사용하지 않아도 됩니다 ​ dbpath = "test.sqlite" conn = sqlite3.connect(dbpath) ->dbpath 변수에 test.sqlite 라는 문자열을 저장합니다 (데이터베이스 파일의 경로) sqlite3.connect(dbpath) 는 데이터베이스를 연결하는 동작을 합니다 ​ ​ ---------------------------------------..
함수란? 함수란? 함수는 작은 기능의 단위입니다 함수는 함수의 호출과 정의가 있습니다 HTML 삽입 미리보기할 수 없는 소스 function add(x,y)은 함수를 선언(생성)하는것 입니다 add는 함수의 이름이라 부르고 x,y는 파라미터라고 부릅니다 add(1,2)는 함수를 호출을 합니다 1,2는 인수라고 합니다 정리 함수를 호출할땐 함수이름()으로 호출하고 함수에 데이터를 전달할때는 소괄호()안에 데이터를 넣어주고 그 데이터는 인자(매개변수)라고 부릅니다 인수(매개변수가) 함수안에서는 파라미터라고 불립니다 함수를 사용하는 이유 함수를 사용하는 이유는 재사용성 측면에서 매우 유용합니다 반복적으로 실행하는 코드가 있으면 함수로 만들어서 사용하면 코드를 간견하게 작성할 수 있고 추후에 코드를 변경하는등 유지보수에..