일단 씻고 나가자
23.10.23 본문
2023. 10. 23 월요일
- hierarchy란? 메모리 하이라키란?
: 일반적으로 계층 구조를 의미한다.
메모리 하이라키란 메모리 계층 구조를 의미하며, 일반적으로 CPU를 중심으로 접근이 빠른 순으로 표현한다. 저장매체를 기준한다면 레지스터, CPU 캐쉬, 메인 메모리, RAM 순으로 일컫는다.
- 내부 단편화, 외부 단편화란?
: 내부 단편화란 응용 프로그램에게 할당한 메모리가 응용 프로그램의 메모리보다 커서 남게 되는 상황이며, 외부 단편화란 응용 프로그램의 크기만큼 메모리를 제공하고 회수하는 과정을 거쳤을 때 중간중간의 작은 잔여 메모리들의 합은 크지만 연속적인 공간이 아니어서 다른 큰 메모리를 할당할 수 없는 상황.
- [Spring] 스프링에서 외부 리소스를 참조하는 방법?
: Resource 인터페이스를 활용하며, 이는 기존 자바가 외부 리소스를 참고하는 방법(in/outputstream)이 직관적이지 않아 스프링에서 재구현한 인터페이스이다.
해당 인터페이스는 여러 구현체가 존재하며, 일반적으로 스프링이 ResourceLoader를 통해 알아서 내용을 로딩한다. 이는 ApplicationContext에 구현되어 있으며, 추가로 가져와야 하는 외부 리소스 파일을 해당 객체를 주입받아 활용할 수 있다.
- [Spring] AOP란? 대표 용어? 라이브러리?
: Aspect Oriented Programming. 관점 지향형 프로그래밍. 반복되는 코드 (로깅, 트랜잭션, 인증, 캐싱 등)를 특정 호출 시점을 선택하여 간단하게 활용할 수 있도록 하는 방법.
대표 용어로는 Aspect(모듈/어노테이션), Advice(실제 구현되는 로직), Pointcut(advice가 실제 실행되는 시점), Proxy(대신 요청을 받아 처리하고 실제 호출부에 전달) 등이 있다.
스프링에서 기본 제공하는 AOP 관련 라이브러리는 기능이 약하여 일반적으로 강력한 기능을 가진 AspectJ 라이브러리를 많이 활용한다. AspectJ는 전용 문법을 통해 pointcut을 설정할 수 있으며, 해당 설정으로 특정 시점에 advice를 실행하는 로직을 구현할 수 있다.