728x90

cs지식 정리하기/면접 대비 9

[9일차] 기술 면접 준비

1. Ioc 컨테이너에 대해 설명 해주세요 ioc는 제어의 반전이라는 뜻으로 객체의 생성, 생명주기 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미합니다. ioc 컨테이너는 인스턴스의 생성부터 소멸까지 인스턴스 생명주기를 개발자가 아닌 컨테이너가 관리합니다. 컨테이너가 관리하는 객체는 빈, 빈을 관리하는 컨테이너를 빈 팩토리라고 합니다. 종류 1. beanfactory 빈을 관리하는 역할로 객체를 생성하고 di를 처리하는 기능만 제공 bean 등록 생성 조회 반환 관리 2. applicationcontext beanfactory를 비롯해 다양한 클래스 상속 받음. bean 등록 생성 조회 반환 관리, 이미지 같은 파일 자원 로드 가능 리스너로 등록된 빈에게 이벤트 발생 알려줌

[8일차] 기술 면접 준비

1. 프로세스와 스레드에 대해 설명해주세요 프로세스: 운영체제로부터 자원을 할당받은 작업의 단위. 프로그램을 실행시키는 것으로 정적인 프로그램이 동적으로 변해 프로그램이 돌아가는 상태를 의미 합니다. (메모리에 적재되고 cpu의 자원을 할당 받아 프로그램이 실행되는 상태) 생성, 준비, 실행, 대기, 종료 스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위.하나의 프로세스안에서 여러가지 작업 흐름이 동시에 진행될 수 있음. 예를 들어서 파일을 다운로드 받으면서 웹 서핑을 할 수 있음 특징 1. 데이터에 직접 접근 가능 2. 하나의 프로세스는 여러개의 스레드를 가진다. 2. 모놀리식 아키텍처와 msa에 대해서 설명해주세요 모놀리식 아키텍처는 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있..

[7일차] 기술 면접 준비

1. JVM의 스택과 힙 메모리 영역에 대해 아는 만큼 설명해주실 수 있을까요? 스택과 힙 메모리는 Java 프로그램의 메모리 관리 영역입니다. 스택 메모리 (Stack Memory):- 스택 메모리는 각 스레드마다 별도로 할당됩니다. - 메서드 호출 시 호출 스택 프레임이 생성되며, 이 프레임에는 지역 변수와 메서드 호출 정보가 저장됩니다. - 후입선출(LIFO) 구조로 동작하며, 메서드 실행이 완료되면 해당 스택 프레임이 제거됩니다. - 주로 메서드 호출과 관련된 데이터를 저장하며 상대적으로 작은 크기를 가집니다.- 메모리 관리는 자동으로 이루어지며 개발자의 개입이 적습니다. 힙 메모리 (Heap Memory): - 힙 메모리는 모든 스레드에서 공유되며, 동적으로 할당되는 객체와 배열을 저장하는 데 ..

[6일차] 기술 면접 준비

1. RDBMS와 NOSQL의 차이점을 설명하세요 RDBMS는 고정된 행(row)과 열(column)로 구성된 테이블에 데이터를 저장 장점은 스키마가 명확하게 정의, 데이터의 무결성 보장, 데이터를 중복없이 한번만 저장 단점은 유연성이 떨어짐 관계를 맺고 있어서 조인문이 복잡한 쿼리가 만들어질 수 있음. NoSQL는 관계형 데이터베이스를 제외한 다른 형태의 데이터 저장 기술을 의미 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능 유연한 스키마를 제공하며, 대량의 데이터와 높은 사용자 부하에서도 손쉽게 확장 장점은 스키마가 없기때문에 유연하고 데이터 조정 및 새로운 필드 추가가능, 데이터를 읽는 속도가 빠름. 단점은 데이터의 중복이 발생할 수 있음 관계형 데이터베이스(RDBMS)를..

[5일차] 기술 면접 준비

스프링 핵심 3가지 프로그래밍 모델 - AOP, DI, IOC aop - 로깅, 트랜잭션,보안 등 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리 1. DI에 대해 설명하고 객체지향과 연관해서 설명하세요 DI의존성 주입 기능으로 객체를 직접 생성하는 것이 아니라 외부에서 생성해 주입하는 방식입니다. 객체 지향 프로그램에서는 각 객체가, 모든 프로그램에 구속되어 유지 보수가 어려울 경우를 배제하기 위한 방법으로 프로그램을 구성한다. 즉, 인터페이스를 이용하거나 객체를 독립화시켜, 프로그램의 확장을 용이하게 한다. DI를 통해서 모듈간의 결합도가 낮아지고 유연성이 높아지는 특징이 있습니다. 스프링에서 DI를 사용하는 3가지 방법이 있습니다. 1. 생성자 주입방식 -가장 많이 사용되는 방식으로 fina..

