📌Language 129

TIL) 객체 지향 프로그래밍, OOP, 캡슐화, 추상화, 상속, 다형성

객체 지향 프로그래밍 vs. 절차 지향 프로그래밍 절차 지향 프로그래밍 = 단순히 별개의 변수와 함수로 순차적으로 작동 절차적 언어 = 순차적인 명령의 조합 ex) 초기의 C, 포트란 객체 지향 프로그래밍 = 데이터의 접근, 데이터의 처리 과정에서 대한 모형을 만들어낸다. ('클래스'라는 데이터 모델의 청사진을 사용해서 코드를 작성한다. ) 그래서 데이터와 기능이 별개로 취급되지 않고, 한 번에 묶여서 처리할 수 있게 된다. // 메서드와 속성이 존재한다. 현대 언어들은 대부분 객체 지향의 특징을 가지고 있다. OOP는 프로그램 설계 철학이다. OOP의 모든 것은 '객체'로 그룹화된다. // 이 객체는 한번 만들고 나면, 메모리상에서 반환되기 전까지 객체 내의 모든 것이 유지된다. OOP의 재사용성을 얻..

TIL) 객체 지향 프로그래밍, 클래스, 인스턴스, 모듈화를 하는 이유

객체 지향 프로그래밍 (OOP; Object-oriented programming)= 데이터와 기능을 한 곳에 묶어서 처리한다. 속성과 메서드가 하나의 '객체'라는 개념에 포함되며, 이는 js 내장 타입인 object와는 다르게, 클래스라는 이름으로 부른다. 메서드 호출하는 방법 // 화살표 함수를 쓰지 않는다. ** 화살표 함수 ** this나 super에 대한 바인딩이 없다. 메서드로 사용될 수 없다. new.target 키워드가 없다. 모듈화란? 코드의 재활용성을 높이고, 유지보수를 쉽게 할 수 있는 다양한 기법들이 사용된다. ==> 그 중 하나가 코드를 여러개의 파일로 분리하는 것이다. (모듈화) 1. 자주 사용되는 코드를 별도의 파일로 만들어서 필요할 때마다 재활용할 수 있다. 2. 코드를 개선..

TIL) 고차함수, 내장고차함수, map, filter, reduce

일급객체 변수에 할당 가능 // (함수 표현식 & 함수 선언식 모두 가능) 다른 함수의 전달인자로 전달 가능 // 콜백함수 = 함수에 인자로 전달되는 함수. 다른 함수의 결과로서 리턴 가능 (함수가 일급객체이기 때문에 클로져도 사용가능한거였다. ) => 문자열, 숫자 같은 다른 데이터처럼 사용 가능! ==> js에서 함수는 일급객체!! 커링함수 = 함수를 리턴하는 함수. 고차함수 함수를 변수에 할당할 수 있기 때문에, 함수를 배열의 요소나 객체의 속성값으로 저장할 수 있다. 함수가 일급객체라서 고차함수로 활용 가능한거다! 함수를 전달인자로 받는 함수 함수를 리턴하는 함수 콜백함수 비동기에서 콜백함수가 매우 중요하다. 커링함수 커링함수때문에 클로저가 나온거다. 거의 같다고 말할 수 있다. 배열 내장 매서드..

TIL) 문자열과 배열의 공통점

문자열과 배열의 공통점 1. 접근과 수정 방법 배열은 접근과 수정 방법은 문자열의 접근과 수정 방법과 동일하게 [괄호 표기법]을 사용한다. const number = [0,1,2,3,4,5]; console.log(number[3]); // 3이 출력된다. number[2] = 20; console.log(number); // [0,1,20,3,4,5]이 출력된다. 2. 둘 다 index를 가져서 관련 메서드를 사용할 수 있다. ex) indexOf, slice, length 메서드를 사용할 수 있다. 2-1. 갯수 알아내기 length 속성을 이용한다. 혹시나 잘못된 개념 전달이 있다면 댓글 부탁드립니다. 저의 성장의 도움이 됩니다. 참고 https://developer.mozilla.org/ko/do..

TIL) id 속성과 class 속성의 차이에 대해서 설명해주세요.

html의 특정 요소에만 다른 효과를 주고 싶을 때, 해당 요소에 클래스명 또는 아이디값을 할당하여 처리합니다. 하지만 이 둘의 차이점이 존재합니다. ID를 불러올때는 #ID명 앞에 # 샾을 씁니다. #ID명 CLASS를 불러올때는 .CLASS명 앞에 . 마침표를 씁니다. .CLASS명 ID는 중복으로 사용할 수 없습니다. 한 개의 ID는 페이지에서 딱 한번만 사용해야 합니다. CLASS는 중복 사용이 가능하여, 동일한 CLASS명을 페이지의 여러 곳에 사용해도 상관없습니다. CLASS 속성을 둘 이상 사용할 때는 class="class1 class2" 와 같이 띄어쓰기로 구분해야 합니다. 그리고 CSS내에서 가장 마지막에 작성한 스타일이 적용되는 점을 유의해야합니다.

