전체 글 36

TIL(2025-03-26)

◆ 개인 강점 회고 템플릿내가 했던 작업 및 역할 정리내가 맡은 주요 작업 및 기능은 무엇이었나요?주요 작업 : 주문 서비스 CRUD + 검색 기능, 주문-배송 간 재고 감소 기능( FeignClient), 주문 - 배송 간 배송 생성 요청 기능 연동(FeignClient), Slack 도메인 연동을 위한 주문 + 배송 정보 응답 API 제공내가 맡은 팀 내 역할은 무엇이었나요?역할 : 팀원, 문서화, PPT 담당자기 인식 및 강점 탐색이번 프로젝트를 진행하면서 내가 느끼는 나의 강점은 무엇이라고 생각하나요?맡은 일에 최선을 다하려고 노력하였고, 팀원들이 부탁한 부분에 있어서 끝까지 책임을 지려고 한 부분이 강점이라고 생각한다.이번 프로젝트에서 내가 가장 몰입했던 순간은 언제였나요? 왜 그렇게 몰입할 수..

카테고리 없음 2025.03.26

TIL(2025-03-21)

TIL - 2025.03.20 (목)📌 오늘 한 일소프트 삭제(Soft Delete) 적용deleteOrder()에서 실제 삭제 대신 isDeleted, deletedAt, deletedBy 필드 업데이트주문 취소 기능 추가/api/v1/orders/{id}/cancel?reason=OO 형태로 구현상태가 CREATED인 주문만 취소 가능하도록 제약 설정⚠️ 발생한 이슈 & 해결@Valid, @NotNull에서 오류 발생 → import 문제 (javax → jakarta) 수정@PathVariable, @RequestParam 관련 에러 → -parameters 컴파일 옵션 문제 해결BaseEntity 필드 강제 설정 문제 → setCreatedBy(0L) 등으로 임시 처리userId가 필수인데 Us..

카테고리 없음 2025.03.21

TIL(2025-03-20)

오류 & 해결 방법 정리1️⃣ createdBy 문제 (Order 생성 시 User 없이 진행)✅ 문제Order 엔티티가 BaseEntity를 상속받음BaseEntity의 createdBy 필드가 @CreatedBy로 설정되어 있음 → null이면 DB 제약 조건 위반 발생현재 User 정보 없이 진행하므로 createdBy를 어떻게 처리할지 고민✅ 해결 방법super(0L);을 사용하여 createdBy를 임시 값(0L)으로 설정Order 생성 시 createdBy 값을 자동으로 0L로 설정되도록 수정 2️⃣ Soft Delete(소프트 삭제) 기능 구현✅ 문제기존 삭제 기능이 Hard Delete(하드 삭제) 방식 (orderRepository.delete(order);)isDeleted 필드가 있는..

카테고리 없음 2025.03.20

TIL(2025-03-19)

MSA 프로젝트 진행 중에 4계층 구조가 잘 이해가 안가고 ㅎSA 프로젝트 진행 중에 4계층 구조가 잘 이해가 안가기도 해서 정리 해봤다.4계층 구조 (Application, Infrastructure, Domain, Presentation)→ MSA 기반 프로젝트에서 유지보수성과 확장성을 높이는 중요한 설계 방식Presentation Layer역할클라이언트와 직접 통신하는 계층HTTP 요청을 받아 적절한 Application Layer의 서비스 로직을 호출Dto를 통해 데이터를 변환하고 응답을 생성포함되는 클래스클래스역할OrderController클라이언트 요청을 받아 OrderService에 위임OrderRequestDto주문 생성 및 수정 요청데이터를 담는 DTOOrderResponseDto클라이언..

카테고리 없음 2025.03.19

TIL(2025-03-17)

★오늘 한 일MSA 기반 물류 관리 및 배송 시스템 개발 진행모듈 설정 완료docker-compose 환경에서 개발 시작order-service 도메인의 CRUD 기능 구현 완료★오늘 학습한 내용 docker-compose란?docker-compose는 여러 개의 컨테이너를 한 번에 관리할 수 있도록 해주는 도구이다.마이크로서비스 아키텍처(MSA)에서는 각 서비스가 독립적인 컨테이너로 실행되기 때문에,여러 컨테이너를 한 번에 실행하고 네트워크를 구성할 수 있도록 docker-compose.yml 파일을 사용한다. ★docker-compose의 주요 개념✅ 서비스(Service)docker-compose에서 각 컨테이너를 서비스라고 합니다.예를 들어, order-service, inventory-servi..

카테고리 없음 2025.03.17

TIL(2025-03-13)

