전체 글 954

4. 로그추적기 V1 프로토타입

이런 식으로 나오게 할 생각 인 듯 @Slf4j public class TraceId { private String id; private int level; public TraceId(){ this.id = createId(); this.level = 0; } private String createId(){ return UUID.randomUUID().toString().substring(0,8); } private TraceId(String id, int level){ this.id = id; this.level = level; } public TraceId createNextId(){ return new TraceId(id, level + 1); } public TraceId createPreviou..

3. 요구사항 분석

로그 추적기 시나리오 기존에 있던 거대한 프로젝트의 로그 추적기를 만드는 것 이다. 운영에 필요한 로그 추적기를 만드는 것이다. - 최근 병목이 발생하는 상황 - 어떤 부분에서 병목이 발생하는지, 어디서 예외가 발생하는 지 기존엔 개발자가 발생한 부분을 어렵게 찾아서 로그를 하나하나 직접 만들어 남겼다. 로그를 미리 남겨둔 다면 손쉽게 찾을 것. 이 부분을 개선하고 자동화. 요구사항 모든 public 메서드의 호출과 응답 정보를 로그로 출력 애플리케이션 흐름을 변경하면 안됨 (예를 들어 로그남기는 로직에서 예외가 발생해도 비즈니스 로직은 정상동작 해야 함) 메소드 소요 시간 정상 흐름과 예외 흐름 구분 (로그를 약간 다르게 출력) 메서드 호출의 깊이를 표현 함. (컨트롤러 -> 서비스 --> 리포지토리 ..

2. 예제 만들기

@Repository @RequiredArgsConstructor public class OrderRepositoryV0 { public void save(String itemId){ if(itemId.equals("ex")){ throw new IllegalStateException("예외 발생!!"); } sleep(1000); } private void sleep(int millis) { try { Thread.sleep(millis); } catch (InterruptedException e) { throw new RuntimeException(e); } } } 단지 예시이다. 실용 코드로썬 의미가 없고, ex시에 예외를 뿜게 하는거고, 그 외엔 1초 기다렸다가 정상적으로 저장되었다는 일종의 가상..

본능분석, 반박제거

먼저, 나의 욕구(본능)를 쓰고, 그것을 제 2자 입장에서, 나의 욕구로써 내놓은 미끼(상품)를 봤을 때, 어떠 한 반박이 들 지 정리해 보고, 그 반박들을 하나하나 제거해 나가는 것. 욕구 상품 반박 제거 이 4단계 프로세스로 보여짐. 예시로 사업가 자청의 이상한 마케팅 본능분석 반박제거를 가져옴. 본능분석 돈을 벌고 싶다. 사업이 잘 되고 싶다. 상품 마케팅 서비스를 제공하는 업체 반박 사기 아니야? 마케팅 효과 없으면 어쩌지? 직원 2명 있는거 아니야? 사무실 원룸 아니야? 니네가 마케팅 잘하면 니네꺼 하지 왜 남의 걸 해줘? 반박 시에는, 내가 미끼를 보는 제 2자 입장에서 차갑게 생각해야 함. 마지막 단계 반박제거 실제로 많은 직원이 분주히 일하는 모습을 처음부터 보여주며, 사기 아니야? 마케팅..

2024.01.05

1. 강의 소개

스프링의 깊이 있게 이해 하려면, 3가지 개념을 알아야 한다. 스프링 핵심 디자인 패턴 동시성 문제와 쓰레드 로컬 스프링 AOP 스프링 기술들은 대부분 다음의 패턴들로 만들어 짐 템플릿 메서드 패턴 전략 패턴 템플릿 콜백 패턴 프록시 패턴 데코레이터 패턴 동시성 문제와 쓰레드 로컬 웹서버는, 동시에 여러 클라이언트에서 요청을 받을 수 있다. 이 동시 요청을 처리하기 위해 멀티쓰레드를 사용한다. 스프링은, 쓰레드 로컬이라는 개념으로 동시성 문제를 해결함. 스프링 AOP https://qwefdg3.tistory.com/89 21강. AOP Aspect Oriented Programming 측면 지향 프로그래밍 공통관심사항과 핵심관심사항 분리 뭔가 좀 함수마다 공통사항? 예를들어 모든 함수의 실행시간을 측정..

cors 정책 (+ 쿠키)

이건 기본적으로, Cross Origin 정책 해서, Origin이 다른 곳 끼리도 통신이 가능하게끔 한다는 거임. 원래 보안상의 이유로 같은 도메인 루트만, 그러니가 aaa.com이 루트 도메인이면 api.aaa.com과 app.aaa.com 이 둘만 통신 가능하게끔 하고 싶었는데, 워낙 다른 도메인끼리 주고받는건 흔한 일이라 그걸 막을 순 없음. 그래서 어느정도 제약을 거는거임. 일단은, 이거 하려면 (쿠키만 이었나?) 프론트엔드 쪽에서도 Credentials 이거 true? include? 해 줘야 함. 저게 뭐 인증정보까지 가져온다는 그런거임. 같은 도메인 족보이면 그냥 서버에서 하고 말텐데, 이건 인증정보까지 가지고 와야 하나 봄. 그리고 서버에서, 일단 그래도 인증관련이라, ResponseCo..

카테고리 없음 2023.12.12

AWS 스프링

일단, 잘 모름. 먼저 ec2 만들고 이거는 그냥 따라하다 보면 쉽게 할 수 있음. https://velog.io/@jonghyun3668/SpringBoot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-EC2-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0 SpringBoot 프로젝트 EC2 배포하기 깃헙에 있는 프로젝트를 AWS EC2에 git clone을 통해 내려받아 jar 파일 빌드를 해보겠습니다.(EC2 인스턴스는 우분투로 진행합니다. 또한 따로 배포 시스템을 구축하지 않고 수동으로 배포하는것만 velog.io 인스턴스 생성하고, 빌드하는 것 까진 이거 따라하셈. 그 다음 https로 해야 하는데, 나는 도메인을 사게 됐음.

스프링 2023.12.11