
스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료될 때 까지 유지된다. 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻한다.싱글톤: 기본 스코프, 스프링 컨테이너의 시작과

데이터베이스 커넥션 풀, 네트워크 소켓 처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면 객체의 초기화와 종료 작업이 필요하다.스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에 필요한

생성자 주입 생성자 호출 시점에 1번만 호출되는 것이 보장된다. 불편, 필수 의존관계에 사용 > 생성자가 1개만 존재하면 @Autowired를 생략해도 자동 주입된다. 수정자 주입 setter 수정자 메서드를 통해서 의존관계를 주입하는 방법 선택, 변경 가능성이 있

스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다.의존관계도 자동으로 주입하는 @Autowired라는 기능도 제공한다.@ComponentScan은 @Component가 붙은 모든 클래스를 스프링 빈으로 등록한다.이때 스프링

클래스의 인스턴스가 1개만 생성되는 것을 보장하는 디자인 패턴객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다.private 생성자를 사용해서 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야한다.static 영역에 객체 instance를 미리 하나 생성

핵심 : Spring DI 컨테이너, AOP, 이벤트, 기타웹 : Spring MVC, Spring WebFlux데이터 접근 기술 : Transaction, JDBC, ORM, XML기술 통합 : 캐시, 이메일, 원격접근, 스케줄링테스트 : 스프링 기반 테스트 지원언어

분산 이벤트 스트리밍 플랫폼대규모 데이터를 실시간으로 처리하기 위해 사용고성능, 확장성, 내구성 가용성\[](https://mermaid.live/editProducer: 데이터 생산자Comsumer: 데이터 소비자\[](https://mermaid.

조회수는 게시글이 조회된 횟수만 저장하면 된다.비교적 덜 중요하다.모든 조회 내역을 보여주진 않는다. 단순히 조회된 횟수만 보여주면 된다.불일치가 발생하더라도 사용자가 인지하기 어렵다.비교적 많다.단순히 게시글 조회만 해도 쓰기 작업이 필요하다.데이터 일관성이 덜 중요

무한 depth depth 별로 5개의 문자열 경로 정보를 갖는다. 1depth : 5개의 문자열 2depth : 10개의 문자열 3depth : 15개의 문자열 > N depth = (N * 5) 5개의 문자열로 나타내므로, 표현 범위가 제한된다. 10개의 숫자로

Github 라벨을 하나하나 설정하지 않고 템플릿을 사용해서 적용하는 방법Node.js 설치 여부Git Access Token 발급(repo 권한 부여 후 발급)라벨 템플릿 준비(해당 게시글 하단에 템플릿 존재)

브랜치 목록 확인/생성/삭제현재 작업 디렉토리에서 어떤 파일이 변경되었는지 확인하고 싶을 때스테이지(add) 되었는지, 아직 unstaged 인지 확인하고 싶을 때어떤 파일이 커밋 대산인지 보고싶을 때두 브랜치의 변경사항을 하나의 브랜치로 합치는 것예를 들어:main

단일 DB Auto Increment에 의존하지 않고 다중 서버(멀티 노드)에서 동시 생성해도 충돌없는 고유 ID를 만드는 알고리즘DB INSERT 전에 ID를 만들어도 됨(DB 부하 감소)분산환경에서도 충돌 없음시간 순서대로 정렬 가능(정렬 성능 ↑) 64 비트의 l

DB auto_increment유니크 문자열 또는 숫자유니크 정렬 문자열유니크 정렬 숫자분산 데이터베이스 환경에서는 PK가 중복될 수 있기 때문에, 식별자의 유일성이 보장되지 않는다.클라이언트 측에 노출하면 보안 문제user_id = 1000 라면 1,000명의 사용자

게시판 설계 ||| |:-:|:-:| |articleId|Primary Key| |title|제목| |content|내용| |board_id|게시판 ID(Shard Key)| |writer_id|작성자 ID| |created_id|생성 시간| |modified_at|수

[](https://mermaid.live/edit#pako:eNo9ULtuhDAQBW0NYewMQa7iBSOMmlSBqdwzj5AARv5jPJAHsMd2KqndHO7GoWuFilgcN1sN-XTjofvbwJI0wU8Nych14b_3Gnt

시스템 아키텍처란? 시스템의 구조나 설계 방식 확장성, 유지보수성, 서능 등 큰 영향 대표적인 아키텍처 Monolithic Architecture Micorservice Architecture Monolithic Architecture Monolithic: 단일의,

\[](https://mermaid.live/editClient는 Server로 요청을 보내고 Server는 요청에 대해 필요한 작업을 처리한다.Server -> Spring Boot\[](https://mermaid.live/editSpring Bo

여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 해 준다.여러 개의 컨테이너를 관리하는데 용이복잡한 명령어로 실행시키던걸 간소화시킬 수 있음compose.yml 파일 작성services: my-web-server ->

Docker 이미지는 Dockerhub을 통해 다운받아서 사용할 수 있는데 올려져 있는 이미지들도 누군가 만들어서 Dockerhub에 올려놓은 것이다.Dockerfile이라는 걸 활용해서 Docker 이미지를 만들 수 있다.Dockerhub에 올려놓은 Docker 이미

Docker를 활용하면 특정 프로그램을 컨테이너로 뛰울 수 있다.프로그램에 기능이 추가되면 새로운 이미지를 만들어 컨테이너를 실행시켜야 한다.이때 Docker는 기존 컨테이너에서 변경된 부분을 수정하지 않고 새로운 컨테이너를 만들어서 통째로 갈아 끼우는 방식으로 교체한