본문 바로가기

개발자 기술 면접51

[JAVA] JAVA 접근 제한자 접근 제한자란? 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 예약어를 통해서 지정할 수 있으며, 이러한 예약어를 접근 제한자라고 합니다. ※ JAVA의 접근 제한자로는 public, protected, default, private가 있습니다. public은 어떤 클래스에서든 접근이 가능하고 다른 클래스에서도 해당 클래스의 public 멤버에 접근할 수 있습니다. protected는 같은 패키지에 있는 다른 클래스나, 타 패키지에서 상속받아 하위 클래스에서 접근 가능합니다. default는 아무런 접근 제한자를 지정하지 않았을 때 적용되며, 같은 패키지 내에서만 접근 가능합니다. private는 해당 클래스 내에서만 접근 가능합니다. 다른 클래스에서 접근할 수 없습니다. ※ 표로 정리 ※ 접.. 2023. 12. 29.
[JAVA] JAVA 메모리 관리 기술 가비지 컬렉션 메모리 관리 방법 중에 하나로, 시스템에서 더이상 사용하지 않는 동적 할당된 메모리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 것입니다. 가비지 컬렉터 시스템에서 가비지 컬렉션을 수행하는 프로그램을 가비지 컬렉터라 부릅니다. JVM이 메모리를 부여받은 이후 프로그램을 실행하면서 메모리가 부족해지는 순간이 오면 추가적으로 메모리를 더 요청하게 되는데, 이때 가비지 컬렉터가 실행됩니다. 즉, 메모리가 부족할 때 쓰레기를 정리해주는 프로그램입니다. 메모리 할당 사용 중인 메모리 인식 사용하지 않는 메모리 인식 2023. 12. 29.
[JAVA] JAVA 주요 메모리 영역 ※ 프로그램 실행 시, JVM은 OS에서 할당받은 메모리 영역(Runtime Data Area)을 크게 세 영역으로 구분합니다. 메소드(Static or Method) 영역 JVM을 시작할 때 생성합니다. static 변수, 전역변수, 코드에서 사용되는 클래스 정보 등이 올라가는 영역입니다. 코드에서 사용되는 클래스들을 로더로 읽어 클래스 별로 런타임 필드 데이터, 메소드 데이터 등을 분류해 저장합니다. 모든 스레드가 공유합니다. 힙(Heap 영역) JVM을 시작할 때 생성합니다. new 연산자를 통해서 생성된 객체, 배열 등이 저장됩니다. 가비지 컬렉션에 의해서 메모리가 관리되어 지는 영역입니다. 스택(Stack) 영역 스레드 별로 생성됩니다. 지역변수, 함수(메소드) 등이 할당되는 LIFO(Last .. 2023. 12. 29.
[DB] 트랜잭션이란? 트랜잭션 - 트랜잭션이란 관련된 여러 처리를 하나의 큰 처리로 취급할 경우의 단위입니다. - 즉, 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 트랜잭션 속성 → ACID 속성 원자성(Atomicity) 트랜잭션을 구성하는 연산들이 모두 정상적으로 실행되거나 아니면 전혀 실행되지 않아야 한다는 ALL-OR-NOTHING 방식을 의미합니다. 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생할 경우 트랜잭션 전부가 취소되어야 합니다. 일관성(Consistency) 트랜잭션이 그 실행을 성공적으로 수행한 후에도 언제나 일관성 있는 데이터베이스 상태로 .. 2023. 12. 28.
[Spring] 필터(Filter)와 인터셉터(Interceptor)의 차이 필터(Filter) - 필터는 Dispatcher Servlet에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가 작업(보안, 인증, 로깅)을 처리할 수 있는 기능을 제공합니다. - 웹 컨테이너에서 동작(즉, 스프링 컨테이너 밖). 인터셉터(Interceptor) - 인터셉터는 Dispatcher Servlet이 Controller를 호출하기 전/후에 인터셉터가 끼어들어 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공합니다. (보안, 인증/인가, 로깅, Controller로 넘겨주는 정보(데이터)의 가공 등에 사용) - 스프링 컨테이너 안에서 동작. 2023. 12. 28.
728x90