2025/02 32

[1분 면접] (Connection, Socket, Read) Timeout 차이점

📌 면접 답변 Connection Timeout TCP 3-way-handshake가 일정 시간 내에 완료되지 않을 때 발생서버의 장애나 응답 지연으로인해 연결을 맺지 못하는 경우 Connection Timeout은 대부분 방화벽이 발생 원인  Socket TimeoutConnection Timeout 이후에 발생할 수 있는 Timeout서버가 데이터를 패킷 단위로 클라이언트에게 전달하는데, 일정 시간 내에 다음 패킷을 보내지 않는 경우 클라이언트가 Socket Timeout을 발생시키고 연결 종료Socket Timeout이 Read Timeout 보다 더 넓은 개념  Read Timeout 클라이언트와 서버가 연결은 되었지만 서버의 응답이 느린 경우 (서버 부하)클라이언트에서 설정한 시간까지 서버에서..

[Python][프로그래머스] 등굣길 / DP (Lv3)

🖇️ 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr🗒️ 파이썬 코드 풀이def solution(m, n, puddles): answer = 0 dp = [[0] * (m+1) for _ in range(n+1)] puddles = [[q,p] for p,q in puddles] for i in range(1,n+1): for j in range(1,m+1): if i == j == 1: ..

[1분 면접] 얕은 복사와 깊은 복사의 차이

📌 면접 답변얕은 복사객체의 주소를 복사하는 방식원본과 복사본이 같은 메모리 주소를 공유 (내부 객체 공유) 한쪽 값을 변경하면 다른 쪽도 영향을 받음 깊은 복사객체뿐만 아니라 내부에 있는 참조된 객체까지 모두 새로운 메모리 공간 할당 내부 객체도 독립적복사본을 변경해도 원본 객체에는 영향을 주지 않음 📌 내 답변얕은 복사 같은 경우, 주소까지 가져오는게 아니라 해당 주소가 가르키는 값만 가져온다. 하지만 깊은 복사 같은 경우, 주소와 값 모두 가져오는데,이로 인해 복사해온 값이 변경되면 깊은 복사한 값도 해당 값의 주소를 가르키기 때문에 같이 값이 변하게 된다.  얕은 복사와 깊은 복사에 대해 반대로 알고 있었다.그리고 복사는 주소와 값만을 복사하는 줄 알았다... 얕은 복사하면 대충 복사한 느낌이..

[1분 면접] 포워드 프록시와 리버스 프록시의 차이점

