Tech Interview/Interview6 5. 질문 (웹 브라우저에 URL 전체 동작과정) [가정] PC : window NAT : 공유기 브라우저에 URL 입력하면 -> 운영체제에 따라 다름(window라고 가정) -> 만약 www.naver.com 검색을 한다면, naver.com의 IP를 알아야 함 -> : 이때 DNS에 질의를 하게 되면 IP를 획득하지만, 항상 DNS에 물어보지는 않음. (1) 컴퓨터가 가지고 있는 hosts 파일을 확인 (2) 그전에 DNS 질의했다면, 컴퓨터가 이 응답을 캐싱합니다. 그래서 캐시 결과를 보고 DNS에게 물어볼 필요가 없다면 질의X (3) 위에도 없다면 DNS에 질의를 하는데, 여기서 다시 나뉨. [ 1 ] 만약 공유기를 사용하고, 컴퓨터의 DNS 설정이 공유기로 되어있다면 공유기가 DNS에 질의 후 응답을 받아 컴퓨터에 넘길 수 있음. [ 2 ] 만.. 2024. 3. 9. 4. 질문 (Middleware) 미들웨어란, 운영 체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하며 분산 컴퓨팅 환경에서 컴퓨터와 컴퓨터간의 연결을 안전하고 용이하게 해주는 전반적 관리를 도와주는 소프트웨어입니다. 응용소프트웨어가 운영체제로부터 제공받은 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어입니다. 다시 말해, 서로 다른 기종의 하드웨어나 프로토콜, 통신환경 등을 연결하여, 응용프로그램과 그 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있게 하는 소프트웨어를 말하며, 특정 정보 시스템 환경에서 작동할 수 있도록 지원해주는 역할을 한다고 이해할 수 있습니다. OS는 기본적인 기능 밖에 없기 때문에, 단독으로 할 수 있는 일은 많지 않습니다. 미들웨어가 있으면 복잡한 처리가.. 2023. 12. 6. 3. 질문 (Proxy & SpringBoot) Proxy : 일종의 대리자. 개발할 때 특정한 Interface를 노출시키지 않고, 외부로부터 감추고 싶을 때 사용하는 것이 바로 Proxy 패턴입니다. 하지만 Spring에서 지원하는 Proxy와 디자인 패턴에서의 Proxy 패턴은 다릅니다. 일반적으로 Proxy는 실제 Target의 기능을 대신 수행하면서, 기능을 확장하거나 추가하는 실제 객체를 의미한다. Proxy 패턴은 Target에 대한 기능을 확장하지는 않고, Client가 Target에 접근하는 방식을 변경해준다. Proxy를 사용하는 이유는 OCP, SRP를 지키키 위해서 입니다. 프록시 패턴을 통해 프록시 코드를 구현할 수 있다. 쉽게 말해 1) 클라이언트가 타깃에 접근하는 방법을 제어할 때 예로 JPA의 지연로딩 2) 타깃에 부가적인.. 2023. 11. 30. 1. JPA 소개 & 영속성 관리 객체 모델과 관계형 데이터베이스 모델은 지향하는 패러다임이 서로 다르다. 문제는 이 차이를 극복하려고 개발자가 너무 많은 시간과 코드를 소비한다는 점이다. 자바 진영에서는 오랜 기간 이 문제에 대한 숙제를 안고 있었고, 패러다임의 불일치 문제를 해결하기 위해 많은 노력을 기울였다. 그 결과물이 바로 JPA이며, 패러다임의 불일치 문제를 해결재주고 정교한 객체 모델링을 유지하게 도와준다. JPA(Java Persistence API) 자바 진영의 ORM 기술에 대한 API 표준 명세다. 애플리케이션과 JDBC 사이에서 동작한다. JDBC(Java Database Connectivity) Java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나, 데이터베이스에 저장된 데이터를 Java에서 .. 2023. 11. 30. 2. 질문 캐시 : 데이터나 값을 미리 복사해 놓는 임시 장소입니다. 캐시에 데이터를 미리 복사해 놓으면, 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있습니다. 캐시에 모든 데이터를 다 담아둘 수 없기 때문에, 캐시의 크기가 제한되고 그에 따라 캐시가 대체되어야 합니다. 캐시 교체 알고리즘에 따라 어떤 파일을 버리고 새로운 캐시를 저장할지 결정하는 것이 캐시 교체 알고리즘입니다. 종류 1. FIFO - 캐시 내에 오래 있었던 페이지 교체, 자주 사용되는 페이지가 교체될 우려가 있음. 2. LFU - 사용 횟수가 가장 적은 페이지 교체, 최근 적재된 페이지가 교체될 우려가 있음. 3. LRU - 가장 오랜동안 사용되지 않은 페이지 교체, time stamping에 의한 오버헤드 존재 * 페이지 : .. 2023. 11. 27. 1. 질문 1) 멀티 프로세스로 처리 가능한 걸 굳이 멀티 스레드로 하는 이유? : 프로세스를 생성하여 자원을 할당하는 시스템 콜이 감소함으로써 자원의 효율적 관리가 가능, 프로세스 간의 통신보다 스레드 간의 통신 비용이 적어 작업들 간 부담이 감소한다. 대신, 멀티 스레드를 사용할 때는 공유 자원으로 인한 문제 해결을 위해 동기화에 신경써야한다. 교착상태는 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태를 못한다.(시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생하는 문제이다.) - 상호 배제 : 프로세스들이 필요로 하는 자원에 대해 배타적 통제권을 요구한다. - 점유대기 : 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다린다. - 비선점 : 프로세스가 어떤 자원의 사용을 끝날 때.. 2022. 7. 20. 이전 1 다음