면접 CS 정리 Day 23 (풀스택 / Java·Spring·React)Q1. deep copy vs shallow copy문제차이? 안에 객체 참조가 있을 때.답Shallow copy: 바깥만 새 객체, 안쪽 참조는 공유Deep copy: 안쪽까지 새로 복사 → 완전 독립얕은 복사라면 내부 객체 수정이 원본·복사본에 같이 반영될 수 있다. JS와 같은 개념.Q2. Embedded Tomcat문제임베디드 톰캣이 뭔지? 외부 WAS war 배포와 차이.답Spring Boot가 앱 안에 톰캣을 내장.java -jar로 실행 가능 → 별도 톰캣 설치 불필요.예전: 외부 WAS에 war 배포. Boot: 보통 jar + 임베디드 서버.Q3. 커넥션 풀 고갈문제증상 / 원인 / 확인.답증상: 커넥션 대기 후 타..
면접 CS 정리 Day 22 (풀스택 / Java·Spring·React)Q1. volatile vs synchronized문제volatile이 뭐 하는지? synchronized와 차이.답volatile: 변수를 메인 메모리에서 바로 읽고 씀 → 스레드 간 가시성 보장synchronized: 한 번에 한 스레드만 임계구역 실행 (+ 가시성)volatile은 락이 아님. i++ 같은 복합 연산의 원자성은 보장 안 함.단순 플래그 공유에 자주 씀.Q2. MethodArgumentNotValidException문제@RestControllerAdvice에서 이 예외를 잡는 이유? @Valid와 연결.답@Valid + DTO Bean Validation(@NotNull, @Size, @Pattern 등) 실패 ..
면접 CS 정리 Day 21 (풀스택 / Java·Spring·React)Q1. String 불변문제s = s + "b" 해도 String이 불변인 이유?답기존 객체를 바꾸는 게 아니라 새 String 객체를 만들고 참조만 바꾼다.그래서 String은 불변. 반복 연결은 StringBuilder.Q2. 인증 vs 인가문제Authentication / Authorization 차이? 401 / 403 연결.답인증: 누구인지 확인 (로그인/토큰) → 실패 시 401인가: 무엇을 할 수 있는지 확인 (권한) → 실패 시 403Q3. 정규화 vs 비정규화문제각각 하는 이유 한 줄.답정규화: 중복 제거, 이상 현상 감소 → 데이터 일관성비정규화: JOIN 줄여 조회 성능 올리려고 일부러 중복테이블 쪼개기/합치기만..
면접 CS 정리 Day 20 (풀스택 / Java·Spring·React)Q1. HashMap / LinkedHashMap / TreeMap문제순서 보장 기준으로 차이.답HashMap: 순서 보장 안 함LinkedHashMap: 삽입 순서 보장 (옵션으로 접근 순서)TreeMap: 키 정렬 순서동시성은 ConcurrentHashMap. TreeMap/LinkedHashMap이 아님.LinkedHashMap의 “노드 연결” 설명은 LinkedList와 헷갈리지 말 것.Q2. @Value vs @ConfigurationProperties문제차이? 설정이 많아질수록 뭘 선호?답@Value("${key}"): 값을 한 개씩 주입@ConfigurationProperties: prefix 아래 설정을 클래스에 묶어..
면접 CS 정리 Day 19 (풀스택 / Java·Spring·React)Q1. try-with-resources문제try-with-resources가 뭔지, finally에서 직접 close() 안 해도 되는 이유.답AutoCloseable 리소스를 try (...) 안에 선언하면 블록 종료 시 자동 close().catch/finally를 없애는 게 아니라 리소스 해제를 자동화한다.Q2. Message Queue문제Kafka/RabbitMQ 등을 쓰는 이유 2가지.답비동기 처리 — API는 바로 응답, 알림·메일 등은 나중에 처리서비스 분리(decoupling) — 서비스끼리 직접 호출 없이 큐로 연결보너스: 트래픽 버퍼(순간 폭주 완화).Q3. LIKE '%keyword%'문제인덱스를 왜 잘 못 타..
면접 CS 정리 Day 18 (풀스택 / Java·Spring·React)Q1. enum문제enum을 상수 문자열 대신 쓰는 이유 2가지.답타입 안전 — 잘못된 값·오타를 컴파일에서 잡기 쉬움허용 값 고정 — 정해진 목록만 쓰게 강제보너스: static import로 명확하게 쓰기, 메서드·필드 추가 가능.Q2. CORS preflight문제CORS preflight가 뭔지, OPTIONS가 언제 먼저 나가나?답본 요청 전에 브라우저가 서버 허용 여부를 먼저 확인하는 OPTIONS 요청.단순 요청이 아닐 때 — 예: POST + Content-Type: application/json, 커스텀 헤더, PUT/DELETE.Q3. COUNT(*) vs COUNT(컬럼)문제차이? NULL 행은?답COUNT(*)..