분류 전체보기 277

[1분 면접] SSR과 CSR 차이점

📌 면접 답변SSR(Sever Side Rendering)서버는 CSS까지 모두 적용하여 렌더링 준비를 마치고 HTML과 JS 코드 응답모든 데이터가 이미 HTML 담긴 채로 브라우저에 전달 때문에 SEO에 유리사용자는 JS 코드 다운 전에 이미 렌더링 된 HTML 볼 수 있어 초기 구동 속도 빠름 코드 예시/ssr-example ├── server.js ├── views ├── index.ejs// server.jsconst express = require("express");const app = express();app.set("view engine", "ejs"); // EJS 템플릿 엔진 설정app.get("/", (req, res) => { res.render("index",..

[Python][프로그래머스] N으로 표현 / DP (Lv3)

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

[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 >..