분류 전체보기 132

[CS/기술면접] 보안 관련 문제

보안 (Security)과 관련된 문제들은 어떤 것이 있나요? [2023.04.21.금] 멘토링 (박세명 기술 멘토님) 보안 (Security)과 관련된 문제들은 어떤 것이 있나요? 백엔드 관련으로는 HTTPS, SQL INJECTION, 악성 스크립트 인증, 인가 CSRF (Cross-Site Request Forgery) XSS (Cross-Site Scripting): 중복 로그인 못하게 세션 방법도 있지만 로그인 기록을 이용해서 할 수도 있고 AWS의 코드니터라는 솔류션을 쓸 수도 있음 - 중복 로그인 ⇒ 보안, 사용자 편의성 중에 뭘 중요시 하는지에 따라 결정할 수 있겠음 로그아웃 했으면 쿠키 삭제하게 해야 함 최근 보안 문제의 해결점은 무엇이라고 생각하나요?에 대한 적절한 답변 뭘지? 최신 버..

카테고리 없음 2023.04.19

Call by Value vs Call by Reference

원시/객체 타입이 함수의 인자로 할당 받고 매개변수로 전달될 때 어떤 방식으로 전달될지를 결정하는 방식 값에 의한 호출 참조에 의한 호출 특징 - 인수의 복사본이 함수에 전달 (원시 값을 갖는 변수를 다른 변수에 할당하면 원시 값이 복사되어 전달 됨) - 함수 내에서 매개변수(parameter)의 값이 변경되더라도 인수의 원래 값에는 영향을 미치지 않음 - 인수의 참조(reference)가 함수에 전달 - 함수 내에서 매개변수의 값이 변경되면 인수의 값도 변경 장점 인수를 보호하고 예측 가능한 결과를 제공 인수의 값을 직접 변경할 수 있으므로 메모리 사용이 효율적 단점 큰 객체를 전달할 때 비용이 더 많이 듦 예상치 못한 부작용이 발생할 수 있음 JS는 무조건 Call by Value 방식 한 번 메모리..

카테고리 없음 2023.04.19

[CS/기술면접] 데이터베이스 (Database)와 ORM(Object Relational Mapping)

데이터베이스 (Database)와 ORM(Object Relational Mapping)에 대해 설명해보세요. [2023.04.21.금] 멘토링 (박세명 기술 멘토님) typeorm N+1 문제 객체로 만들면 가독성은 좋지만 로우쿼리를 잘알면 굳이 orm을 쓸 필요가 있냐는 의견도 RDBMS의 단점이 유연하지 못하다는 것 (테이블 간 관계 설정 되어 있으면 한 테이블 삭제하려면 어떤 테이블은 삭제 안되고..) => 그래서 로우쿼리로 필요한 것만 JOIN해서 하면 문제가 없는 https://velog.io/@ypd03008/TypeORM-N1-%EB%AC%B8%EC%A0%9C [TypeORM] N+1 문제 User는 N개의 Post를 가지고 있다. ( 1:N 관계 )사용자를 조회 했더니 (SELECT 1개..

카테고리 없음 2023.04.18

[CS/기술면접] 자료구조/알고리즘

자료구조와 알고리즘 중에서 자주 사용되는 것들은 어떤 것이 있나요? 1. 한마디 정리 스택/큐, 해시 테이블, 트리, 그래프, 정렬, 탐색 등이 있겠습니다. 2. 내가 생각한 꼬리질문 1) 스택(Stack) 후입선출(LIFO) 구조로 데이터를 저장하는 자료구조입니다. 새로운 데이터는 항상 스택의 맨 위에 쌓이며, 가장 최근에 추가된 데이터가 가장 먼저 제거됩니다. 2) 큐(Queue) 선입선출(FIFO) 구조로 데이터를 저장하는 자료구조입니다. 새로운 데이터는 항상 큐의 뒤쪽에 추가되고, 가장 오래된 데이터는 가장 앞쪽에서 제거됩니다. 3) 해시 테이블(Hash Table) 키-값(key-value) 쌍을 저장하는 자료구조입니다. 해시 함수를 사용하여 각 키를 고유한 인덱스로 매핑하고, 해당 인덱스에 값..

카테고리 없음 2023.04.18

[CS/기술면접] RESTful API

RESTful API에 대해 설명해보세요. 1. 한마디 정리 RESTful API는 웹 어플리케이션과 서버 간의 통신을 위한 인터페이스로, HTTP 요청과 응답을 통해 데이터를 주고 받습니다. *Representational State Transfer(표현 상태 전이)를 따르는 API 2. 내가 생각한 꼬리질문 1) RESTful API는 어떻게 작동하나요? 클라이언트가 서버에 요청을 전송하면 1. 클라이언트가 API 문서에 따라 서버가 이해하는 방식으로 요청 형식을 지정 2. 서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인 3. 서버가 요청을 수신하고 내부적으로 처리 4. 서버가 클라이언트에 요청의 성공 여부와 클라이언트가 요청한 모든 정보를 포함한 응답을 반환..

카테고리 없음 2023.04.17

[CS/기술면접] HTTP와 HTTPS의 차이점

