본문 바로가기

분류 전체보기266

[20220428] 개발자 일기 & TIL 웹 개발도 결국은 온라인을 서비스를 하는 것이고 그러려면 응답 시간, 속도와 같은 성능적인 이슈와 당연히 관련이 있을 수밖에 없다. 그러다 보니 과도한 요청으로 인해 서버가 응답을 하지 않거나 응답 속도가 느려질 경우 어떻게 해야 할지에 대한 고민도 최근에 생기기 시작했다. 단순히 동작하는 코드를 작성하기보다 어떻게 하면 성능적으로 더 나은 코드를 작성할 수 있을까 생각하기 시작했다. 스케일업, 아웃이 불가능한 상황에서 서버에 부담을 줄이고 빠르게 뷰를 결정하고 렌더링 하려면 연산을 최대한 줄이고 요청을 간단하게 처리할 수 있어야 하지 않을까 하는 생각이 들었다. 가장 간단한 처리는 요청을 받아서 데이터 CRUD 없이 뷰 이름을 반환하는 것이다. 이는 정적인 페이지만을 반환하는 경우일 것이다. 그리고 한.. 2022. 4. 28.
[20220427] TIL TIL BeanPostProcessor는 다른 모든 빈들보다 먼저 생성된다. BeanPostProcessor를 구현(implement)한 빈은 빈이 초기화되기 전과 초기화된 후 처리할 작업들을 설정할 수 있다. BeanFactoryPostProcessor는 BeanPostProcessor보다 먼저 생성된다. 그렇기 때문에 빈 정의를 수정할 수 있다.(빈 프로퍼티 등) PropertySorucesPlaceholderConfigure(BeanFactoryPostProcessor를 구현함)을 사용하면 빈프 로퍼 티나 생성자 인수값을 프로퍼티 파일(.properties 확장자를 가진 파일)에 지정할 수 있다. 대표적인 예가 DB 접속 정보를 담는 DataSource 빈에 접속 정보를 넣을 때 사용한다. '${}.. 2022. 4. 27.
[20220426] TIL TIL destroy 메서드에서 빈(싱글턴 빈) 인스턴스를 제거하는 법: ApplcationContext의 registerShutdownHook() 메서드를 사용하여 싱글턴 빈 인스턴스를 제거한다.(JVM에 종료 훅을 등록하고 종료 훅이 캐시의 모든 싱글턴 빈 인스턴스를 제거. + close() 메서드도 대안임.) 프로토타입 빈은 destroy-method 속성을 무시함. 왜냐하면, ApplicationContext에서 프로토타입 빈을 얻어낸 객체가 자신이 사용한 프로토타입 빈의 destroy 메서드를 명시적으로 호출할 책임을 지도록 스프링 컨테이너가 원하기 때문임. 2022. 4. 26.
[20220425] TIL TIL 싱글턴 빈 내부에서 새로운 프로토타입 빈 인스턴스 얻는 방법 * 싱글턴 빈 클래스가 ApplicationContextAware 인터페이스를 구현(implements)한다. * 스프링 beans 스키마의 엘리먼트를 사용한다. * 스프링 beans 스키마의 엘리먼트를 사용한다. 자동연결(autowire) - 스프링이 자동으로 빈 의존 관계를 해결. bean 엘리먼트의 autwired 속성에 다음의 값을 주어 설정한다. * 종류: byType(타입으로), constructor(생성자로), byName(이름으로), default/no(비활성화) 자동연결의 한계: 생성자 인수, 프로퍼티의 타입이 단순 자바 타입인 경우 자동연결 사용불가. 자동연결 사용하면 애플리케이션 구조가 감춰지기 대문에 대규모 애플리케.. 2022. 4. 25.
728x90