분류 전체보기 145

[CS/기술면접] 클로저 (Closure)

클로저 (Closure)란 무엇인가요? 1. 한마디 정리 클로저는 일반함수와 달리 함수 내부에 선언되는 함수로 함수가 실행될때 외부변수에 접근하기 위한 객체입니다. 이 경우 원래대로라면 소멸되었어야 할 객체들이 메모리상에 남아있기 때문에 클로저를 남발하면 오버플로우가 발생할 수도 있습니다. 따라서 클로저에 대해 정확히 이해하고 필요한곳에 사용해야 합니다. https://proglish.tistory.com/204 클로저(Closure)란? 클로저(Closure)란? MDN에서는 클로저를 다음과 같이 정의하고 있다. 클로저는 독립적인 (자유) 변수를 가리키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 ‘기억한다’. 흔히말 proglish.tistory.com https://hanamon...

카테고리 없음 2023.04.20

[CS/기술면접] 프로미스 (Promise)와 async/await

프로미스 (Promise)와 async/await에 대해 설명해보세요. 1. 한마디 정리 프로미스(Promise)는 자바스크립트에서 비동기적인 작업을 처리하는 객체입니다. 프로미스를 사용하면 비동기적으로 처리해야 하는 작업이 완료될 때까지 코드의 실행을 일시 중지하고, 작업이 완료된 후에 결과값을 받아 처리할 수 있습니다. async/await은 프로미스를 더욱 간결하고 가독성 좋게 사용할 수 있는 ES2017(ES8)부터 추가된 문법입니다. async 함수를 사용하면 코드 블록을 자동으로 프로미스 객체로 감싸서 처리합니다. await 키워드를 사용하면 프로미스가 이행(fulfilled)될 때까지 코드의 실행을 일시 중지하고, 결과값을 반환합니다. async/await을 사용하면 프로미스를 좀 더 직관적..

카테고리 없음 2023.04.20

[CS/기술면접] 개발 방법론 (Development Methodology)

개발 방법론 (Development Methodology)에 대해 설명해보세요. 1. 한마디 정리 소프트웨어를 개발하고 유지보수하는데 사용되는 일련의 절차와 프로세스로 대표적으로 폭포수 모델, 프로토타입 모델, 애자일, 스크럼 등이 있습니다. 소프트웨어 개발 방법론은 개발 프로세스를 구조화하고 팀 간의 협력을 촉진하며, 소프트웨어의 품질을 향상시키는 데 중요한 역할을 합니다. 이 외에도 다양한 소프트웨어 개발 방법론이 존재합니다. 각각의 방법론은 특정한 상황에 적합하며, 팀의 역량과 프로젝트의 특성을 고려하여 선택하는 것이 중요합니다. 2. 내가 생각한 꼬리질문 1) 해당 방법들에 대해 설명해주세요 폭포수 모델(Waterfall Model) 일련의 단계를 순차적으로 진행하며, 이전 단계의 결과물이 다음 ..

카테고리 없음 2023.04.19

[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