| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 코드테스트
- 스프링
- 정리
- 자바스크립트
- Next.js
- 자바
- java
- 서버
- 백엔드
- 디자인 패턴
- 코드 테스트
- 알고리즘
- BACK-END
- spring
- SQL
- 데이터베이스
- MySQL
- oracle
- 프로그래머스
- 오라클
- 스프링부트
- JavaScript
- 미니정리
- web
- 쿼리
- jpa
- jsp
- node.js
- 프런트엔드
- 프론트엔드
- Today
- Total
목록Spring (36)
참치코더의 꿈 메모장
컴포넌트 스캔 정리 및 중요한 점 (스프링 프레임워크 관점) @ComponentScan - @ComponentScan은 @Component가 붙은 모든 클래스를 모두 스프링 빈으로 등록한다. - 이때 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다. 빈 이름 기본 전략 : MeberService -> memberService 빈 이름 직접 지정 : 만약 스프링 빈의 이름을 직접 지정하고 싶으면 @Component("memberService2")이런식으로 직접 부여하면 된다. @Autowired 의존 관계 자동 주입 - 생성자에 @Autowired를 지정하면, 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 주입한다. - 생성자에 파라미터가 많아도 다 찾아서 자동으로 주입..
@Configuration 내부의 코드 조작 - AnnotationConfigApplicationContext("입력 클래스")에 파라미터로 넘긴 값은 스프링 빈으로 등록된다. - ac.getBean("입력 클래스").getClass( )하면 순수한 클래스 명이 출력이 되는 것이 아니라 X.CGLIB이 붙으면서 복잡한 클래스명이 출력이 되는데, 내가 만든 입력 클래스가 아니라 스프링이 CGLIB이라는 바이트코드 조작 라이브러리를 사용해서 입력 클래스를 상속받은 다른 클래스를 만들고, 그 다른 클래스를 스프링 빈으로 등록한 것이다. - 새로 스프링이 만든 그 클래스가 바로 싱글톤이 보장되도록 해준다. - @Configuration을 사용하지 않고 @Bean만 사용하면 사용은 가능하지만, 싱글톤을 보장하지는..
싱글톤 방식의 주의점 1. 싱글톤 패턴이든, 스프링 같은 싱글톤 컨테이너를 사용하든, 객체 인스턴스를 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 유지하게 설계하면 안된다. 2. 무상태로 설계해야 한다. - 특정 클라이언트에 의존적인 필드가 있으면 안된다. - 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다. - 읽기만 가능해야 한다. - 필드 대신에 자바에서 공유되지 않는, 지역변수, 파라미터, ThreadLocal등을 사용해야 한다. - 스프링 빈의 필드에 공유 값을 설정하면 정말 큰 장애가 발생할 수 있다. (공유 값 만들지 말기 , 특히 돈 관련되서) - @Configuration을 선언하면 해당하..
싱글톤 컨테이너 - 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 그러나 조금 불편할 뿐이지 앱이나 데몬 프로그램, 응용소프트웨어도 충분히 개발할 수 있다. - 웹 애플리케이션은 여러 고객이 동시에 요청을 한다 (매초 수천 ~ 수만건 이상) - 스프링 없는 순수한 DI 컨테이너(순수한 자바 코드)로 사용자가 요청을 할 때 마다 객체를 새로 생성한다. - 사용자가 접속하는 트래픽이 수백만건이면 수백만건의 자바 객체 생성이 발생한다. (과도한 JVM 서버 메모리 낭비 발생) -> 추후 하드웨어적으로 서버에서도 메모리 과다 사용 및 서버 메모리 용량 부족 문제 발생, 심하면 서버 다운 - 해결하는 방법은 해당 객체가 메모리에 1개만 생성되고, 공유하도록 설계하면 된다. -> 싱글톤 패턴 사용으..