본문 바로가기

📔개발자 일기 | | TIL57

[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.
[20220422] 개발자 일기 다시 개발 건을 수정하고 있다. 역시 주문 관련 화면이라 문제가 생길 소지가 많지만 조금 체계적이지 못했던 것 같다. 데이터 검증이나 계산 로직을 염두에 두고 코딩을 시작했어야 하는데 validation 객체에 대한 이해가 부족했기 때문에 처음부터 생각하지는 못했던 것 같다. 그렇지만 이런 프로젝트를 해봄으로써 새로운 경험을 쌓는 과정이라고 생각한다. 다른 사람이 알려주는 것보다 내가 직접 기능 구현을 해보면서 프로세스를 구축하고 있다고 생각하면 굉장히 값진 경험이지 않을까 싶다. 주문 외에도 사이트 전체를 돌아다니면서 이 기능 저 기능 테스트해보고 있다. 클라이언트 쪽에서 요구 조건이 까다로워서 수정사항이 많이 발생하기 때문이다. TIL 4장 의존 관계 주입 정리... 내부 빈 - 어떤 엘리먼트의 나 .. 2022. 4. 22.
[20220421] 개발자 일기 그동안 서버를 자주 다운시켰던 주범일 가능성이 높은 원인을 찾았다. 예약 목록을 엑셀 파일로 다운로드할 수 있는 버튼이 있는데 이 버튼을 눌렀을 때 테이블에 있는 모든 로우들을 가져오게 된다. 이 과정에서 검색된 로우들을 자바의 리스트 객체에 넣어야 하는데 자료가 거의 3만 개 가까이 되니 버튼을 눌렀다간 바로 OutOfMemory 예외가 발생할 수밖에 없다. 제대로 이런 엑셀 export 기능을 만들려면 XSSFWorkbook 라이브러리를 사용해서 구현해야 한다고 한다. 그리고 말한 것처럼 한꺼번에 가져오는 것이 아니라 자바 메모리 생각하면서 나눠서 처리해야 안전하다. 그런 방법이 아니라 그냥 데이터를 한꺼번에 리스트 객체에 넣는 것은 서비스 운영 초기에 데이터가 별로 없는 경우에는 문제가 되지 않을 .. 2022. 4. 21.
728x90