본문 바로가기

분류 전체보기

(107)
기술면접 준비 1. 쿼리 최적화에 대해 설명해주시고 방법에 대해 설명해주세요. 웹 어플리케이션에서 DB는 필수로 사용되는 요소입니다. DB는 저장하고 조회하는 작업이 주를 이루게 되는데, 서버 처리시간의 대부분이 SQL을 처리하는 시간에 들어가고 서버의 응답이 느려질수록 유저의 만족도는 떨어지게됩니다. 즉 어플리케이션의 성능을 좌우하는 요소 중 하나가 쿼리최적화입니다. 쿼리최적화는 Fetch 전략을 EAGER로 설정했을 때 발생하는 문제점을 해결하는 방법이 있습니다. One으로 끝나는 연관관계는 모두 Fetch전략의 Default타입이 EAGER라는 점이 있습니다. EAGER로 설정했을 때 문제점은 DB를 조회할 때 연관관계를 맺고 있는 다른 데이터까지 함께 조회하게 됩니다. 단순히 하나의 DB의 정보만 필요한데, 다..
기술면접 준비 1. CI/CD에 대해서 설명해주세요. CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법이다. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포이다. 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제를 해결하기 위한 솔루션이다. 대표적인 툴로는 jenkins가 있다. 2. 프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요. 프로세스와 스레드는 개념의 범위부터 다르다. 스레드는 프로세스 안에 포함되어 있기 때문이다. 운영체제가 프로세스에게 Code/Data/Stack/Heap 메모리 영역을 할당해 주고 최소 작업 단위로 삼는 반면, 스레드는 프로세스 내에서 Stack 메모리 영역을 제외한 다른 메모리..
기술면접 준비 1. 대용량 트레픽 발생 시 어떻게 대응해야 하나요? 대용량 트래픽이 발생할 때 대응하는 방법이 여러 개가 있습니다. 먼저 서버 확장입니다. 트래픽 증가에 따라 서버의 수를 늘려서 처리 능력을 향상시킬 수 있습니다. 이를 위해 수평 확장(새로운 서버 추가) 또는 수직 확장(기존 서버의 자원의 증가)을 고려할 수 있습니다. 두 번째는 로드 밸런싱입니다. 여러 서버에 트래픽을 균등하게 분배하여 개별 서버에 가해지는 부하를 줄이고 전체 시스템의 안정성과 성능을 향상시킬 수 있습니다. 세 번째는 캐싱입니다. 자주 요청되는 데이터나 결과를 캐시에 저장하여 빠르게 제공함으로써 서버의 부하를 줄일 수 있습니다. 네 번째는 최적화입니다. 애플리케이션의 성능을 개선하고 리소스 사용을 최적화하여 같은 하드웨어 자원으로 더..
기술면접 준비 1. 멀티 스레드는 무엇인가요? 일반적으로 하나의 프로세스는 하나의 스레드를 가지고 작업을 수행하게 되지만, 멀티 스레드란 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미합니다. 또한, 멀티 프로세스는 여러 개의 CPU를 사용하여 여러 프로세스를 동시에 수행하는 것을 의미합니다. 멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유하므로, 시스템 자원의 낭비가 적습니다. 또한, 하나의 스레드가 작업을 할 때 다른 스레드가 별도의 작업을 할 수 있어 사용자와의 응답성도 좋아집니다. 2. 관계형 DB와 비관계형 DB의 차이점은 무엇인가요? 관계형 데이터베이스와 비관계형 데이터베이스는 애플리케이션을 위한 두 가지 데이터 저장 방법입니다. 관계형 데이터베이스(또는 SQL ..
기술면접 준비 1. REST API란 무엇인지 설명 해 주세요. 우선 API란 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환 가능 하도록 하는 것이다. REST API란 REST기반으로 서비스 API를 구현한 것이다. 최근 OpenAPI(누구나 사용할 수 있도록 공개된 API : 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공한다. REST API의 특징으로는 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다. 또, REST는 HTTP 표준을 기반으로 구현하..
기술면접 준비 1. HTTPS가 동작하는 방식에 대해서 설명 해 주세요. 우선 HTTP를 먼저 알아야한다. HTTP란 HyperText Transfer Protocol의 약자로 즉, 하이퍼텍스트를 전송하기 위해 사용되는 통신 규약으로, 인터넷에서 HTML과 같은 문서를 사용자 컴퓨터에 설치된 웹 브라우저가 웹 서버에 요청할 때의 규칙이다. HTTP 서버는 기본 포트인 80번 포트에서 서비스 대기 중이며, 클라이언트가 TCP 80 포트를 사용해 연결하면 서버는 요청에 응답하면서 자료를 전송한다. HTTP는 정보를 텍스트로 주고 받기 때문에 네트워크에서 전송 신호를 인터셉트 하는 경우 원하지 않는 데이터 유출이 발생할 수 있다. 누군가 전송중인 데이터를 가로채면 누구나 데이터를 읽을 수 있었던 것이다. 이러한 보안 취약점..
기술면접 준비 1. DDD(Domain-Driven Design)에 대해 설명 해 주세요. 먼저 도메인이란 사전적 의미는 "정보와 활동의 영역"을 말하며, 흔히 프로그래머들에게는 어플리케이션 내의 로직들이 관여하는 정보의 활동의 영역이라고 받아들여진다. DDD(도메인 주도 디자인)이란 개발을 함에 있어 위에서 설명한 도메인이 중심이 되는 개발 방식을 말하며, 그 목적은 소프트웨어의 연관된 부분들을 연결하여 계속 해서 진화하는 새로운 모델을 만들어 나가 복잡한 어플리케이션을 만드는 것을 쉽게 해 주는 것에 있다. DDD의 핵심적인 목표는 Loose Coupling, High Cohesion 으로 각 도메인이 연결성이 적고 높은 정도로 연관되어 보다 가벼운 설계를 위해 탄생하였다. DDD의 세가지 주요 원리로는 핵심 도메..
기술면접 준비 1. 동기와 비동기의 차이를 설명 해 주세요. 동기와 비동기는 어떤 작업 혹은 그와 연관된 작업을 처리하고자 하는 목적의 차이 입니다. 동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나는것을 말합니다. 바로 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 합니다. 순서에 맞춰 진행되는 장점이 있지만, 여러가지 요청을 동시에 처리할 수 없습니다. 비동기는 동시에 일어나지 않는다를 의미합니다. 요청한 결과는 동시에 일어나지 않을거라는 약속이기도 합니다.하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식입니다.여러 개의 요청을 동시에 처리할 수 있는 장점이 있지만,동기 방식보다 속도가 떨어질 수도 있습니다. 2. 프레임워크와 라..