전체 글 80

Wrapper 클래스

자바의 자료형은 기본 타입과 참조 타입으로 나누어진다. 기본 타입에는 char, int, float, double, boolean 등이 있고, 참조 타입은 class, interface 등이 있다. 래퍼클래스는 기본 타입을 객체로 다루기 위해서 사용하는 클래스(참조 타입)들이다. Wrapper클래스를 사용하는 이유는 참조형 자료형을 사용하는 이유와 같다. 기본 자료형의 값을 단순히 값으로만 사용하지 않고 그 값에 대한 메서드를 사용 혹은 null값을 이용하기 위해 사용된다. 하지만 크게 우리가 Wrapper클래스를 사용하는 이유는 제네릭과 기본 자료형의 값을 문자열로 변환 혹은 반대 경우일 것이다. Wrapper 클래스의 종류 wrapper 클래스는 기본 자료형을 감싼 것이기 때문에 종류 또한 기본 자료..

Java 2022.07.25

python 기초

python으로 알고리즘 문제를 풀거나 멋사 Django 수업을 들을 때 python 기본 문법의 이해가 부족하다고 생각해서 정리한다. 문자열 "Hello World" 'Python is fun' -> 'Python\'s fun' = "Python's fun" """Life is too short""" '''Life is too short, you need python''' a= "Python" b= "is fun" a + b # "Python is fun" a * 10 # "PythonPythonPythonPythonPythonPythonPythonPythonPythonPython" # index접근 a= "Python" print(a[0]) # P print(a[-1]) # n print(a[0:4]..

context & 함수

실행 컨텍스트에 대해 설명해주세요. 실행 컨텍스트란 실행 가능한 코드를 형상화 하고 구분하는 추상적인 개념이다. 자바스크립트는 내부적으로 하나의 콜 스택을 가지며 이 콜스택 내에 쌓이는 함수에 대한 정보를 실행 컨텍스트라고 한다. 함수 선언식 방식과 함수 표현식, 화살표 함수 방식의 차이에 대해 설명해주세요. 함수 선언식은 가장 기본적인 함수 선언 방식으로, function기호를 앞에 붙임으로써 함수를 선언한다. 함수 표현식은 객체 리터럴을 통해 객체를 생성하듯이 함수를 생성하는 방법이다. 화살표 함수는 es6에서 추가된 함수 선언 방식으로 function기호를 따로 쓰지 않고도 함수를 실행할 수 있다. 익명함수(anonymous functions)는 주로 어떤 상황에서 사용하나요? 익명함수는 함수명 대..

scope/hoisting

Scope 스코프는 그 자체로 ‘범위’라는 뜻을 가지고 있다. 자바스크립트에서 스코프는 ‘어떤 변수에 접근할 수 있는 유효범위’이다. 전역 scope를 사용했을 때 장단점에 관해 설명해주세요. 단점 : 변수의 유효 범위가 크면 클 수록 코드의 가독성 문제가 발생할 수 있다. 전역 scope는 생명 주기가 길기 때문에 메모리 상에서 오랜 시간 유지되며 상태 변경에 의한 오류가 발생할 수 있다. 스코프 체인상에서 가장 종점에 존재하기 때문에 가장 마지막에 검색이 되며 검색 속도가 가장 느리다. 장점 : 코드 상에서 어디에서나 접근할 수 있다. 일반적으로 웹 사이트의 전역 스코프를 그대로 두고 건드리지 않는 것이 좋은 이유는 무엇인가요? 전역 스코프는 코드 상 어디에서든 접근할 수 있으므로 다른 블록에서 변수..

React-query

