경험을 쌓고,
판단을 기록합니다.

오늘 코드 뽕을 뽑습니다.

문제에서 실험으로,
실험에서 다음 판단으로.

전체 글

2371개의 글

[내일배움캠프] - RabbitMQ, Kafka

📕 오늘 학습 키워드📔 RabbitMQ Consumer, Kafka의 파티션·Key·Consumer 그룹, JPA 지연 로딩📕 오늘 학습한 내용📔 무엇을 배웠는지메시지를 큐에 보낸 것과 실제 업무 처리가 끝난 것은 다르다. RabbitMQ의 Ready는 Consumer에게 전달되기를 기다리는 메시지다. 큐에 메시지가 있어도 Consumer가 없다면 상품·결제 처리는 진행되지 않는다.Kafka는 토픽의 메시지를 여러 파티션에 나눠 저장한다. 파티션을 나누면 여러 Consumer가 담당을 나눠 병렬로 처리할 수 있다.같은 사용자의 이벤트를 같은 파티션에 모으려면 사용자 ID를 Key로 사용할 수 있다.서로 다른 Consumer 그룹은 같은 토픽의 메시지를 각각 읽는다. 결제와 통계처럼 같은 이벤트로 ..

[내일배움캠프 사전캠프] - Redis와 RabbitMQ

📕 오늘 학습 키워드📔 Redis 활용과 캐싱 전략, RabbitMQ📑 핵심 개념Redis: 메모리 기반 저장소로, 여러 자료형을 지원한다.캐싱: 자주 조회되는 데이터를 재사용해 응답 시간을 줄이고 DB 부하를 낮추는 방법이다.메시지 큐: 메시지를 저장해 두고 Consumer가 받아 처리하도록 연결한다.📕 오늘 학습한 내용📔 무엇을 배웠는지Redis의 String, List, Set, Hash, Sorted Set 자료형과 용도를 배웠다. Sorted Set은 점수를 기준으로 정렬을 유지하므로 순위 조회에 활용할 수 있다.Spring Data의 CrudRepository를 통해 Redis에서도 객체의 CRUD를 구현할 수 있다.세션을 Redis에 공유하면 요청이 다른 서버로 전달되어도 같은 세션..

[내일배움캠프 사전캠프] - MSA 과제

📕 오늘 학습한 내용📔 DDD도메인, 에그리거트, 루트 역할을 구분하며 주문 서비스의 책임과 경계를 정리📔 직접 해본 것물류 시스템의 API, ERD, 테이블 명세, 시스템 구조도, 아키텍쳐를 그림📕 학습하며 겪었던 문제점 & 에러📔 문제 또는 헷갈렸던 점JPA 매핑과 기본키 생성 전략PUT, PATH 차이와 멱등성 복습서비스간 호출 실패까지 고려하면서, 데이터 구조뿐 아니라 오류 계약과 주문 상태 처리도 설계해야 함을 꺠달음📕 내일 학습할 내용📔 다음 학습캐싱, 대규모 스트림더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.

[내일배움캠프 사전캠프] - MSA

📕 오늘 학습 키워드📔 MSA 서비스 연결📑 개념서비스를 역할별로 나누가 각각 실행하면서 서로 통신하는 구조장점: 확장성, 오류 영향 범위 최소화단점: 복잡성, 네트워크 지연📕 오늘 학습한 내용📔 무엇을 배웠는지Eureka는 서비스 탐색, Feign은 HTTP 호출, LoadBalancer는 요청 분산, Gateway는 라우팅 담당.서킷브레이커는 실패가 누적되면 호출을 차단해 장애 전파를 줄임.📔 직접 해본 것서비스 등록, 라운드로빈 분산, fallback, Gateway 라우팅과 JWT 검증을 확인📕 학습하며 겪었던 문제점 & 에러📔 문제 또는 헷갈렸던 점폴더 이동만으로 intellij 내 앱이 자동 인식되지 않아 gradle 프로젝트를 연결하는 설정을 알게됨Gateway의 404오류는 ..

[내일배움캠프 사전캠프] - 미니 배민 과제

