전체 글 184

Q. 자바스크립트와 타입스크립트의 차이, 장/단점에 대해 설명

❓자바스크립트 - 정의 자바스크립트는 객체 기반의 스크립트 프로그래밍 언어입니다. 웹 페이지의 동적인 특성을 구현하기 위해 널리 사용 - 장점 범용성 - 거이 모든 웹 브라우저에서 지원되므로 어디서든 실행될 수 있음 학습하기 쉬움 - 다른 프로그래밍 언어들에 비해 상대적으로 학습하기 쉬움 유연성 - 동적 타입 언어이믈 개발 시 유연하게 변수 타입을 할당할 수 있음 - 단점 타입 오류 - 동적 타입 때문에 런타임 중에 타입 관련 오류가 발생할 수 있음 코드 복잡성 - 큰 프로젝트에서는 코드가 복잡해지기 쉬워 유지보수가 어려울 수 있음 ❓타입스크립트 - 정의 타입스트립트는 자바스크립트의 슈퍼셋으로 정적 타입을 지원하는 프로그래밍 언어 컴파일 시에 타입 검사를 수행하여 오류를 찾아냄 - 장점 타입 안정성 - ..

IT/면접 2023.08.31

Q. 쓰로틀링과 디바운싱의 개념과 사용하는 이유에 대해서 설명

쓰로틀링(Throttling)과 디바운싱(Debouncing)은 주로 사용자 인터페이스에서 발생하는 이벤트에 대해 불필요한 연산을 줄이기 위한 기술로 사용 ❓쓰로틀링(Throttling) - 개념: 특정 함수가 일정 시간 동안 N번 이상 실행되지 않도록 제한하는 기술임 - ex) 사용자가 스크롤을 할 때마다 이벤트 핸드러가 실행되는 것을 막기 위해, 일정 시간 동안 한 번만 이벤트 핸들러가 실행되도록 제한하는 것을 의미함 - 사용하는 이유 빠른 연속적인 이벤트(ex. 스크롤, 윈도우 리사이징)에서 과도한 연산을 줄이기 위함 서버 API 호출의 빈도를 줄이기 위해 사용하기도 함. 이를 통해 서버의 부하를 감소시킬 수 있음 ❓디바운싱(Debouncing) - 개념; 연속된 이벤트가 발생할 경우, 마지막 이벤..

IT/면접 2023.08.31

react 클래스형과 함수형의 차이를 설명, 주로 사용하는 방식과 그 이유

❓정의 방식 - 클래스형: ES6의 클래스를 사용하여 컴포넌트를 정의함 - 함수형: 일반 함수 또는 화살표 함수를 사용하여 컴포넌트를 정의함 ❓상태관리 - 클래스형: this.state와 this.setState()를 사용하여 상태를 관리합니다. - 함수형: useState 훅을 사용하여 상태 관리함 ❓생명주기 메서드 - 클래스형: 생명주기 메서드(componentDidMount, shouldComponentUpdate 등)를 사용할 수 있음 - 함수형: useEffect 훅을 사용하여 생명주기와 유사한 동작을 수행합니다. ❓this키워드 - 클래스형: this 키워드를 사용하여 클래스 인스턴스에 접근함. 이 때문에 메서드에 대한 바인딩 문제가 발생할 수 있음' - 함수형: this 키워드가 없으며, 클..

IT/면접 2023.08.31

Q. 리액트 라이프사이클 메소드에 대한 설명

리액트의 라이프사이클 메서드는 컴포넌트의 생명 주기 동안 발생하는 여러 이벤트를 다루기 위해 정의된 메서드들 이 메서드들은 특정한 시점에 자동응로 호출되며, 이를 통해 개발자는 컴포넌트의 동작을 미세 조정하거나, 특정 작업을 수행할 수 있음 리액트의 라이프사이클 메서드는 3개의 단계로 분류될 수 있음 ❓Mounting(마운팅) - 이 단계는 컴포넌트가 처음 생성되어 DOM에 삽입될 때 발생함 - constructor: 컴포넌트의 생성자 메서드로, 컴포넌트의 초기 상태를 설정하는 데 사용됨 - static getDerivedStateFromProps: props를 받아서 state를 업데이트할 때 사용됨 - render: 컴포넌트 UI를 렌더링하는 메서드임 - componentDidMount: 컴포넌트가 ..

IT/면접 2023.08.24

Q. 라이프사이클이 의미하는 바

❓리액트 라이프 사이클이 의미하는 바 리액트의 라이프사이클은 리액트 컴포넌트가 경험하는 여러 단계를 나타냅니다. 이 단계들은 컴포넌트의 생성부터 소멸까지의 전체 과정을 포함하며, 각 단계마다 특정 시점에 호출되는 메서드들로 구성됩니다. 이 메서드들은 컴포넌트의 동작과 상태 변화에 따라 적절한 반응이나 조치를 취하는 데 필수적입니다. 컴포넌트가 페이지에 처음 로드되면, 그것은 "마운팅" 단계를 거칩니다. 이 단계는 컴포넌트 인스턴스가 생성되고, DOM에 삽입되는 과정을 포함합니다. 컴포넌트의 상태나 속성(props)이 변경되면 "업데이팅" 단계가 발생하며, 이는 컴포넌트가 재렌더링 되는 것을 의미합니다. 마지막으로, 컴포넌트가 페이지에서 제거될 때, "언마운팅" 단계가 발생하고, 이는 컴포넌트가 메모리에서..