React-query는 서버와의 비동기 통신을 할 때 편하게 해주는 라이브러리이다. useQuery React-query를 사용하면 따로 state를 component에 선언하지 않고도 데이터에 접근할 수 있다. 예를 들어 서버와 통신을 통해 얻은 data를 component안에서 사용하려고 한다면 useState를 사용하여 data를 따로 state로 만들어서 관리해야 한다. 하지만 React-query에서 제공하는 useQuery를 통하면 data를 useState를 사용하지 않고도 서버통신 결과로 보내지는 data에 접근해서 사용할 수 있다. 예시 async function fetchCoins() { return fetch(`사용할 api url`).then((response) => response..

selenium(동적 크롤링)

정적크롤링: 웹 페이지 상에서 변하지 않는 데이이터인 정적 데이터를 크롤링하는 방식이다. 정적 크롤링은 한 페이지 상에서 모든 작업이 이루어 지기 때문에 속도가 빠르다 동적크롤링: 동적 크롤링은 입력, 클릭, 로그인 같이 페이지 이동이 있어야 보이는 데이터를 크롤링 하는 방식이다. 속도가 느리다는 단점이 있지만 더 많은 데이터를 수집할 수 있다. Selenium selenium은 동적인 크롤링을 도와주는 라이브러리이다. 크롤링을 수행한 후 결과의 특정 html엘리먼트에 마우스 클릭을 발생시키거나, input 엘리먼트에 텍스트를 채워넣기 등이 가능하다. ChromeDrive 설치 https://sites.google.com/chromium.org/driver/ ChromeDriver - WebDriver ..

이벤트 & 모듈

이벤트 버블링(Event Bubbling)에 대해서 설명하세요. 이벤트 버블링은 특정 면 요소에서 이벤트가 발생했을 때 해당 이벤트가 더 상위의 화면 요소들로 전달 되어 가는 특성을 의미한다. 이벤트 캡쳐링(Event Capturing)에 대해서 설명하세요. 이벤트 캡쳐링은 이벤트 버블링과 반대 방향으로 진행되는 이벤트 전파 방식으로, window로부터 이벤트가 발생한 요소까지 이벤트를 전파한다. 이벤트 버블링을 막기 위한 방법은? e.stopPropgation() api사용 이벤트 루프와 태스크 큐에 대해 설명해 주세요. 이벤트 루프는 콜 스택과 콜백 큐의 상태를 체크하여, 콜 스택이 빈 상태가 되면, 콜백 큐의 첫번째 콜백을 콜 스택으로 밀어넣는다. 그리고 이러한 행동을 틱이라고 한다. 태스크 큐는 ..

CORS에러

브라우저에서는 보안 상의 이유로, 교차 출처 HTTP요청만 할 수 있다. 따라서 브라우저는 동일한 출처의 리소스에만 접근할 수 있도록 HTTP요청을 제한하고 이를 cors에러라고 한다. 예를 들어 클라이언트에서 IP주소가 192.123.0.1이라면 서버 역시 동일한 IP주소인 192.123.0.1일 때 서버 리소스에 접근할 수 있다. 만일 서버 주소가 98.98.0.1이라면 브라우저에서는 서버 접근을 제한하며 cors policy를 위반했다고 알린다. Node js에서 해결방법 일반적인 해결 방법으로는 서버에서 header에 Access-Control-Allow-Origin를 표기해주면 된다. * 예시코드 import express from 'express' app.use((req, res, next) ..

protype & closer

Prototype 자바스크립트는 프로토타입 기반 언어이다. 자바스크립트의 객체는 모두 부모 객체와 연결되어 있고 객체 지향의 상속과 같은 개념으로 자식 객체는 부모 객체의 프라퍼티나 함수를 사용할 수 있다. 이 때 부모 객체를 프로토타입이라고 한다. 1. prototype 기반 상속은 어떻게 하는지 설명해주세요. prototype 상속에는 속성 상속과 메소드 상속이 있다. 속성 상속은 객체의 속성에 접근하려할 때 객체 내 속성 뿐만 아니라 객체의 프로토타입과 체인의 종단에 있는 프로토타입까지의 속성을 탐색하여 접근하는 것을 말한다. 그리고 메소드 상속은 Object.create()를 사용하여 객체를 복사하듯이 만들고 원본 객체안에 있는 함수를 사용하듯이 쓸 수 있다. 2. 프로토타입 체인이란 무엇인가요?..