목록2025/08 (12)
개발지식 먹는 하마 님의 블로그
✅ 커널1) 커널에 대해 설명해주세요더보기커널은 운영체제의 핵심 부분으로, 하드웨어와 애플리케이션 소프트웨어 사이에서 자원 관리와 추상화를 담당합니다. 프로세스 관리(스케줄링, 문맥 교환), 메모리 관리(가상 메모리, 페이징), 파일 시스템 관리, 디바이스 제어(드라이버) 등을수행합니다.2) 커널이 왜 필요한가요?더보기커널은 다양한 자원을 관리하는데 이는 사용자가 물리적인 하드웨어에 접근하고 사용할 수 있도록 매개하기 위해서 즉, 인터페이스로써 사용자가 컴퓨터만의 언어와 규칙으로 하드웨어와 통신할 수 있도록 도와주기 때문입니다.3) 커널에는 어떤 종류가 있고 또 차이점은 무엇인지 말씀해주세요더보기대표적으로 모놀리식 커널(Monolithic Kernel) 과 마이크로커널(Microkernel) 구조가 있습..
✅ 그래프 탐색 알고리즘1) 그래프 탐색 알고리즘에 대해 설명해 주세요.더보기그래프 탐색 알고리즘은 정점과 간선으로 이루어진 그래프에서 원하는 노드나 경로를 찾기 위해 사용하는 방법입니다. 대표적으로 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)이 있습니다. DFS는 한 경로를 끝까지 탐색한 뒤 다른 경로로 넘어가는 방식이고, BFS는 시작 노드에서 가까운 노드부터 차례로 탐색하는 방식입니다.2) DFS와 BFS의 차이점, 언제 어떤 걸 쓰는지 설명해 주세요.더보기깊이 우선 탐색은 Stack이나 재귀 기반으로 구현하고 너비 우선 탐색은 Queue를 기반으로 구현되는데 DFS는 최적의 값을 찾는 곳에 주로 사용되고 BFS는 과정은 크게 중요하지 않고 최단 경로를 찾을 때 주로 사용됩니다.3) DFS와..

오늘도 발생해버린 3인의 뉴런 공유... 신기하다✅ JAVA1) Java의 장점과 단점이 무엇인가요?더보기Java는 객체지향 프로그래밍 언어로 JVM기반으로 실행되기 때문에 운영체제의 종류와 상관없이 실행 가능하고,자동으로 메모리가 관리되며 멀티스레딩과 네트워킹을 지원한다는 장점이 있습니다.다만, JVM이 먼저 실행되어야 하기 때문에 상대적으로 느리다는 것과 메모리 사용량이 높다는 단점이 있습니다.2) Java가 플랫폼 독립성을 어떻게 보장하나요?더보기JVM에서 자바 컴파일러(Javac)가 Java 소스 코드를 바이트 코드로 변환하고,사용하는 플랫폼에 따라 JIT 컴파일러가 기계어로 변환하기 때문에 플랫폼 독립성이 보장됩니다.3) Java의 자동 메모리 관리 방식은 어떻게 동작하고, 개발자에게 어떤 이점..

뉴런이 공유되었나 3명이 비슷한 주제를 들고 왔다.✅OOP1) OOP란 무엇인가?더보기OOP는 객체 지향 프로그래밍으로 상태와 행동을 객체로 모델링하고객체 간의 상호작용으로 문제를 해결하여 변경이 용이하고 재사용성을 높이고자 하는 프로그래밍 방식입니다.2) OOP의 5가지 설계 원칙?더보기클래스는 확장에 열려있고 변경에는 닫혀있어야 한다는 개방폐쇄 원칙과 인터페이스는 이용하지 않는 메소드에 의존하지 않도록 분리해야 한다는 인터페이스 분리 원칙, 이 두가지는 클래스와 인터페이스가 독립적이어야 한다는 것을 말하고단일 책임 원칙은 각 클래스는 하나의 목적을 가져야 한다는 것을 말하며리스코프 치환 원칙은 상속을 받은 자식 객체는 부모 객체의 행위를 대체할 수 있어야 한다는 것,의존 역전 법칙은 클라이언트는 구현..

스터디에서 그동안은 각자 맡은 코드가 실제로 어떤 원리로 어떻게 실행되는지에 대해 공유하고,고도화를 진행했었다.이 과정이 끝나고 (나는 아직 남음) 본격적으로 면접 대비 및 이해도 향상을 위한 CS 스터디가 시작되었다.파란색은 새롭게 알게된 부분이다.✅DI1) DI에 대해 설명하시오더보기DI는 의존성 주입이라고 하며, 객체가 직접 의존성을 생성하지 않고 외부에서 주입받는 방식을 말합니다.스프링에서는 Bean을 기반으로 IoC 컨테이너가 의존성을 주입 및 관리하면서 제어의 역전이 적용되어있습니다.2) DI를 사용하는 이유가 뭔가요?new를 사용해서 의존성을 직접 생성하면, 결합도가 높아지면서 재사용성이 떨어지게 됩니다.외부에서 의존성을 주입받는 것을 통해서 결합도를 낮추어 재사용성과 확장성이 높아지고테스트..

이전에 정리했던 글에서 트랜잭션 흐름과 추상화에 대해 설명할 때, 한 번 언급된 요소인 Transaction Manager에 관한 내용이다.https://devhippo.tistory.com/158 Spring에서의 Transaction 트랜잭션 - 전파, 격리 수준 등Transaction이란?데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 Transaction의 특징 + 관련 기능✅ 원자성 Atomicity + Commit & Rollback1개의 트랜잭션 내의 연산이 모devhippo.tistory.com PlatformTransactionManager기술마다 사용하는 리소스가 다루기 때문에 트랜잭션 관리를 추상화한 것이 바로 PlatformTransactionMana..

Transaction이란?데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 Transaction의 특징 + 관련 기능✅ 원자성 Atomicity + Commit & Rollback1개의 트랜잭션 내의 연산이 모두 반영되거나 또는 전혀 반영되지 않아야 한다.초기 상태를 임시 영역 Rollback Segment에 저장한다.트랜잭션 내에서 오류 발생 시,임시 영역에 저장한 상태로 Rollback트랜잭션 내 연산 성공 시, Commit✅ 일관성 Consistency 트랜잭션 처리 결과는 항상 일관적이어야 한다. ✅ 격리성 Isolation + Lock어떤 트랜잭션이 다른 트랜잭션의 연산에 끼어들 수 없다.Race Condition(동시에 같은 데이터를 수정하려 할 때 발생하는 경쟁..

Spring Framework의 모듈과 모듈 내의 각 요소에 대해 정리해보자!Spring Framework✅ 구조 IoC 컨테이너와 사용 이유에 대한 간략 설명!객체 생성 권한을 Contatiner에 위임하며 Service에 영향을 최소화하여 재사용성을 높인다 = IoC 제어의 역전 💡Core ContainerIoC 컨테이너를 통한 Bean 생명주기 관리!!!💎 BeansBean 정의, 등록, 생명주기, 의존성 주입을 담당한다.DI (의존성 주입)빈 스코프 설정@Autowired, @Qualifier 기반 의존성 관리Bean Factory는 싱글톤의 필요성을 제거하고 Configuration과 Dependency를 분리하게끔 도와준다.@Component, @Service 등의 Annotation을 통..
보호되어 있는 글입니다.
보호되어 있는 글입니다.