일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 노드
- 디코딩
- 익명함수
- import
- package
- Anonymous Functions
- 생성자
- 화살표 함수
- router
- 어노테이션
- annotation
- final 메소드
- 객체지향 #객체지향 특징
- Super
- 유니코드
- 자바의 특징
- Override
- final 클래스
- Arrow function
- 패키지
- 기본 생성자
- 인코딩
- 클래스
- 즉시 실행 함수
- 문자집합
- 자바
- 라우터
- node
- final
- 메소드 재정의
- Today
- Total
목록전체 글 (66)
개인 공부 블로그
스프링 빈 라이프 사이클 객체 생성 -> 의존관계 주입 스프링 빈은 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 된다. → 이 후에 초기화 작업할 수 있다. 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기와 시점을 알려주는 다양한 기능을 제공함. 스프링 빈의 이벤트 라이프 사이클 스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계주입 → 초기화 콜백 → 소멸전 콜백 → 스프링 종료 스프링은 크게 3가지 방법으로 빈 생명주기 콜백을 지원한다. - 인터페이스 ( InitializingBean, DisposableBean ) - 설정 정보에 초기화 메서드, 종료메서드 지정 - @PostConstruct, @PreDestroy 어노테이션 지원

AppConfig를 사용하면 설정정보에 직접 등록할 빈을 나열함 → 빈이 많아지면 일일이 등록하기 귀찮고 설정정보도 커지고 누락하는 문제도 발생. 스프링은 설정정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 기능과 의존관계도 자동으로 주입하는 @Autowired 기능을 제공한다. 컴포넌트 스캔 1. 컴포넌트 스캔을 사용하려면 먼저 @ComponentScan을 설정 정보에 붙여주면 된다. 컴포넌트 스캔은 이름 그대로 @Component가 붙은 클래스를 스캔해서 스프링 빈으로 등록 한다. 2. 빈으로 등록할 각 클래스가 컴포넌트 스캔의 대상이 되도록 @Component를 붙여준다. 그런데 이렇게만 하면 설정 파일 안에는 아무것도 없음. 그냥 @Component 붙은 애들이 빈으로 등록되는 것 → ..
스프링 빈 등록 1. 컨테이너 생성 컨테이너 생성할 때 AppConfig.class를 넘긴다. 2. 빈 등록 AppConfig에 @Bean 붙은 애들이 다 빈으로 등록된다. 이름 - 값 형태로 등록됨 3. 의존관계 주입 싱글톤 컨테이너 사용자가 요청을 할 때 마다 객체를 생성하면 메모리 낭비가 심하다. → 해당 객체가 딱 1개만 생성되고 공유하도록 설계 ⇒ 싱글톤 패턴 싱글톤 패턴 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인패턴. → private 생성자를 사용해 외부에서 임의로 new 키워드 사용 못하도록 막아야 한다. 적용방법 // 1. static 영역에 객체를 미리 하나 생성해서 올려둔다. private static final SingletonService instance = ne..
제어의 역전 IoC (Inversion of Control) 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것. 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성, 연결, 실행했음. AppConfig 등장 후 프로그램에 대한 제어 흐름은 AppConfig가 가져간다. 프레임워크 vs 라이브러리 내가 작성한 코드가 직접 제어의 흐름을 담당하면 라이브러리, 프레임워크가 내가 작성한 코드를 제어, 대신 실행하면 프레임워크. 의존관계 주입 DI 의존관계는 정적인 클래스 의존 관계와 실행 시점에 결정되는 동적인 객체 의존 관계를 분리해서 생각해야 함. 정적인 클래스 의존관계 정적인 의존관계는 애플리케이션을 실행하지 않아도 분석 가능. 클래스가 사용하는 import만..
컨테이너란? 환경과 상관없이 실행을 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지. 컨테이너 하나하나가 별도의 서버인 것처럼 사용할 수 있게 만든 기술 운영환경에 구애받지 않아 환경을 구축하거나 테스트하는데 시간이 많이 걸리지 않는다. 쿠버네티스란? 오픈소스 컨테이너 오케스트레이션 플랫폼. - 컨테이너 오케스트레이션 : 컨테이너의 배포, 관리, 확장 및 네트워킹을 자동화하는 것 쿠버네티스란 클라우드 환경에서 쉽고 간편하게 개발을 도와주는 플랫폼으로 컨테이너화된 애플리케이션의 관리를 자동화할 수 있도록 도와주는 플랫폼이다. 출처: https://www.opsnow.com/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%9D%B4%ED%95%B4%ED%95%98..
- 유닉스가 가격이 많이 비싸서 대체하기 위해 나온 운영체제로 유닉스와 비슷하다 - 윈도우나 맥OS 처럼 사용자 인터페이스가 잘 되어있지 않아서 사용자보다는 서버에 특화된 운영체제. - 현재 서버쪽은 대부분 리눅스를 사용하고 금융권같은 곳에서 유닉스를 사용.
Hyper Text Markup Language. 웹 페이지에서 다른페이지로 이동할 수 있는(HyperText)기능을 가진 문서(웹페이지)를 만드는 마크업 언어.(구조를 설계할 때 사용되는 언어) 웹 페이지란? 월드 와이드 웹 상에 있는 개개의 문서. html 문서는 단순히 텍스트 파일에 불과하고 웹 브라우저가 해석을 해서 구조를 화면에 렌더링하고 사용자는 view를 통해 화면을 볼 수 있는 것. -> 그러면 블로그에서 글쓰기를 하면 하나의 html문서가 또 생성되는 것? 지금은 동적으로 데이터 불러와서 뿌리는 것. html문서로 내가 쓴 글을 뿌리고 브라우저가 렌더링해서 볼 수 있는 것. HTML은 웹 사이트의 콘텐츠를 설명하기 위한 구조적 언어이다. HTML은 header와 body 영역으로 구성된다..
프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것. 자동 타입 변환은 아래와 같은 조건에서 일어남. 부모클래스 변수 = 자식클래스 타입; Class Animal { ... } Class Cat extends Animal { ... } 생략 ... Cat cat = new Cat(); Animal animal = cat;// Animal animal = new Cat()도 가능. cat과 animal 변수는 타입만 다를 뿐, Cat 객체를 참조한다. 부모인 Animal 객체를 참조하는 것이 아님. - 바로 위의 부모가 아니더라도 상속 계층에서 상위 타입이면 자동 타입 변환이 일어날 수 있다. - 부모 타입으로 자동 타입 변환된 이후에는 변수는 자식 객체를 참조하지만 부모 클래스의 필드, 메소드만 접..
protected의 접근 제한 범위는 같은 패키지에 소속된 클래스이거나 자식 클래스이다. protected 클래스를 상속받은 자식클래스는 부모 클래스의 필드, 생성자, 메소드에 접근이 가능하다. 단 new 연산자를 사용해 생성자를 직접 호출할 수는 없고, 자식 생성자에서 super()로 호출할 수 있다.