본문 바로가기

전체 글400

객체지향 프로그래밍? 객체지향 프로그래밍은 프로그램을 명령어 혹은 함수의 목록으로 보는 '명령형 프로그래밍'의 절차지향적 관점에서 벗어나 여러 개의 독립적인 단위, 즉 '객체'의 집합으로 프로그램을 표현하는 프로그래밍 패러다임을 말한다. 객체는 '상태 데이터'와 '동작'을 하나의 논리적인 단위로 묶은 복합적인 자료구조이다. 이때 객체의 상태 데이터를 '프로퍼티' , 동작을 '메소드'라고 부른다. 각 객체는 고유의 기능을 갖는 독립적인 부품으로 볼 수 있지만, 자신의 고유한 기능을 수행하면서 다른 객체와의 관계성을 가질 수도 있다. "상속"은 객체지향 프로그래밍의 핵심 개념으로 어떤 객체의 프로퍼티 또는 메소드를 다른 객체가 상속받아 그대로 사용할 수 있는 것을 의미한다. // OOP (Object Oriented Progra.. 2023. 5. 9.
CORS 에러! 복습하기 이제 CORS 에러가 왜 발생하는지는 알겠는데, 왜 CORS 에러가 발생하는지를 더 심층적으로 공부해보기 * 먼저, CORS 에러는 어디에서 발생할까? => 다른 곳에서는(ex. postman) 잘만 get해서 데이터를 받아오는데 이상하게 '어디'서만 요청을 보내면 자꾸 발생하는 CORS !!! 그 '어디'가 어디일까? -> '웹사이트'에서 AJAX 요청을 보냈을때마다 되지 않았다. -> 그 말은 웹사이트를 여는 곳, 즉 , 브라우저 (ex. 크롬, 사파리) 에서 일어나는 문제인 것 이건 서버에서 막는게 아니라 바로 '브라우저'에서 막는 것 (웅 요건 알고있었오) ** 그럼 왜 브라우저에서 Cross Origin 을 막는걸까? 먼저, 보통 사이트에 우리가 로그인을 하면 인증과 관련된 정보인 토큰이 브라우.. 2023. 5. 8.
this 바인딩 this 바인딩은 '함수 호출 방식'에 의해 동적으로 결정이 된다. ** 렉시컬 스코프와 this바인딩은 결정 시기가 다르다 함수의 상위 스코프를 결정하는 방식인 '렉시컬 스코프'는 함수 정의가 평가되어, '함수 객체가 생성되는 시점'에 상위 스코프를 결정한다. 하지만 this바인딩은 함수 '호출' 시점에 결정된다. 1. 일반 함수 호출 // 1. 일반 함수 호출 function foo(){ console.log("this",this) function bar(){ console.log("this",this) } bar(); } foo(); -> 일반 함수로 호출하면 함수 내부의 this는 전역 객체 (window) 바인딩이 된다. but, 일반 함수에서는 this를 쓸 일 x (this는 객체의 프로퍼티.. 2023. 5. 7.
Node.js로 웹서버 간단 구축해보기 (코딩애플 영상보다 삘받아서 mysql, node.js, express 사용해보깅) * HTML 웹페이지에 글쓰고 그림 넣기 위해 만들어진 언어 * JS ? HTML 페이지에 '종속' 된 언어 HTML 페이지를 위해 만들어진 언어 !!! ' HTML 조작 ' 을 위해서 만들어진 언어 그럼, JS는 누가 동작시켜주냐 ?! 이 js를 해석하는게 '브라우저'이다 '브라우저'마다 자쓰 해석 엔진이 있는데, 크롬은 v8 , 모질라는 스파이더몽키 크롬이 v8를 만들어내고 나서 js엔진이 너무 뛰어난 나머지 v8를 브라우저에서 똑 떼서 출시를 하게 됌 그것이 바로 Node.js !!!!!!!! ( 노드.js 는 크롬의 자쓰 해석 엔진으로 이루어져 있음 ) node.js를 만든 이유? 자쓰를 브라우저 내에서 말고도 다른 환경에서 쉽게쉽게 실행하기 위해서 (자바스크립트 런타임) 그러다 node.js로 .. 2023. 5. 6.
오버라이딩과 오버로드 ? 오버로딩(Overloading)과 오버라이딩(Overriding)은 객체 지향 프로그래밍에서 중요한 개념 1. 오버로딩 (Overloading) 오버로딩은 같은 이름의 메서드를 매개변수의 개수나 타입이 다르게 정의하는 것 => 즉, 같은 이름의 메서드를 여러 개 만들 수 있다. 이렇게 메서드를 오버로딩하면 같은 기능을 하는 메서드들을 하나의 이름으로 통일할 수 있다. [ 오버로딩 으로 구현한 코드 ] public class Calculator { public int add(int a, int b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } public double add(double a, double b) { r.. 2023. 5. 5.
[TIL] 오늘의 개발일지 어제 면접이 끝나고 찾아온 휴일 ~.~ 해야하는 일들을 먼저 하느라 그동안 읽고 싶은데 계속 미룬 책을 읽었당 >._< ! 오늘의 개발일지 끄읕- 2023. 5. 5.