[4일차] 기술 면접 준비

1. JPA란 무엇인가요? JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준입니다 자바 어플리케이션에서 관계형 DB를 사용하는 방식을 정의한 인터페이스 입니다. JPA가 필요하지 않은 경우는 다음과 같습니다. 1. 간단한 프로젝트: 작은 규모의 프로젝트에서는 JPA를 사용하지 않고 JDBC와 SQL을 직접 다루는 것이 좋습니다. 2. 쿼리가 복잡하지 않은 경우: 간단한 쿼리로 데이터베이스와 상호작용할 때는 JPA를 사용하는 대신 직접 SQL을 작성하는 것이 더 효과적일 수 있습니다. 3. 성능이 매우 중요한 경우: JPA는 객체와 데이터베이스 간의 변환을 처리하는데 일정한 오버헤드가 발생할 수 있습니다. 매우 높은 성능을 요구하는 애플리케이션의 경우 직접 SQL을 작성하는 것..

[3일차] 기술 면접 준비

1. JVM의 스택과 힙메모리 영역에 대해 아는 만큼 설명해주실 수 있을까요? 스택메모리 - 스택 메모리는 각 스레드마다 별도로 할당됩니다. - 메서드 호출 시 호출 스택 프레임이 생성되며, 이 프레임에는 지역 변수와 메서드 호출 정보가 저장됩니다 .- 후입선출(LIFO) 구조로 동작하며, 메서드 실행이 완료되면 해당 스택 프레임이 제거됩니다. - 주로 메서드 호출과 관련된 데이터를 저장하며 상대적으로 작은 크기를 가집니다. - 메모리 관리는 자동으로 이루어지며 개발자의 개입이 적습니다. 힙 메모리 (Heap Memory): -힙 메모리는 모든 스레드에서 공유되며, 동적으로 할당되는 객체와 배열을 저장하는 데 사용됩니다. - 객체는 힙에서 생성되며, 스택 메모리에는 객체의 참조(Reference)가 저장..

[2일차] 기술 면접 준비

1. JPA의 더티 체킹이란 무엇인가요? JPA의 더티 체킹JPA에서 더티 체킹(dirty checking)이란 영속성 컨테이너가 관리하는 엔티티의 상태를 감지해서, 변경된 부분이 있다면 자동으로 트랜잭션이 끝나는 시점에 데이터베이스에 반영하는 기능입니다. 따라서 여기서 말하는 dirty는 “엔티티 데이터의 변경된 부분”을 뜻하며 dirty checking은 변경된 부분을 감지한다는 의미입니다.더티 체킹 조건영속성 컨텍스트에서 관리되는 엔티티영속성 컨텍스트는 엔티티를 처음 조회할 때 시작되며, 이후 변경을 감지합니다. 준영속/비영속 상태의 엔티티는 더티 체킹의 대상이 되지 못합니다.Transaction이 커밋되었을 때트랜잭션이 커밋되기 전까지 영속성 컨텍스트는 변경사항을 추적하기만 하고, DB에 반영하지..

[1일차] 기술 면접 준비

1. Call by reference란 무엇이고 보통 어떻게 쓰이나요? Call by Value (값에 의한 호출): 메소드에 변수를 전달할 때, 해당 변수의 값이 복사되어 메소드 내에서 사용됩니다. 따라서 메소드 내에서 변수의 값을 변경하더라도 호출자의 변수는 변경되지 않습니다. 스프링에서는 메소드 호출 시 일반적으로 Call by Value 방식을 따릅니다. Call by Reference (참조에 의한 호출): 메소드에 변수를 전달할 때 변수의 참조(메모리 주소)가 전달되며, 메소드 내에서 변수를 수정하면 호출자의 변수도 변경됩니다. 이것은 자바에서 직접 지원하지 않습니다.스프링에서는 이러한 방식을 직접 사용하지 않고, 대신 객체를 전달하여 객체 내부의 상태를 변경할 수 있습니다. 스프링(Sprin..

728x90