본문 바로가기

programming/JS

(10)
CLASS 와 OBJECT의 차이 클래스와 오브젝트의 차이란 뭘까, 처음에 JS 를 배울 때도, 이 차이에 대하여 깊히 생각해본 적은 없었다. (왜냐면 어려웠기 때문에, 다른 부분에 대해 먼저 파헤쳐본 것 뿐!) 하지만, 이제는 피할 수 없다! **클래스**! 그리고 궁금하다... 너 사용법!! 클래스를 낱낱이 파헤쳐서 개발 인생에 광명 찾고 싶다! 나 오늘은 클래스 마스터로 거듭날 하루를 보낼거다! 아무도 막지 마라! ## Class와 object >객체 지향언어에서 사용되는 개념 Class는 `분류`라고 하면 object는 `개체`라고 생각할 수 있다. 즉 Class는 object라는 instance를 포괄하는 개념으로 볼 수 있는 것. 혹자는 Class를 붕어빵 틀에 비유하곤 한다. 즉, 붕어빵은 `붕어빵 틀`이라는 Class를 통..
개발자 인생 제 1차 프로젝트 회고 @Velog에서 Tistory로 옮기는 작업 진행 중 # 개발자 인생 제 1차 프로젝트 회고 ## INDEX ### 1. 들어가며 ### 2. 제 1차 프로젝트 : WESH KOREA ### 3. _**KPT**_ IN MY PROJECT ### 4. AFTER PROJECT 1. 들어가며 글을 쓸 때 서사를 작성하는 것이 가장 힘들다. 나는 지금 내 개발자 이야기를 시작하고 있는 중이다. ‘개발자’라는 하나의 주제에 대한 방향성과 색감에 대해 함께 고민해야만 한다. 지금까지의 인생을 생각하면, 내가 모든 행동에 의미를 부여하고 살지 못했다. 내가 이 프로젝트를 통해 얻은 것이 있다면, 삶이든 개발이든 의미를 생각하면서 살아야겠다는 것. 그 당연한 깨달음이 이제서야 나에게 도달한 것이 조금은 서글프다. ..
서버 함 만들어보까? | API와 HTTP API - Application Programming Interface 인터페인스란 서로 다른 양 물체가 상호간 정보나 신호를 주고받기 위해 필요한 접점이나 경계면과 같은 의미가 있다. 상호 소통을 위한 "교량"정도가 아닐까? 실생활에서도, 입력, 출력을 대신 해주는 아이콘, 마우스 등의 다양한 인터페이스가 있지만, API는 응용 프로그램들간의 접점이다.(운영체제에서 실행되는 모든 소프트웨어 =>브라우저, 카톡, 메모장 등등) 특히 웹 개발자가 되는 우리에게 API란, 3세대 웹에 들어 양분화된 프론트앤드와 백앤드의 사이에서 소통이 되는 접점이라고 생각하면 된다. 사실은 프론트엔드와 백앤드가 아니라, 클라이언트와 서버지만 이는 상대적인 개념이여서, 이런 식으로 이해하는 것이 빠르지 않을까 싶다. 웹에서의..
JS| NODE.JS Node.JS란 V8엔진을 탑재한 JS 서버 사이드 오픈 소스 런타임 쉽게 말하자면, Java script를 브라우저 외의 상황에서 사용하고자 만든 언어이다. V8 엔진 : C언어로 만들어져 자바스크립트 언어로 작성된 코드를 컴퓨터가 해석하기 쉬운 바이트 코드로 변환해주어, JS의 실행 속도가 비약적으로 증가하는데 기여함. 서버 사이드 : 클라이언트 사이드의 반대말. 런타임 : 실행환경을 의미. 노드JS는 JS의 런타임을 한정되었던 브라우저에서 탈출시켜 이외의 환경에서도 동작할 수 있게 하기위한 목적을 가지고 탄생함! 이를 통해 운영체제의 파일 시스템에 접근해서 파일을 조작하는 등의 다양한 일들이 가능! Java Script의 장점은? 프론트엔드와 백엔드의 기술 스택 통합에 유리 : 백앤드, 프론트앤드 ..
JS | 조건에 맞추어 객체 내 값 변경하기, 새로운 프로퍼티 넣기(SWITCH) Assignment 아래 설명을 읽고 getExamResult 함수를 구현하세요. 인자 scores 는 다음과 같은 객체입니다. 객체의 요소의 갯수 및 키의 이름들은 달라질 수 있습니다. 객체의 값은 다음 9가지 문자열 중에서 하나를 가지고 있습니다. 'A+', 'A', 'B+', 'B', 'C+', 'C', 'D+', 'D', 'F' { '생활속의회계': 'C', '논리적글쓰기': 'B', '독일문화의이해': 'B+', '기초수학': 'D+', '영어회화': 'C+', '인지발달심리학': 'A+', }​ 인자 requiredClasses 는 다음과 같이 문자열로 된 배열입니다. ['영어회화', '기초수학', '공학수학', '컴퓨터과학개론'] 다음 조건을 만족하는 객체를 리턴하도록 함수를 구현해주세요. ..
JS | Array.map() 과 Array.forEach() JS| Array.prototype.map(); Array.map() 메서드는 배열 내 요소를 반복하여 인자로 받은 함수의 값을 받아온다. 그리고 callback 함수에서 return값으로 구성된 배열을 return 해준다. const squares = arr.map( function (x) { return x * x; }); map은 Array 타입의 데이터를 요소 갯수만큼 반복한다. 반복할 때마다 실행할 함수를 parameter로 전달하는데, Array 타입의 데이터 요소를 함수의 인자로 받는다. 하지만, map 메소드는 변경된 요소를 담은 배열을 반환하는 것이지 본 배열에 영향을 끼치지 않는다는 것을 잘 기억해야 한다.(나 자신) 위와 같이 새로운 변수에 할당하는 방식으로 이용할 수 있다. cons..
JS | arrow method(map, forEach) 더보기 콜백 함수로 많이 사용하는 함수인 arrow function. 뒤늦게 만들어진 함수인만큼, 눈에 잘 보이지 않아 익숙하지 않은 함수이기도 하다. const add = () => {}; 기본적으로 위와 같은 모양으로 사용한다. add라는 변수 공간에 함수를 할당시켜 주는 모양으로, `() = > {}`라는 함수를 왼쪽으로 할당한다고 생각하면 된다. 소괄호() 내에는 매개변수가 들어가고, 대괄호 {} 내에는 함수 내부식이 들어간다. 만약 parameter가 하나이면, 소괄호를 생략시켜도 된다. 0개나 2개 이상의 매개변수가 들어오는 경우에는, 소괄호를 생략시킬 수 없다.
JS | method를 포함한 Class 만들기 MyMath라는 class를 만들었다. 각 메소드들은 class에 포함된 값들을 가지고 있는 배열을 만들고, 더하고, 빼고, 곱하는 메소드들을 가지고 있다. constructor로 인스턴스를 반환할 수 있는 클래스! class MyMath { constructor (first, second){ this.num1 = first; this.num2 = second; } getNumber (){ return [this.num1, this.num2]; } add(){ return this.num1+this.num2; } substract(){ return Math.abs(this.num1-this.num2); } multiply (){ return this.num1*this.num2; } } 모양이 이렇다, 만..