📌 면접 답변포워드 프록시 (Forward Proxy)네트워크 사용자 보호 또는 접근 제어에 사용주로 클라이언트 측에 위치하여, 사용자가 인터넷 접근할 때 중개자 역할핵심 기능은 익명성 제공, 캐싱, 보안 강화(불법 콘텐츠 접근 차단)예시로 회사 내부 네트워크에서 직원이 외부 웹사이트 접속하려 할 때, 포워드 프록시 서버를 통해 전달→ 여기에서 사용자의 실제 IP 주소는 숨겨지고, 프록시 서버의 IP 주소가 대신 사용   리버스 프록시 (Reverse Proxy서버 보호 및 로드 밸런싱 수행에 사용서버 측에 위치하여 외부에서 들어오는 클라이언트 요청을 내부 서버로 전달하는 역할핵심 기능은 로드 밸렁싱으로 서버 트래픽 분산 및 고가용성 유지외부에서 직접 백엔드 서버에 접근하지 못하게 함DDOS 공격이나 ..

[1분 면접] CORS란 ?

📌 면접 답변CORS (Cross Origin Resource Sharing)를 설정한다는 것은 출처가 다른 서버간의 리소스를 공유하는 것을 허용하는 것이다.출처(Origin) = 프로토콜(http) + 도메인(example.com) + port(80)  과거에 CSRF(Croess-Site Request Forgery, 크로스 사이트 요청 위조) 문제가 있었다.CSRF는 사용자가 의도하지 않는 요청을 공격자가 만든 웹 애플리케이션을 통해 보내게 만드는 공격이다. 좀 더 자세히 이해하기 위해 아래의 공격 방식을 살펴보자.   CSRF 공격 방식1. 사용자가 A 사이트 (은행 웹사이트)에 로그인로그인하면 세션 쿠키가 브라우저에 저장이후 사용자는 A 사이트에서 로그아웃하지 않은 상태로 다른 사이트 방문2...

[1분 면접] MySQL InnoDB에서 갭락과 넥스트 키 락이 무엇이고, 어떻게 팬텀 리드를 방지하나요?

📌 면접 답변1. Phantom Read-- 트랜잭션 A 시작START TRANSACTION;-- 트랜잭션 A 첫 번째 조회SELECT * FROM orders WHERE amount > 150;-- 트랜잭션 B 시작START TRANSACTION;-- 트랜잭션 B 새로운 행 삽입INSERT INTO orders (customer_id, amount) VALUES (4, 250);-- 트랜잭션 B 커밋COMMIT;-- 동일한 조건으로 트랜잭션 A 두 번째 조회시, 트랜잭션 A의 첫 번째 조회에는 존재하지 않던, 트랜잭션 B에서 삽입된 새로운 행이 함께 조회된다.-- 단, MVCC를 지원하는 경우 해당 케이스에서 팬텀 리드가 발생하지 않는다.SELECT * FROM orders WHERE amount >..

[1분 면접] 동기와 비동기의 차이점

📌 면접 답변 동기와 비동기는 호출하는 함수의 작업 완료를 기다리는지 여부의 차이가 있다. 예를들어, 함수 A가 동기로 함수 B를 호출하면 A는 B의 작업이 완료될 때 까지 기다린다.반면 함수 A가 비동기 함수로 B를 호출하면 A는 B의 작업 완료를 신경 쓰지 않고 따로 동작한다. (작업이 순차적으로 진행되지 않음)  📌 나의 답변동기는 작업들이 하나로 동기화 되어 하나의 일이 끝날때까지 기다리고, 끝나고 난 후 순차적으로 일이 처리되는 것을 의미한다. 반면에 비동기는 작업들이 동기화 되어있는거와 달리, 작업이 실행 중이고 현재 CPU가 해당 작업이 끝날 때 까지 기다리는 중이라면, 해당 작업은 Call Stack에서 Task Queue로 넘어가 작업을 처리된다. 그리고 Call Stack의 작업이 ..

[1분 면접] 공유락과 배타락에 대해 설명 해주세요.

📌 면접 답변DBMS에서 특별한 제어없이 병행 수행을 허용하면 데이터의 일관성과 무결성을 보장하지 못한다. 이때 사용할 수 있는 방법이 MVCC와 Lock 이다. Lock 은 공유락(Shared Lock)과 배타락(Exclusive Lock)으로 나눈다.   공유락Read Lock이라고도 불림공유락이 걸린 데이터에 대해서 다른 트랜잭션에서도 공유락 획득 가능 하지만 베타락 획득은 불가능 트랜잭션 내에서 조회한 데이터가 변경되지 않음을 보장 (쓰기 불가능)SELECT * FROM table_name WHERE id = 1 FOR SHARE ;   배타락Write Lock이라고도 불림배타락이 걸린 데이터는 다른 트랜잭션에서 공유락과 배타락 획득 불가능배타락을 가진 트랜잭션은 데이터 독점 SELE..

[MySQL][프로그래머스] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 / (Lv4)

https://school.programmers.co.kr/learn/courses/30/lessons/157339🗒️SQL 코드 풀이 # 자동차 종류 : 세단 or SUV / 2022년 11월 1일 ~ 11월 30일 / 대여 금액 50만원 ~ 200만원 # 자동차 ID / 자동차 종류 / 대여 금액 # 대여 금액(FEE) 기준 내림차순 정렬 / 자동차 종류 오름차순 / 자동차 ID 내림차순SELECT C.CAR_ID, C.CAR_TYPE, ROUND(DAILY_FEE*30*((100-D_P.DISCOUNT_RATE)/100),0) FEE FROM CAR_RENTAL_COMPANY_CAR C LEFT JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY R..