면접 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(*)..
면접 CS 정리 Day 17 (풀스택 / Java·Spring·React)Q1. Comparable vs Comparator문제Comparable이랑 Comparator 차이? 정렬 기준을 어디에 두는지.답Comparable: 클래스 안 compareTo() — 기본 정렬 1개Comparator: 바깥 compare(a, b) — 정렬 기준 여러 개 (람다 가능)Comparable = 자연 순서 / Comparator = 외부에서 다른 기준.Q2. @Valid + Bean Validation문제@NotNull / @Size / @Valid가 뭐 하는지? 어디서 검증되나?답@NotNull, @Size 등 = DTO 필드에 입력값 규칙 선언@Valid = 그 규칙으로 검증 실행 트리거컨트롤러에서 @Reque..
면접 CS 정리 Day 16 (풀스택 / Java·Spring·React)Q1. pass by value문제자바는 참조 전달이 아니라 실제로 무엇이 넘어가나?메서드 안에서 파라미터를 바꿔도 원본이 안 바뀌는 이유.답자바는 pass by value(값 전달) 만 있다.기본형: 값 복사객체: 참조(주소) 값 복사 (객체 자체 복사 아님)param = new User() → 참조 변수만 바뀜 → 원본 변수는 그대로.param.setName() → 같은 객체를 가리키므로 원본 내용은 바뀜.프록시와는 다른 개념.Q2. ACID문제A / C / I / D 각각 한 글자 의미.답A Atomicity: 원자성 — 전부 성공 or 전부 실패C Consistency: 일관성 — 트랜잭션 전후 데이터 규칙 유지I Isola..