내배캠 최종 프로젝트 면접 대비 답변 (12) 썸네일형 리스트형 2023-08-30 대용량 트래픽 발생 시 어떻게 대응해야 하나요? 더 많은 사용자를 수용하기 위해서는 서버 리소스(CPU, RAM)를 늘려야 합니다. 기존 서버의 성능을 높이는 수직확장과 동일한 목적을 갖는 서버를 여러대 추가하는 수평확장이 있습니다. 수평확장의 경우 로드밸런서를 사용할 수 있습니다. 로드 밸런서는 부하 분산을 위해 가상 IP를 통해 여러 서버에 접속하도록 부하를 분배하는 기능입니다. 2023-08-29 객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요? 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 객체들의 협력과 결합을 통해 시스템을 구축하는 프로그래밍 패러다임입니다. 추상화, 상속, 다형성, 캡슐화 등의 특징을 활용하여 코드의 재사용성과 유지보수성을 높이며 복잡한 시스템을 체계적으로 구조화할 수 있습니다. 이로 인해 객체지향 프로그래밍은 소프트웨어 개발의 효율성과 품질 향상에 기여합니다. 추상화: 복잡한 현실 세계를 단순화하여 핵심만 추출하는 과정, 상위 개념을 정의함으로써 복잡성을 감추고 필요한 부분을 강조합니다. 상속: 기존 클래스의 특징을 다른 클래스에서 재사용하거나 확장하여 새로운 클래스를 생성하는 개념, 코드 재사용성과 구조의 확장성을 제공합니다. 다형성: 동일한 이름의 메서드나 인터페이스를 다른 클래스에.. 2023-08-27 DI, IoC에 대해 설명해주세요. DI(의존성 주입)은 객체 간의 결합도를 낮추기 위해 한 객체가 다른 객체를 외부에서 받아오는 패턴입니다. IoC(제어의 역전)은 객체의 생성 및 관리를 프레임워크나 컨테이너에 위임하여 유연한 애플리케이션을 구축하는 개념입니다. DI는 IoC의 구현 방식 중 하나로, 객체가 필요한 의존성을 주입받아 동작합니다. 2023-08-27 http, https 차이점에 대해 설명해주세요 HTTPS는 SSL(Secure Sockets Layer) 및 이를 대체한 TLS(Transport Layer Security) 프로토콜을 이용하여 데이터 암호화, 서버 신원 확인, 중간자 공격 방지, 데이터 무결성 등의 보안 기능을 제공하여 보안을 강화합니다. 이에 반해 HTTP는 보안이 거의 없는 평문 데이터 전송을 수행하므로, 민감한 정보의 전송이나 웹 사이트 운영 시에는 HTTPS 사용이 필요하거나 권장됩니다. TLS가 SSL의 후속 프로토콜로 발전하였으며, 현재는 주로 TLS가 사용되고 있습니다. (SSL/TLS 프로토콜: 안전한 보안 채널을 형성해주는 역할을 수행하는 보안용 프로토콜이다. 응용계층(HTTP)과 전송계층(TCP) 사이에 위치해있다.) 2023-08-25 TCP/UDP에 대해서 설명해주세요 TCP (Transmission Control Protocol): 신뢰성 있는 데이터 전송을 보장하는 연결 기반 프로토콜(규약)이다. - 연결형 서비스로 가상 회선 방식을 제공 - 신뢰성 있는 데이터 전송 - 데이터의 경계를 구분하지 않음 - 데이터의 전송 순서 보장 - UDP보다 전송속도가 느림 - 연결을 설정(3-way handshaking)과 해제(4-way handshaking) UDP (User Datagram Protocol): 사용자 데이터그램 프로토콜(규약) 인터넷 상에서 정보를 주고 받을 때 신호절차를 거치지 않고 보내는 쪽에서 일방적으로 데이터를 전달한다. - 비연결형 서비스로 데이터그램 방식을 제공 - 신뢰성이 낮다. - 데이터의 경계를 구분 - 패킷 오버해드가 적어 네트워크 부하 감.. 2023-08-24 쿠키, 세션의 개념과 차이를 설명해보세요 쿠키(Cookie): - 클라이언트(사용자의 브라우저)에 저장되는 작은 데이터 파일이다. (서버에서 클라이언트로 전송되어 브라우저에 저장) - 주로 사용자 인증, 선호 설정, 추적 등의 정보를 저장하는 데 사용한다. - 클라이언트 측에서 관리되므로 서버가 클라이언트의 정보를 추적할 수 있다. 세션(Session): - 세션은 서버 측에서 유지되는 사용자의 상태 정보이다. - 일정기간이 지나면 만료된다. - 쿠키를 사용하여 클라이언트에 세션ID를 저장하고, 서버는 해당 세션ID를 사용하여 세션 데이터를 관리한다. (세션ID만이 클라이언트에 저장되고, 실제 데이터는 서버에 저장되므로 클라이언트에서 직접 수정할 수 없다.) 차이점 - 쿠키는 클라이언트에 저장되지만, 세션은 서버 측에서 관리한다. - 쿠키는 만.. 2023-08-23 브라우저의 작동방식에 대해서 설명해주세요 사용자가 브라우저에 url을 입력해서 서버에 웹페이지를 요청하면 브라우저는 서버에서 해당 url에 맞는 html,css,javaScript파일 및 다른 리소스를 가져온다. 브라우저는 html 파서를 통해서 html파일을 파싱하고 DOM트리로 변환시킵니다. 그 다음에 html에 적용되는 css도 css파서를 통해서 파싱이되고 CSSOM트리로 변환되고 DOM트리와 결합되어 렌더트리가됩니다. 이 렌더트리를 기반으로 브라우저가 웹페이지를 보여줍니다. javaScript는 렌더링 엔진이 아닌 javaScript엔진이 처리합니다. html파서가 html을 파싱하는 과정에서 script태그를 만나면 javaScript코드를 실행하기 위해서 dom생성 프로세스를 중지하고 javaScript엔진으로 제어 권한을 넘깁니다.. 2023-08-22 CORS(Cross Origin Resource Sharing)에 대해 설명해주세요. CORS(Cross-Origin Resource Sharing): - 웹 브라우저에 구현된 보안 기능으로, 한 도메인의 웹 페이지가 다른 도메인에서 호스팅되는 리소스를 요청하고 상호 작용하는 방법을 제어하는 메커니즘이다. - 서버는 이 메커니즘을 통해 리소스에 접근할 수 있는 출처를 허용하고, 요청 중에 사용할 수 있는 HTTP 메서드 및 헤더를 지정할 수 있다. - 클라이언트와 서버 간의 상호작용을 통해 작동한다. 작동방식 1. 단순 요청 (Simple Requests): 간단한 HTTP 메서드(GET, POST, HEAD)를 사용하는 경우 브라우저는 요청에 "Origin" 헤더를 추가하여 요청의 출처를 표시한다. 서버는 이 "Origin" 헤더를 확인하고, "Access-Control-Allow-Or.. 이전 1 2 다음