이 글의 코드 및 정보들은 책을 바탕으로 작성하였습니다.
Kafka는 Pub/Sub 모델이다.
만약 Pub/Sub 모델이 아닌 경우 발생할 수 있는 문제 상황을 알아보자.
위 그림에서 웹 서버군 1대가 추가된다면?
엄청난 복잡성을 띄게 된다.
구조가 매우 단순해졌다.
각 서비스 서버들은 Kafka로 메시지를 보내는 역할을 하게 되고
모니터링 혹은 분석 시스템들도
서비스 서버들의 상태 유무와 관계없이
Kafka에 저장되어 있는 메시지만 가져오면 된다.
각자의 역할이 확실하게 분리되면서
어느 한쪽 시스템에 문제가 발생해도
연쇄 작용이 발생할 확률은 낮아진다.
주요 Branch는 총 4개다.
Main / Dev / Release / Hotfix
Main에서 Dev를 생성한다.
이 후 Dev에 대해서
Feature Branch를 생성해서 작업한다.
Level 2 : Dev -- Feature/login
: -- Feature/logout
Level 1 : Main
주변에 10~20만 원을 주고 면접 컨설팅을 받는 친구들을 보았다.
물론 그게 도움이 되겠지만
나에게는 굉장히 부담스러워서 차마 하지 못했을 거 같다.
이 글의 코드 및 정보들은 강의를 들으며 정리한 내용을 토대로 작성하였습니다.
AppRunner
@Component
public class AppRunner implements ApplicationRunner {
@Autowired
ResourceLoader resourceLoader;
@Autowired
ApplicationContext applicationContext;
@Override
public void run(ApplicationArguments args) throws Exception {
Resource resource = resourceLoader.getResource("classpath:text.txt");
System.out.println(resource.exists());
resource = applicationContext.getResource("classpath:text.txt");
System.out.println(resource.exists());
}
}
resources 디렉토리 하위에
text.txt 파일이 있으면
resource.exists()는 True
그렇지 않다면 False를 출력한다.
Java를 프로젝트를 생성하고
작업을 하다보면 좌측에
코드 디렉토리에 target 폴더가 생성된다.
이 디렉토리는 언제 생성될까?
라는 궁금증이 생겼다.