일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 디자인 패턴
- JPA
- 데이터 베이스
- LV01
- Join
- LV1
- 배열
- mysql
- spring boot
- LV.02
- SQL
- S3
- Lv.0
- 일정관리프로젝트
- Til
- 포트폴리오
- LV0
- Java
- GIT
- docker
- CoffiesVol.02
- LV03
- LV02
- 네트워크
- 코테
- Redis
- 이것이 자바다
- 연습문제
- 프로그래머스
- 알고리즘
- Today
- Total
목록포폴 (28)
코드 저장소.
목차1.문제점2.고민3.적용4.후기5.향후 개선 예정 1.문제점프로젝트에서 일정 등록 기능을 구현하면서 가장 까다로웠던 부분은 일정 간의 충돌 여부를 어떻게 판별할 것인가였다.처음에는 단순히 시작시간 기존 시작시간이면 충돌이라고 생각했지만, 실제 서비스에선 다음과 같은 문제가 발생했다:하루 종일 일정과 시간대 일정이 겹치는 경우 어떻게 볼 것인가?이틀 이상 걸친 일정(MULTI_DAY)과 단일 일자의 겹침은 충돌인가?기존 일정을 수정할 때, 자기 자신도 충돌로 판단되어 등록이 안 되는 문제결국, 일정이라는 도메인은 단순한 시간 범위의 겹침 문제가 아니라 일정의 “의미와 목적”에 따라 판단 기준이 달라져야 한다는 점을 깨달았다.2.고민기존 충돌 로직의 한계를 넘기 위해, 일정 자체에 타입(Schedule..

목차1.왜 이벤트 드리븐인가? (비동기, 느슨한 결합의 필요성)2.이벤트 드리븐 아키텍처란? 3.일정 관리 프로젝트 구조에 적용하기. 1.왜 이벤트 드리븐인가? (비동기, 느슨한 결합의 필요성)기존의 웹 애플리케이션은 대부분 RESTful API 기반의 동기식 통신 구조를 사용한다. 이 방식은 구조가 단순하고 개발이 쉽지만, 다음과 같은 단점이 있다:서비스 간 강한 결합도 발생기능 추가/변경 시 기존 코드 수정이 필요처리 속도 저하 (모든 후처리를 요청 스레드에서 처리함)예를 들어, 내가 개발 중인 일정 관리 프로젝트에서는 단순히 일정을 생성하는 것뿐 아니라, 다음과 같은 후처리 작업이 필요했다:실시간 WebSocket 알림 전송반복 일정 자동 생성회원가입시의 이메일 발송일정 변경/삭제에 따른 연관 작업..
목차1.도입 배경2.기술 스택 및 선택 이유3.전체 구성4.OpenFeign로 OpenAi 연동하기5.프롬프트 설계 및 응답 처리6.예외 및 장애 대응7.결과 및 테스트8.회고 및 다음단계1.도입 배경일정관리 프로젝트를 진행하면서 사용자의 하루 일정에서 비어 있는 시간대를 찾아 AI가 추천 일정을 제공해주는 기능이 필요했다. 이를 위해 OpenAI의 Chat Completions API를 사용해 프롬프트 기반 일정 생성을 시도했고, 통신은 OpenFeign + Spring Cloud를 사용해 안정적으로 구성했다.2.기술 스택 및 선택 이유Spring Boot 3.2: 기본 백엔드 프레임워크OpenFeign: 외부 API(OpenAI) 호출 간결화Resilience4j: 장애 발생 시 fallback 처..

목차1.PresingedUrl구조 및 흐름도2. 코드 적용3.회고 1.PresingedUrl구조 및 흐름도우선은 지난 글에서 기존의 첨부파일의 로직의 단점을 설명했고 이번에는 S3를 활용한 PreSignedUrl을 구현해보겠습니다. 아래의 도식은 제가 작성한 업/다운로드의 흐름도 입니다.위의 사진을 토대로 설명을 드리겠습니다. 우선 업로드의 흐름은 다음과 같습니다.클라이언트가 첨부파일을 업로드를 합니다. 그 후 서버에서는 S3를 거쳐서 업로드를 할 수 있는 URL을 프론트에게 응답을 해줍니다.클라이언트에서 서버가 보내준 해당 URL을 기준(제한 기간 있음)으로 첨부파일을 S3에 업로드를 합니다. 그 다음 서버에서 첨부파일을 디비에 저장을 하고 섬네일을 생성합니다.다음은 다운로드의 흐름입니다.프론트에서 다..
목차1. 현재 코드의 문제2. 문제의 대안 1. 현재 코드의 문제현재 일정관리 프로젝트를 진행을 하면서 일정을 등록시 첨부파일을 등록을 하는 기능을 만들었다. 현재의 업로드 방식은 업로드후 로컬에 저장을 하는 방식이었다. 아래는 내가 작성한 첨부파일에 관련된 코드의 일부분이다. // 기존 방식: 로컬 경로에 파일 저장 + 썸네일 생성 + AttachModel 생성까지 모두 한 메서드에서 처리public static List uploadMultipleFiles(...) { // 1. 디렉토리 생성 // 2. 확장자 판별 // 3. 썸네일 생성 // 4. 파일 저장 및 AttachModel 구성} 이 방식에는 여러가지의 문제점이 있는데 문제점은 아래와 같습니다. 1-1. 서버 자원(I/..

목차1.사건의 발단2.println을 쓰면 안되는가?3.그래서? 어떻게 해야되는가?4.느낀점. 1.사건의 발단첨부파일 모듈에서 첨부파일 업로드에 관한 로직을 작성을 했고 pr을 올렸는데 다음과 같은 리뷰가 들어왔습니다. 업로드를 테스트를 하기 위해서 작성을 했던 System.out.println()이었는데 사용을 하면 안된다고 해서 왜 안돼는지에 관해서 알아보기로 했습니다.2.println을 쓰면 안되는가?사실 처음엔 크게 문제 될 거라 생각 안 했습니다. 그냥 테스트용으로 했거든요. 근데 찾아보니 이게 생각보다 심각했었습니다. 우선은 System.out.println()이 무엇인지를 알아보기로 했습니다. System.out.println()System.out.println은 Java개발할때 디버깅 ..