📕 오늘 학습 키워드📔 미니 배민 과제로 숙련주차 복습하기📑 요구사항 분석, 엔티티 설계, 인증과 권한, 주문과 결제엔티티 설계: 서비스에서 필요한 데이터와 그 데이터 사이의 관계를 정하는 것.JWT 인증: 로그인할 때 받은 토큰으로 이후 요청에서 사용자를 확인하는 방식.역할과 소유권: 사장인지 확인하는 것과, 해당 가게의 사장인지 확인하는 것은 별도의 검사다.주문과 결제: 주문을 생성하면 내역이 저장되고, 결제는 이미 생성된 주문을 대상으로 진행된다.📕 오늘 학습한 내용📔 무엇을 배웠는지회원가입과 JWT 로그인 부터 사장의 가게, 메뉴 등록, 고객의 주문과 결제(PG없음), 사장의 주문 수락과 배달 완료까지 구현하고 service별로 테스트를 추가했다. 기능을 한꺼번에 구현하기보다는 단계마다 ..

[내일배움캠프 사전캠프] - Spring 숙련(RestTemplate), 심화, MSA, Docker

📕 오늘 학습 키워드📔 인증·인가와 로그인 흐름📑 Spring Security, Filter, Session, JWT인증은 사용자가 누구인지 확인하고, 인가는 해당 기능에 접근 가능한지 확인하는 것. Session은 서버에 저장된 인증 정보를 확인하고, JWT는 전달받은 토콘의 서명과 만료 등을 검증함📔 요청 데이터 검증📑 Validation, @Valid, BindingResult, FieldError요청 DTO 값이 정해진 조건을 만족하는지 검사. 검증 오류가 있으면 서비스 호출 전에 오류 처리 가능📔 서버 간 통신📑 RestTemplate, JSON 직렬화·역직렬화내 서버도 다른 서버에 요청할 때는 클라이언트가 됨. JSON으로 객체를 보낼 때는 직렬화, 객체로 바꿀 때는 역직렬화📔 ..

[내일배움캠프 사전캠프] - Spring 숙련

📕 오늘 학습 키워드📔 동기 & 비동기📑 동기호출 후 결과를 기다리고 이후 일을 진행📑 비동기호출 후 결과를 기다리지 않고 다음 일을 진행. 결과는 향후 처리📔 DB 격리 수준📑 Read Committed다른 트랜잭션이 커밋한 행의 데이터만 읽을 수 있도록 함📑 Read UnCommitted다른 트랜잭션이 아직 커밋하지 않은 행의 데이터도 읽을 수 있도록 함📑 Repeatable Read같은 트랜잭션에서 같은 행을 다시 읽을 때 다른 트랜잭션의 변경 때문에 값이 달라지지 않도록 함📑 Serializable여러 트랜잭션이 동시에 실행돼도, 그 트랜잭션들을 하나씩 순서대로 실행한 것과 같은 결과를 보장📔 Spring📑 낙관적 락 & 비관적 락낙관적 락: 수정 내용을 DB에 반영할 때 읽어..

[내일배움캠프 사전캠프] Spring Boot, Docker, AI literacy

📕 오늘 학습 키워드📔 HTTP와 멱등성📑 GET조회 URL을 통해 요청📑 POST보낸 데이터를 본문에 담아 서버가 처리하도록 요청📑 PUT덮어쓰도록 서버에 요청📑 DELETEURL로 지정한 자원을 서버가 삭제하도록 요청📑 HEAD응답 본문 없이 상태와 헤더정보를 받는 요청📑 멱등성같은 요청을 반복했을 때 서버에서 처리 후 의도한 결과가 같은지. POST를 제외하고 모두 반복 요청시 서버가 의도한 동작은 유지된다. DELETE나 PUT은 첫 번째 요청과 두 번째 요청간 결과 상태가 달라질 수 있지만 의도한 삭제와, 덮어쓰기 동작은 변함이 없기 때문에 멱등하다📔 Spring 📑 라이브러리기능을 직접 구현하지 않고 불러 쓸 수 있게 정의된 모듈📑 프레임워크애플리케이션을 만들 수 있도록 여..