IT/면접 2023.08.24

Q. http, https 차이점

HTTP(HyperText Transfer Protocol)와 HTTPS(HyperText Transfer Protocol Secure)는 웹에서 데이터를 전송하는 데 사용되는 두 가지 주요 프로토콜임 ❓보안 HTTP - 암호화되지 않은 텍스트 형식으로 데이터를 전송함 - 이로 인해 중간자 공격(Man-in-the-Middle Attack)이나 데이터 도청(eavesdropping)에 취약함 HTTPS - SSL/TLS 프로토콜을 사용하여 데이터를 암호화하고 전송함 - 이로 인해 데이터의 기밀성과 무결성이 보장됨 ❓포토 번호 HTTP - 기본 포트 번호는 80임 HTTPS - 기본 포트 번호는 443임 ❓SSL/TLS 인증서 HTTP - 인증서를 필요로 하지 않음 HTTPS - SSL/TLS 인증서를 필..

IT/면접 2023.08.24

Q. TCP/UDP에 대해서 설명

❓TCP(Transmission Control Protocol) - 연결 지향적 TCP는 데이터 전송 전에 연결을 설정하고, 데이터 전송 후 연결을 종료함 이렇게 하는 것은 신뢰성 있는 데이터 전송을 보장하기 위함 - 신뢰성 TCP는 패킷의 손실, 순서 변경, 중복 등의 문제를 처리하기 위한 메커니즘이 있음 손실된 패킷은 재전송됨 - 흐름 제어 수신자의 버퍼 오버플로우를 방지하기위해 흐름 제어 메커니즘을 제공함 - 혼잡 제어 네트워크 내의 혼잡을 관리하고 효율적인 데이터 전송을 위해 메커니즘을 제공함 - 사용 사례 웹 브라우징, 이메일 전송, 파일 전송 등 신뢰성이 중요한 애플리케이션에서 주로 사용됨 ❓UDP(User Datagram Protocol) - 연결 비지향적 UDP는 연결 설정 없이 데이터를 ..

IT/면접 2023.08.24

Q. 클라이언트 사이드 렌더링(CSR) 서버 사이드 렌더링(SSR)의 개념, 장단점

❓클라이언트 사이드 렌더링(CSR) 개념 - 이 방식에서는 서버는 초기 페이지 로딩 시에 빈 페이지나 매우 기본적인 틀만 전송하며, 필요한 데이터나 나머지 페이지 내용은 클라이언트(브라우저)에서 JavaScript를 사용해 렌더링함 장점 - 동적 상호작용: CSR 방식은 사용자와의 상호작용에 반응적인 웹 애플리케이션을 만들기 좋음 - 서버 부하 감소: 서버는 렌더링에 관한 작업을 클라이언트에게 위임하기 때문에 부하가 줄어듬 - SPA(Single Page Application)에서 효과적임 단점 - 초기 로딩 시간: 전체 애플리케이션 코드와 데이터를 로드해야 하기 때문에 초기 로딩 시간이 길어질 수 있음 - SEO 문제: 크롤러가 JavaScript로 렌더링되는 페이지를 올바르게 인식하지 못할 경우, S..

IT/면접 2023.08.17

Q. 쿠키, 세션, 웹스토리지의 차이

❓쿠키(Cookie) 개념 - 클라이언트 측에 저장되는 작은 텍스트 파일로, 이름 - 값의 쌍으로 구성됨 용도 - 세션 관리, 사용자 선호 설정, 트래킹 등의 목적으로 사용됨 제한 - 크기 제한 (약 4KB), 보안에 취약, 쿠키가 너무 많거나 크기가 너무 크면 웹사이트의 성능에 영향을 줄 수 있음 만료 - 설정된 만료 기간이 잇으며, 만료 기간이 없는 경우 브라우저 세션 종료시 작제됨 ❓세션(Session) 개념 - 서버 측에 저장되는 사용자 정보로, 일반저긍로 브라우저가 종료되기 전까지 서버에 유지됨 용도 - 사용자 인증, 임시 데이터 저장 등에 사용됨 - 일반적으로 쿠키를 사용하여 세선 ID를 클라이언트에 저장하고, 이를 통해 서버에서 해당 사용자의 세션 데이터를 참조 제한 - 서버의 메모리를 사용..

IT/면접 2023.08.17

Q. GET, POST의 개념과 데이터 흐름

❓GET 개념 - GET은 주로 서버에서 데이터를 조회하기 위해 사용됨 데이터 흐름 - 사용자(클라이언트)가 웹 브라우저 주소창에 URL과 함께 쿼리스트링 형태로 파라미터를 입력하거나, 웹 페이지의 링크를 클릭함 - 이 요청이 웹 서버에 도달하면, 서버는 해당 요청을 해석하여 필요한 데이터나 페이지를 찾음 - 서버는 이 데이터나 페이지 정보를 응답으로 클라이언트에게 전송 - 클라이언트는 받은 응답을 웹 브라우저에 렌더링하여 사용자에게 보여줌 ❓POST 개념 - POST는 서버에 데이터를 제출하기 위해 사용 ex) 웹 폼을 통한 회원가입이나 글 작성 시 사용됨 데이터 흐름 - 사용자가 웹 폼에 데이터를 입력하고 제출 버튼을 클릭하면 이 데이터는 요청 본문에 포함되어 서버로 전송됨 - 웹 브라우저는 이 데이..

IT/면접 2023.08.15