HTTP와 HTTPS의 차이점은 무엇인가요? 1. 한마디 정리 HTTP는 클라이언트(브라우저)와 서버 간 데이터를 일반 텍스트로 교환하는 반면 HTTPS는 TLS(전송 계층 보안) 프로토콜이라는 추가적인 보안 계층이 있어 데이터 교환에 있어 안전하고 암호화된 연결을 설정한다는 차이가 있습니다. *HTTPS는 HTTP 요청 및 응답을 SSL 및 TLS 기술에 결합한 것 HTTP HTTPS 본말 Hypertext Transfer Protocol Hypertext Transfer Protocol Secure 기본 프로토콜 HTTP/1과 HTTP/2는 TCP/IP를 사용합니다. HTTP/3은 QUIC 프로토콜을 사용합니다. HTTP 요청 및 응답을 추가로 암호화하기 위해 SSL/TLS와 함께 HTTP/2 사용 ..

카테고리 없음 2023.04.17

[CS/기술면접] 프로세스 (Process)와 스레드 (Thread)의 차이점

프로세스 (Process)와 스레드 (Thread)의 차이점은 무엇인가요? 1. 한마디 정리 프로세스는 운영체제로부터 자원을 할당받은 작업의 단위이고 스레드는 그 프로세스가 할당받은 자원을 이용하는 실행 단위입니다. 기술 발전에 따라 하나의 프로세스만 사용해 프로그램을 실행하기에 한계가 있어 스레드가 생겨났습니다. 이러한 스레드를 통해 스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부가 되는 방식으로 동시 작업을 가능하게 합니다. 2. 내가 생각한 꼬리질문 1) 프로그램과 프로세스의 차이는? 프로그램 프로세스 어떤 작업을 하기 위해 실행할 수 있는 파일 실행되어 작업중인 컴퓨터 프로그램 파일이 저장 장치에 있지만 메모리에는 올라가 있지 않은 정적인 상태 메모리에 적재되고 CPU 자원을 할..

카테고리 없음 2023.04.14

[CS/기술면접] 동기 (Synchronous)와 비동기 (Asynchronous) 코드 실행 방식

동기 (Synchronous)와 비동기 (Asynchronous) 코드 실행 방식에 대해 설명해보세요. 자바스크립트는 동기식 언어이다 기본적으로 단일 쓰레드와 이벤트 루프(event loop)를 이용한 비동기 방식으로 동작 https://ljtaek2.tistory.com/142 자바스크립트 - 동기(Synchronous)? 비동기(asynchronous)? 들어가기 전에, 필자는 자바스크립트를 처음 접하고, 오로지 문법적인 것에만 집중해서 공부를 했었다. 하지만 개발할 때 더 중요한 것은 자바스크립트가 어떻게 동작하는지를 먼저 알고 개발 ljtaek2.tistory.com 1. 한마디 정리 동기는 코드가 순차적으로 실행되는 방식인 반면 비동기는 이벤트 루프의 동작 방식에 따라 코드 실행 순서가 결정됩니..

카테고리 없음 2023.04.14

[CS/기술면접] 콜백 함수 (Callback Function)

콜백 함수 (Callback Function)가 무엇인지, 어떻게 사용되는지 설명해보세요. 1. 한마디 정리 콜백 함수(Callback Function)란 함수를 실행할 때 인자(argument)로 전달되는 함수로 주로 1) 비동기 처리(asynchronous processing) 시 사용되어 비동기적인 작업에서 작업이 완료되었을 때 호출되어 추가적인 작업을 수행합니다. 추가적으로 2) 콜백 함수는 함수의 인자로 전달될 수 있으므로 함수를 동적으로 생성 3) 이벤트 처리에 사용됨 4) 함수의 인자로 전달되어 함수를 동적으로 조작 5) 중첩된 콜백 함수를 통해 비동기 작업을 관리할 때에도 사용할 수 있습니다. 2. [상세내용] 역할 1) 비동기적인 작업에서 작업이 완료되었을 때 호출되어 추가적인 작업을 수..

컴퓨터공학 2023.04.13

[CS/기술면접] 이벤트 루프 (Event Loop)

이벤트 루프 (Event Loop)에 대해 설명해보세요. 1. 한마디 정리 이벤트 루프는 자바스크립트 엔진이 비동기 처리를 하기 위해 사용하는 메커니즘으로 1) 콜 스택과 태스크 큐를 관리하고, 2) 콜 스택이 비어있을 때, 태스크 큐에서 콜백 함수를 꺼내와 콜 스택에 쌓아 실행하고, 3) 콜백 함수를 비동기 처리하는데 사용합니다. 2. [상세내용] 역할 아래의 역할을 통해 이벤트루프는 자바스크립트에서 비동기 처리를 가능하게 하며, 콜백 함수를 사용하여 비동기 처리가 완료된 후 실행할 함수를 미리 등록할 수 있습니다. 이를 통해 자바스크립트에서 비동기 처리를 보다 간편하게 처리할 수 있습니다. 1) 콜 스택과 태스크 큐를 관리합니다. - 콜 스택 : 현재 실행 중인 코드의 실행 컨텍스트를 저장하는 스택 ..

카테고리 없음 2023.04.13