★ MSA에서 멀티모듈을 활용한 서비스 구성 ★1️⃣ 멀티모듈(Multi-Module) 구조란?멀티모듈 프로젝트는 하나의 메인 프로젝트(root project) 안에서 여러 개의 서브모듈(submodule) 로 구성된 프로젝트 구조를 의미한다.이를 통해 코드 재사용, 독립적인 빌드, 도메인 분리가 가능해진다.MSA에서 멀티모듈을 적용하는 이유는 각 도메인을 분리하면서도 관리하기 쉽도록 하기 위함이다.2️⃣ MSA에서의 멀티모듈 구성내가 진행하는 프로젝트에서는 멀티모듈을 사용하여 MSA 환경을 구축하고 있으며,다음과 같은 구조를 가지고 있다.🔹 주요 구성 요소Eureka Server → 서비스 디스커버리(서비스 등록 및 검색) 역할각 서비스 모듈 (ex. member-service, order-servi..

TIL 2025.03.13

TIL(2025-03-12)

CI/CD 개념 정리1. CI/CD란?CI (Continuous Integration, 지속적 통합)개발자가 코드 변경 사항을 주기적으로 중앙 저장소(Git 등)에 병합하는 과정.자동화된 빌드 및 테스트 수행 → 코드 품질 유지 & 빠른 피드백 가능.CD (Continuous Delivery, 지속적 배포)CI 이후의 단계로, 변경된 코드를 자동으로 배포할 준비를 하는 과정.운영 환경에 배포되기 전에 스테이징 환경에서 테스트 가능.CD (Continuous Deployment, 지속적 배포)Continuous Delivery의 확장 개념으로, 검증된 코드가 자동으로 운영 환경에 배포됨.사람이 개입하지 않고 완전 자동화된 배포 프로세스.2. CI/CD의 핵심 요소소스 코드 저장소 (Git, GitHub, ..

TIL 2025.03.12

TIL(2025-03-11)

🔹 MSA란?MSA(Microservices Architecture)는 애플리케이션을 여러 개의 독립적인 서비스로 나누어 개발하고 운영하는 아키텍처이다. 기존의 **모놀리식 아키텍처(Monolithic Architecture)**와 비교했을 때, 서비스 단위로 독립적으로 배포할 수 있어 확장성과 유지보수성이 뛰어나다.🔹 MSA의 주요 특징✔ 서비스 단위의 독립성 → 개별적인 배포 및 확장 가능✔ 다양한 기술 스택 사용 가능 → 서비스별로 최적의 기술 선택✔ 빠른 개발 및 배포 → 특정 기능만 수정 및 배포 가능✔ 장애 격리 → 한 서비스가 다운되더라도 전체 시스템에는 영향 최소화✔ DevOps 및 CI/CD 친화적 → 자동화된 배포 및 운영 용이🔹 MSA vs 모놀리식 아키텍처비교 항목모놀리식 아키..

TIL 2025.03.11

TIL(2025-03-07)

Http Session & Session Clustering 정리✅ 1. HTTP Session이란?웹 애플리케이션에서 클라이언트(사용자) 상태를 유지하는 방법사용자가 로그인하거나 특정 데이터를 유지할 때 사용서버 측에서 Session ID를 발급하여 클라이언트를 식별하고, 클라이언트는 Cookie에 Session ID를 저장🔹 Session 동작 방식클라이언트가 서버에 요청을 보냄서버가 Session ID를 생성하여 응답 (Set-Cookie: JSESSIONID=12345)클라이언트가 Session ID를 쿠키에 저장이후 요청에서 Session ID를 포함하여 서버로 전송 (Cookie: JSESSIONID=12345)서버는 Session ID를 조회하여 사용자 정보를 유지✅ 2. Session C..

TIL 2025.03.07

TIL(2025-03-06)

1️⃣ Redis DataBase 정리Redis는 Key-Value 기반의 In-Memory 데이터 저장소이며, 다양한 데이터 구조를 지원합니다.🔹 String (문자열)단순한 문자열 저장SET key value → 값 저장GET key → 값 조회INCR/DECR key → 정수 증가/감소MSET key1 value1 key2 value2 → 여러 개 저장MGET key1 key2 → 여러 개 조회🔹 List (연결 리스트)스택(Stack)과 큐(Queue)처럼 사용 가능LPUSH key value → 왼쪽 삽입RPUSH key value → 오른쪽 삽입LPOP key → 왼쪽 값 제거RPOP key → 오른쪽 값 제거LLEN key → 리스트 크기 조회LRANGE key start end → 특정..

TIL 2025.03.06