본문 바로가기
728x90

Programming23

가비지 컬렉터(Garbage Collector) 동작 원리 ● 가비지 컬렉터(Garbage Collector) - 메모리 관리를 위해 힙영역에서 더 이상 사용되지 않는 객체를 메모리에서 제거하는 것 ● 동작 원리 JVM에서 GC의 스케줄링을 담당하여 Java 개발자에게 메모리 관리의 부담을 덜어준다. GC는 background에서 데몬 쓰레드로 돌며 더 이상 사용되지 않는 객체들을 메모리에서 제거하여 효율적인 메모리 사용을 돕는다. 객체는 힙 영역에 저장되고 스택 영역에 이를 가리키는 주소값이 저장되는데 참조되진 않는객체를 메모리에서 제거한다. ● 물리적 공간 (Heap 영역) - Young Generation - Eden 새로 생성된 객체들이 위치 Minor GC 발생 - Survivor 1, 2 Eden 영역에서 GC 실행 후 살아남은 객체들이 위치 Mino.. 2022. 11. 21.
PRG 패턴 (Post-Redirect-Get)이란? PRG(Post-Redirect-Get) 패턴은 웹 개발 시 권장되는 디자인 패턴중 하나로, HTTP POST 요청에 대한 응답이 또 다른 URL로의 GET 요청을 위한 리다이렉트(응답 코드가 3XX)여야 한다는 것을 의미한다. 즉, 일반적인 HTTP GET 요청처럼 HTTP POST 요청에 대한 응답이 어떠한 페이지를 직접 반환하는 것은 권장되지 않는 위험한 방식이라는 것이다. ● PRG 패턴의 필요성 PRG 패턴을 사용하지 않는 다면, 대표적으로 다음과 같은 두가지 문제점이 발생할 수 있다. 첫째, 새로고침으로 인해 동일한 HTTP POST 요청이 중복으로 발생하여 의도치 않은 결과를 낳을 수 있다. 만약 HTTP POST 요청에 대한 응답이 단순히 어떠한 페이지를 직접 반환하는 것이라면, 이후 새로.. 2022. 10. 31.
접근자 프로퍼티란? 접근자란 객체 지향 프로그래밍에서 객체가 가진 프로퍼티 값을 읽거나 사용 할 수 있도록 제공하는 메서드이다. 객체의 프로퍼티를 객체 바깥에서 직접 조작하는 행위는 데이터의 유지 보수성을 해치는 주요한 원인이다. 접근자 프로퍼티의 본질은 함수인데, 이 함수는 값을 획득(Get)하고 설정(Set)하는 역할을 한다. 접근자 프로퍼티는 'getter' 'setter' 메소드로 표현된다. 객체 리터럴 안에서 getter와 setter 메소드는 get과 set으로 나타낸다. ● Getter : 특정 값을 조회하고자 할 때 사용한다. ● Setter : 특정 값을 설정하고자 할 때 사용한다. public class User { private String name; private int age; public Strin.. 2022. 10. 31.
@Configuration 안에 @Bean을 사용해야 하는 이유, proxyBeanMethods 스프링에서 수동으로 빈을 등록 할때 @Configuration 클래스 안에 @Bean을 사용한다. 왜 그런지 살펴보자. ● @Configuration 안에 @Bean을 사용하는 이유, proxyBeanMethods - @Bean 어노테이션을 이용한 수동 빈 등록 스프링에선 일반적으로 컴포넌트 스캔을 이용해 자동으로 빈을 등록하는 방법을 이용한다. 하지만 @Bean 어노테이션을 사용해 수동으로 빈을 등록해야 할 때도 있다. 개발자가 직접 제어가 불가능한 라이브러리를 활용할 때 애플리케이션 전 범위적으로 사용되는 클래스를 등록할 때 다형성을 활용하여 여러 구현체를 등록해야 할 때 @Bean을 이용한 수동 빈 메소드는 스프링 빈 안에만 구현되어 있다면 모두 동작한다. 하지만 스프링은 @Bean은 반드시 @Co.. 2022. 10. 30.
728x90