전체 글 179

Q. 관계형 DB와 비관계형 DB의 차이

❓관계형 데이터베이스(Relational Database) - 관계형 데이터베이스는 테이블 형태로 데이터를 구조화함 - 각 테이블은 열(column)과 행(row)으로 구성되며, 각 행은 고유한 키로 식별됨 - 이러한 테이블들은 서로 관계를 맺을 수 있으며, 이 관계를 통해 데이터간이 연결과 조작이 가능함 ❓관계형 데이터베이스 특징 - 정형 데이터 저장 : 주로 정형화된 데이터를 저장하는데 사용 - SQL 사용: Structured Query Language(SQL)을 사용하여 데이터를 조회하고 조작함 - ACID 속성 : 데이터의 무결성을 유지하기 위해 Atomicity, Consistency, Isolation, Durability의 원칙을 따름 - 스키마 기반 : 데이터는 미리 정의된 스키마에 따라..

IT/면접 2023.10.20

Q. 동기와 비동기 차이

❓동기(Synchronous) - 순서에 맞추어 진행되기 때문에 제어하기 쉽고 직관적입니다. - 여러가지 요청을 동시에 처리 할 수 없어 효율이 낮고 작업 속도가 느릴 수 있습니다. - 동기방식의 예시로는 콜센터 종업원이 일을 처리하는 방식이 될 수 있습니다. -> 콜센터의 직원은 한 손님의 전화 응대가 끝난 후에 다음 손님의 응대를 진행 ❓비동기 (Asynchronous) - 작업이 완료되는 시간을 기다릴 필요가 없어, 자원을 효율적으로 사용 할 수 있습니다. - 다른 작업의 응답에 상관없이 진행되므로, 작업이 완료된 결과를 제어하기 어렵습니다. - 비동기 방식의 예제로는 이메일이 있습니다. -> 누군가에게 이메일을 보냈을 때 답변을 받지 않아도 이메일을 다시 보낼 수 있음 동기 방식은 작업을 순서대로..

IT/면접 2023.10.16

항해99 솔직 후기 - 15기후기

나는 네일아티스트였었고 비전공자였다. 이러한 나도 개발자로 이직을 준비하고 있는데 비전공자가 개발자가 되기로 마음을 먹고, 부트캠프를 알아보고 있다면 도움이 되었으면 좋겠다. ❓ 항해 99 이전 나의 삶은? 네일아티스트로 열심히 일을 하다가 꿈과 현실의 차이를 느끼게 되었을 때, 나는 다른 직업을 고민하게 되었다. 그때, 가족들은 내게 제일 먼저 개발자를 추천했다. 나는 비전공자이지만 대학교 때 전공과목 중에 Java 수업이 있었고 교양으로 앱 개발 관련된 수업을 들어서 개발자라는 직업이 크게 거부감 없이 나도 해볼까 가 되었던 거 같다. 나는 개발에 대한 지식이 거의 없기 때문에, 처음 단계로 코딩 학원을 선택했다. 학원에서는 프런트엔드와 Java 기본 과정을 배웠다. 또한, 특별히 리액트에 관한 지식..

카테고리 없음 2023.09.17

Q. 이미지 최적화에 대해 설명, 방법에 대해 설명

❓이미지 최적화란? 이미지 최적화는 웹페이지의 로딩 시간을 줄이고, 사용자 경험을 향상시키며, 데이터 사용량을 감소시키기 위해 이미지 파일의 크기를 줄이는 과정을 의미함 웹 페이지의 대부분의 데이터는 이미지에서 오기 때문에, 이미지를 최적화하는 것은 성능 향상에 큰 영향을 미침 ❓이미지 최적화 방법 - 적절한 파일 형식 선택 JPG는 사진이나 풍부한 색성을 가진 이미지에 적합함 PNG는 배경이 투명한 이미지나 고해상도의 이미지에 적합함 GIF는 간단한 애니메이션에 사용됨 SVG는 로고나 아이콘 같은 벡터 기반 그래픽에 사용됨 WebP는 최신 이미지 포맷으로 JPEG, PNG보다 더 좋은 압축률을 제공하면서도 높은 품질 유지 - 압축 여러 온라인 도구나 라이브러리를 사용해 이미지 크기를 줄일수 있음 - R..

IT/면접 2023.08.31

Q. SEO란 무엇이고 SEO를 진행하는 방법에 대해 설명

SEO(Search Engine Optimization, 검색 엔진 최적화)는 웹사이트나 웹 페이지를 검색 엔진에서 더 높은 순위로 표시되도록 최적화하는 작업을 의미함. 즉 사용자가 특정 키워드로 검색을 했을 때 해당 사이트나 페이지가 상위로 노출되는 것을 목표로 함 높은 순위의 노출은 사이트 방문자 수를 증가시키고, 이는 다시 비지니스 성장을 도울 수 있음 ❓SEO를 진행하는 방법 - 키워드 연구: 타겟이 되는 키워드를 연구하여 어떤 키워드가 가장 중요하고 효과적인지를 판단함 - 콘텐츠 최적화: 키워드를 바탕으로 유용하고 고질적인 콘텐츠를 작성. 키워드를 자연스럽게 포함시키는 것이 중요. - 메타 태그 최적화: 페이지의 제목, 설명, 키워드 등의 메타 태그를 최적화하여 검색 엔진에 콘텐츠를 잘 이해시킴..

IT/면접 2023.08.31

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