본문 바로가기

CS4

[CS] DB Isolation Level Isolation Levelcs 면접에서 단골 질문이 isolation level입니다. 이 글에서는 격리에 대해서 자세히 설명드리겠습니다. 트랜잭션의 격리 수준(Isolation Level)이란, 여러 트랜잭션이 동시에 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 여부를 결정하는 설정입니다. 격리 수준은 고립도가 높은 순서대로 SERIALIZABLE, REPEATABLE READ, READ COMMITTED, READ UNCOMMITTED가 있으며, 고립도가 높을수록 데이터의 일관성은 보장되지만 동시에 성능 저하가 발생할 수 있습니다. SERIALIZABLEREPEATABLE READREAD COMMITTEDREAD UNCOMMITTED참고로, 아래에.. 2025. 3. 27.
[CS] JAVA의 JIT 컴파일러와 Warm Up JVM자바를 공부하시는 분들은 JVM을 들어보셨을 겁니다. JVM은 어느 OS에서 실행해도 자바로 작성된 파일을 잘 실행시켜줍니다. 그렇기 때문에 이식성이 높다는 말을 듣죠.JVM은 JIT 컴파일러를 가지고 있습니다. 이 글에서 JIT 컴파일러에 대해서 말씀드리겠습니다. 컴파일과 인터프리터의 차이프로그래밍 언어를 실행하는 방식에는 크게 컴파일 방식과 인터프리터 방식이 있습니다.컴파일 방식전체 코드를 한 번에 기계어(네이티브 코드)로 변환하여 실행하는 방식입니다.실행 속도가 빠르지만, 실행 전에 컴파일 과정이 필요하므로 초기 실행 시간이 오래 걸립니다.대표적인 컴파일 언어: C, C++#include int main() { printf("Hello, World!\n"); return 0;}// .. 2025. 3. 12.
[CS] CS 기술면접 (2) 쓰레드란?쓰레드는 프로세스 내에서 실행되는 최소 실행 단위입니다. 하나의 프로세스는 여러 개의 쓰레드를 가질 수 있으며, 각 쓰레드는 프로세스의 메모리를 공유하면서 독립적으로 실행됩니다.  경량성: 프로세스보다 적은 자원으로 실행되며, 컨텍스트 스위칭 비용이 적음.메모리 공유: 동일한 프로세스 내의 쓰레드들은 코드, 데이터, 힙 메모리를 공유하지만, 각자의 스택 메모리는 별도로 할당됨.병렬 처리: 멀티 쓰레드를 활용하면 CPU를 효율적으로 사용할 수 있으며, 동시성 및 병렬성을 향상시킬 수 있음. 멀티 쓰레드의 장점과 단점은?장점: CPU 활용 극대화, 응답 속도 향상, 작업 분리 가능단점: 동기화 문제 발생 가능(데드락), 문맥 전환 비용 발생쓰레드 동기화 문제 해결 방법은?synchronized 키워.. 2025. 3. 10.
[기술면접] CS 기술면접 질문 SOLID 원칙이란?SOLID 원칙은 객체 지향 프로그래밍에서 유지보수성과 확장성을 높이고 코드 품질을 향상시키기 위한 다섯 가지 설계 원칙을 의미합니다.SOLID는 각 원칙의 첫 글자를 따서 만들어졌으며, 코드가 변경에 유연하고 안정적인 구조를 갖출 수 있도록 돕습니다.면접에서 SOLID 원칙을 설명할 때는 각 원칙이 왜 중요한지와 어떻게 적용할 수 있는지에 초점을 맞추면 좋습니다.단일 책임 원칙 (Single Responsibility Principle, SRP)설명: 하나의 클래스는 하나의 책임만 가져야 한다는 원칙입니다. 즉, 클래스는 단 하나의 기능만 수행하고, 그 기능에 대해서만 변경의 이유가 있어야 합니다.중요성: 한 클래스가 여러 책임을 가지면, 해당 책임 중 하나가 변경될 때 다른 책임도.. 2024. 10. 6.