TIL) innerHTML 메서드와 textContent 메서드의 차이에 대해서 설명해주세요.

innerHTML 와 textContent 메서드 모두 텍스트 값을 읽어오고, 설정할 수 있는 기능을 합니다. 하지만 이 둘의 차이점은 분명합니다. 먼저 innerHTML 메서드는 해당 요소에 포함된 HTML*, XML**의 전체 내용을 읽어오거나 설정할 수 있습니다. 그래서 태그는 물론이고, HTML 코드 내의 공백까지도 출력됩니다. 하지만 XSS*** 공격 위험에 취약하다는 단점이 있습니다. 이에 반해, textContent 메서드는 해당 요소와 그 자손의 텍스트 콘텐츠를 표시합니다. 따라서 innerHTML 메서드와는 달리 HTML로 분석할 필요가 없다는 점에서 textContent의 성능이 더 좋고 XSS*** 공격 위험이 없습니다. 따라서 결론적으로 가급적 textContent를 사용하는 것이 ..

CSS 간격을 맞추고 싶은데 안됩니다..! css 보라색 부분 없애기

문제사항 아래 표에서 사진 - 내용 - 체크표시를 담고 있는 전체 영역의 justify-content 를 space-between으로 설정했다. 그랬더니 가운데의 내용 영역에 따라 가운데 배열이 되서 전체적으로 깔끔하지 못한 인상을 주고 있다. 내가 만들고 싶은 것 가운데 내용 영역의 글자 길이에 영향을 받지 않고, 제목은 왼쪽에 붙이고, 아이디와 날짜는 오른쪽으로 붙이고 싶다!  해결과정 1. 개발자 도구에서 영역을 확인한다. 👇 내용이 1줄이 안되는 부분에는 보라색으로 빗금이 있다. 이 부분을 없앤다면 내가 원하는 대로 만들 수 있다는 것을 알았다!! 2. 사진 - 내용 - 체크표시를 담고 있는 전체 영역의 크기를 내가 임의로 설정해주자! (맨 위 사진에서 파랑색 영역) width, heigh를 설..

TIL) 웹 유효성 검사, 관심사 분리

유효성 검사 사이트에서 원하는 조건에 맞게 반드시 형식을 맞춰 입력해야 하는 경우 특정 값은 반드시 입력해야 합니다. (아이디, 이메일, 비밀번호, 이름, 전화번호 등) 비밀번호는 n 자릿수 이상이어야 하고, 숫자나 특수문자를 반드시 포함해야 합니다. 비밀번호와 비밀번호 확인란에 입력된 문자가 동일해야 합니다. 신용카드의 경우, 입력한 신용카드의 번호가 유효해야 합니다. 유효성 검사의 목표 작동이 가능한 MVP(Minimum Viable Product)를 만들어 내는 것 MVP : 최소 기능 제품(Minimum Viable Product, MVP)는 고객의 피드백을 받아 최소한의 기능(features)을 구현한 제품 DOM 기초 실습을 통해, 구체적인 사용법을 익힐 수 있다. - querySelector..

TIL) DOM 기초, DOM 다루기, CRUD, 부모, 자식, 형제 찾기

DOM (Document Object Model) DOM은 HTML 문서를 파싱한 결과물이다. HTML 문서의 계층적 구조와 정보를 표현하며 이를 제어할 수 있는 API, 즉 프로퍼티와 메서드를 제공하는 트리 자료구조이다. HTML 요소를 Object(JavaScript Object)처럼 조작(Manipulation)할 수 있는 Model이다. 즉, JavaScript를 사용할 수 있으면, DOM으로 HTML을 조작할 수 있다. DOM의 개념을 이해한다. DOM의 구조를 파악하고, HTML과 DOM이 어떻게 닮아있는지 이해한다. HTML에서 JavaScript 파일을 불러올 때 주의점에 대해서 이해한다. [심화]DOM과 JavaScript의 차이에 대해 이해할 수 있다. HTML에 JavaScript를 ..

자바스크립트로 할 수 있는 7가지

1. 인스타그램, 페이스북 같은 모바일 앱 리엑트 네이티브를 활용하자. 자바스크립트를 기반으로 프로그래밍할 수 있는 환경이다. https://reactnative.dev/ 2. 디스코드 같은 비디오 앱 & 오디오 앱 브라우저에서 프로그램이 돌아가는 비디오 앱 webRTC 기술을 사용. 자바스크립트로 만든 신디사이저도 존재한다. https://www.websynths.com/ 3. 아두이노, 라즈베리 파이 같은 로봇 및 IoT 디바이스 앱. JohnnyFive라는 라이브러리 활용해서 LED, 각종 모터, GPS, 적외선 센서, 근접 센서 등등 하드웨어를 제어할 수 있다. 4. 카카오톡이나 페이스북 메신저 같이 플랫폼에서 챗봇 기능 제공하는 챗봇 AI 스피커에도 적용가능 https://developers.k..