728x90

분류 전체보기 566

산소미포함 씨근풀 냉각 정리

산소 미포함(Oxygen Not Included)에서 씨근풀 냉각 효율산소 미포함에서 초중반 온도 관리는 생존에 직결되는 중요한 요소입니다.그중 **씨근풀(Weezewort)**은 전력 없이 작동하는 식물형 냉각 장치로, 많은 플레이어들이 애용합니다.그런데 왜 씨근풀은 수소 환경에서 가장 효율적일까요? 그 이유는 바로 **비열(Specific Heat Capacity)**에 있습니다.🔧 씨근풀의 냉각 메커니즘씨근풀은 아래 칸의 기체 1000g을 흡입한 뒤,그 기체를 정확히 5℃ 낮춰서 위 칸으로 배출합니다.따라서 어떤 기체를 흡입하느냐에 따라 **냉각되는 열량(Heat Deletion)**이 달라집니다.🌡️ 비열(Specific Heat Capacity)란?비열은 물질 1kg의 온도를 1℃ 올리는 데..

[JPA/Hibernate] IN 절 파라미터 패딩(Parameter Padding)

JPA를 사용하다 보면 로그에 실제 전달한 리스트는 152개인데, SQL 바인딩 시점에는 255개(혹은 256개)까지 늘어나 마지막 값이 반복해서 들어가는 현상을 볼 수 있습니다. 이는 `type.descriptor.sql.BasicBinder`가 수행하는 IN Clause Parameter Padding 때문입니다. 이 현상의 원인과 해결 방법을 정리합니다. --- 1. 왜 255개까지 늘어나는 걸까? (원인) Hibernate는 성능 최적화를 위해 IN 절에 전달된 인자의 개수를 2의 거듭제곱(2, 4, 8, 16 ... 256) 단위로 맞추는 패딩 전략을 사용합니다. * 이유: DB의 Execution Plan(실행 계획) 재사용성 때문입니다. * 상세: 인자 개수가 152개일 때와 153개일 때..

IT/프로그래밍 2026.02.06

@Transactional의 동작

@Transactional(rollbackFor = Exception.class)🔹 기본 동작@Transactional은 기본적으로 RuntimeException과 Error가 발생하면 롤백합니다.즉, 체크 예외(Exception의 하위 클래스지만 RuntimeException이 아닌 것들)는 기본적으로 롤백 대상이 아닙니다.🔹 rollbackFor 옵션의 의미rollbackFor = Exception.class라고 지정하면, 체크 예외까지 포함해서 모든 예외가 발생하면 롤백하도록 강제합니다.기본값이 "모든 예외 롤백"이 아니라 "런타임 예외만 롤백"이기 때문에, 위처럼 명시적으로 지정하는 경우가 많습니다.🔹 왜 이렇게 쓰는가?비즈니스 로직에서 IOException, SQLException 같은 체..

IT/프로그래밍 2025.12.13

대규모 트래픽을 효율적으로 처리하기 위해 어떤 접근과 기술을 사용할 수 있나요?

📝 면접 질문"Java 웹 애플리케이션에서 대규모 트래픽을 효율적으로 처리하기 위해 어떤 아키텍처적 접근과 기술을 사용할 수 있나요?"💡 모범 답변스케일 아웃(Scale-out) 구조단일 서버 성능 향상보다 로드 밸런싱을 통한 서버 확장 방식을 선호합니다.Nginx, HAProxy 같은 로드 밸런서를 활용해 트래픽을 분산합니다.비동기 처리와 메시지 큐대량 요청을 동기적으로 처리하면 병목이 발생합니다.Kafka, RabbitMQ 같은 메시지 큐를 사용해 비동기 이벤트 기반 아키텍처를 구축합니다.캐싱 전략DB 부하를 줄이기 위해 Redis, Memcached 같은 인메모리 캐시를 적극 활용합니다.정적 리소스는 CDN을 통해 제공하여 서버 부담을 줄입니다.데이터베이스 최적화읽기/쓰기 분리(Replicati..

IT/개발자 면접 2025.12.10

SLOW SQL 수정할 때 고려사항

SLOW SQL 튜닝 시 가장 중요한 고려사항은 실행계획 분석, 인덱스 활용, SELECT 범위 최소화입니다. 이 세 가지가 성능 개선의 핵심이며, 그 외에도 조인 방식, 정렬/집계 처리, 통계 정보 최신화 등이 중요합니다.🚀 SLOW SQL 튜닝 핵심 고려사항 (중요도 순)1️⃣ 실행계획(Execution Plan) 분석가장 중요한 첫 단계: DB가 쿼리를 어떻게 수행하는지 확인확인 항목: 인덱스 사용 여부, 테이블 스캔 방식, 조인 순서, 예상 비용(Cost)도구: EXPLAIN, AUTOTRACE, SQL PLAN 등2️⃣ 인덱스 활용 여부WHERE 절, JOIN 조건에 인덱스 컬럼 사용 여부 확인주의: 함수 사용, 형 변환, OR 조건 등은 인덱스를 무효화할 수 있음대응: 인덱스 설계 최적화, ..

IT/개발자 면접 2025.11.22

java Call by Value와 Call by Reference

자바에서 Call by Value(값에 의한 호출)와 Call by Reference(참조에 의한 호출)의 차이는 '무엇이 전달되는가'에 있습니다. 자바는 기본적으로 Call by Value만 지원합니다.🔍 핵심 차이 요약항목 Call by Value (값에 의한 호출) Call by Reference (참조에 의한 호출)전달 방식변수의 값을 복사해서 전달변수의 *주소(참조)*를 전달원본 데이터 영향메서드 내에서 변경해도 원본에 영향 없음메서드 내에서 변경 시 원본 데이터도 변경됨자바에서의 지원✅ 기본형(primitive type)에 적용됨❌ 자바는 엄밀히 말해 Call by Reference를 지원하지 않음객체 전달 시객체의 참조값이 복사되어 전달됨 → 객체 내부는 변경 가능참조 자체를 바꾸는 건 불..

IT/개발자 면접 2025.11.21

웹 서버 취약점 목록 및 요약

웹 서버 취약점은 해커가 시스템을 침해하거나 정보를 탈취할 수 있는 보안상의 약점입니다. 주요 취약점은 OWASP Top 10과 일반적인 서버 취약점으로 나뉘며, 각각에 대한 이해와 대응이 필수입니다.🔐 대표적인 웹 서버 취약점 목록 및 요약✅ OWASP Top 10 기반 주요 취약점OWASP(Open Web Application Security Project)는 웹 보안의 표준 가이드라인을 제공합니다:Broken Access Control (접근 제어 실패)권한 없는 사용자가 관리자 기능에 접근 가능대응: 역할 기반 접근 제어(RBAC), 서버 측 권한 검증Cryptographic Failures (암호화 실패)민감 정보가 평문으로 저장되거나 전송됨대응: HTTPS 사용, 강력한 암호화 알고리즘 적용..

IT/개발자 면접 2025.11.21

java Overloading과 Overriding

자바에서 오버로딩과 오버라이딩은 모두 메서드를 다형적으로 사용하는 방식이지만, 목적과 사용 방식이 다릅니다.🔁 오버로딩 (Overloading)같은 이름의 메서드를 매개변수만 다르게 정의하는 것정의 위치: 같은 클래스 내에서 사용조건:메서드 이름은 같음매개변수의 개수, 타입, 순서 중 하나 이상이 달라야 함리턴 타입만 다르면 오버로딩 불가능예시:void print() {} void print(String s) {} void print(int x, int y) {}용도: 다양한 입력에 대해 같은 기능을 수행하고 싶을 때🔄 오버라이딩 (Overriding)상위 클래스의 메서드를 하위 클래스에서 재정의하는 것정의 위치: 상속 관계에서 하위 클래스에서 사용조건:메서드 이름, 매개변수, 리턴 타입 모두 동일해..

IT/개발자 면접 2025.11.20

DB 복합 인덱스

복합 인덱스를 설계할 때는 컬럼 순서와 사용 패턴을 고려하는 것이 핵심입니다. 잘못 설계하면 오히려 성능 저하를 초래할 수 있습니다.다음은 복합 인덱스 설계 시 반드시 유의해야 할 주요 사항들입니다:✅ 1. 컬럼 순서: 왼쪽 우선 원칙복합 인덱스는 왼쪽부터 순차적으로만 활용됩니다.예: (A, B, C) 인덱스는 A, (A, B), (A, B, C) 조건에서만 효율적입니다.B나 C만 사용하는 조건에서는 인덱스가 무시될 수 있습니다.✅ 2. 조회 패턴 기반 설계WHERE, JOIN, ORDER BY, GROUP BY 절에서 자주 사용되는 컬럼을 기준으로 인덱스를 설계합니다.자주 함께 조회되는 컬럼은 하나의 복합 인덱스로 묶는 것이 효율적입니다.✅ 3. 카디널리티 고려**고유 값이 많은 컬럼(높은 카디널리티)..

IT/개발자 면접 2025.11.20

단일 서버에서 JWT를 피해야 하는 이유

단일 서버 기반의 간단한 웹 서비스에서는 JWT(Json Web Token) 사용이 오히려 불필요하거나 비효율적일 수 있습니다. 그 이유를 아래와 같이 설명드릴게요:❌ 단일 서버에서 JWT를 피해야 하는 이유1. 토큰 무효화가 어렵다JWT는 Stateless 인증 방식이라 서버가 토큰 상태를 저장하지 않습니다.로그아웃, 권한 변경, 계정 정지 등 상황에서 즉시 토큰을 무효화할 수 없습니다.단일 서버에서는 세션 기반 인증이 더 적합하며, 세션 삭제만으로 인증을 종료할 수 있습니다.2. 보안 리스크 증가JWT는 클라이언트에 저장되며, 탈취되면 유효 기간 동안 악용될 수 있습니다.단일 서버에서는 세션 쿠키를 HttpOnly로 설정하면 XSS 공격에 더 안전합니다.3. 복잡도 증가JWT는 서명 키 관리, 토큰 ..

IT/개발자 면접 2025.11.19
728x90
반응형