[항해99 취업리부트 WIL] 8주차
·
스케쥴/스터디
Weekly I Learned: 이벤트 드리븐 아키텍처로의 전환과 나의 예약 조회 API 구현이번 주에는 기존의 모놀리식 아키텍처를 이벤트 드리븐 아키텍처로 전환하는 과정에서 많은 것을 배웠습니다. 특히 나의 예약 조회 API를 구현하면서 여러 가지 도전과 해결책을 경험했습니다.1. 한 주 동안 학습한 것들 나열이벤트 드리븐 아키텍처의 기본 개념과 구현 방법Kafka를 이용한 마이크로서비스 간 비동기 통신Redis를 활용한 캐싱 전략Server-Sent Events (SSE)를 이용한 실시간 데이터 전송분산 시스템에서의 데이터 일관성 유지 방법2. 학습한 내용의 구현 필요성기존의 모놀리식 아키텍처에서는 단일 데이터베이스를 사용하여 예약 정보를 쉽게 조회할 수 있었습니다. 하지만 마이크로서비스 아키텍처로 ..
[항해99 취업리부트 WIL] 7주차
·
스케쥴/스터디
모놀리식 아키텍처에서 이벤트 드리븐 아키텍처로1. 한 주 동안 수행한 작업예약 서비스 (Reservation Service)의 이벤트 드리븐 아키텍처로의 전환Kafka 설정 추가: Kafka 프로듀서와 컨슈머 설정을 추가하여 예약 서비스가 이벤트를 주고받을 수 있도록 준비.이벤트 클래스 작성: ReservationRequestedEvent, SeatStatusUpdatedEvent, PaymentCompletedEvent 등 예약과 관련된 이벤트 클래스를 작성.예약 요청 처리 변경: 예약 요청이 들어오면 ReservationRequestedEvent 이벤트를 Kafka를 통해 전송하도록 변경.좌석 상태 업데이트 처리: SeatStatusUpdatedEvent 이벤트를 수신하여 좌석 상태를 업데이트하고 예..
[항해99 취업리부트 WIL] 5주차
·
스케쥴/스터디
Week In Learning (WIL) - 지난 두 주간의 학습 정리 주간 학습 목표: 지난 두 주 동안 MySQL 데이터베이스 설정, Docker를 활용한 개발 환경 구성, Spring Security와 JWT 인증, 이메일 인증 구현, 그리고 사용자 마이페이지 및 비밀번호 수정 기능을 학습했습니다. 첫째 주: MySQL 데이터베이스 설정:     Docker Compose를 활용한 MySQL 컨테이너 설정.     docker-compose.yml, Dockerfile, my.cnf, 초기화 스크립트 등을 통해 MySQL 환경 구성. 문제 해결:     Base64..
[항해99 취업리부트 TIL] 4주차 3일
·
스케쥴/스터디
학습한 내용은 무엇인가요?동적 프로그래밍(DP) 알고리즘 개요DP는 문제를 작은 하위 문제로 나누어 해결한 후 그 결과를 결합하여 원래 문제를 해결하는 기법이다.두 가지 특징:중복되는 하위 문제최적 부분 구조구현 방식:탑다운(메모이제이션)바텀업(테이블화)피보나치 수열피보나치 수열은 DP의 대표적인 예제이다.점화식: F(n) = F(n-1) + F(n-2)초기 조건: F(0) = 0, F(1) = 1탑다운 방식재귀와 메모이제이션을 이용해 구현.중복 계산을 피하기 위해 이미 계산된 결과를 저장.int[] memo = new int[n + 1]; 배열을 -1로 초기화.fib(n, memo) 함수 호출:if (n if (memo[n] != -1) return memo[n];memo[n] = fib(n - 1, ..
[항해99 취업리부트 TIL] 4주차 2일
·
스케쥴/스터디
오늘 진행된 강의에서 학습한 내용은 무엇인가요?블랙잭 - 2798번설명이 문제에서는 주어진 카드 중에서 3장의 합이 목표 숫자 M을 넘지 않으면서 최대한 M에 가까운 값을 찾는 것입니다. 이를 위해 모든 가능한 3장의 카드 조합을 확인하는 브루트 포스 접근법을 사용합니다.해결 방법입력 처리: 카드의 개수 N, 목표 숫자 M, 카드 목록을 입력받습니다.3중 루프 탐색: 세 개의 중첩된 for 루프를 사용하여 모든 3장의 카드 조합을 탐색합니다.최대값 갱신: 각 조합의 합이 M을 넘지 않으면서 지금까지 최대값보다 크면 이 값을 업데이트합니다.출력: 모든 조합을 탐색한 후, 최대값을 출력합니다.코드public class Main { static BufferedWriter bw = new BufferedW..
[항해99 취업리부트 TIL] 3주차 5일
·
스케쥴/스터디
오늘 진행된 강의에서 학습한 내용은 무엇인가요?백준: 알고리즘 수업 - 깊이우선탐색1https://www.acmicpc.net/problem/24479깊이 우선 탐색(DFS)을 사용하여 그래프의 각 정점을 방문하는 순서를 계산하는 프로그램입니다. 그래프는 인접 리스트를 사용하여 구현되었고, 시작 정점에서부터 DFS를 수행하여 각 정점의 방문 순서를 기록합니다. 프로그램의 주요 구성 요소와 동작 방식은 다음과 같습니다:주요 구성 요소입력 처리 및 초기화정점의 수 N, 간선의 수 M, 시작 정점 R을 입력 받습니다.인접 리스트 graph, 방문 여부를 저장할 배열 visited, 방문 순서를 저장할 배열 order를 초기화합니다.그래프 구성간선 정보를 입력 받아 무방향 그래프로 만듭니다.각 정점의 인접 리스..
[항해99 취업리부트 TIL] 3주차 4일
·
스케쥴/스터디
오늘의 다짐오늘 진행된 강의에서 학습한 내용은 무엇인가요?그래프: 개요, 특징, 표현 방법, 예시 코드, 실제 사용 예시개요그래프는 정점(Node)과 간선(Edge)으로 구성된 자료구조입니다.정점: 객체나 개체를 나타냅니다. (예: 도시, 사람, 웹 페이지)간선: 정점 간의 연결을 나타내며, 정점들 간의 관계를 정의합니다. (예: 도로, 친구 관계, 링크)특징데이터 구조: 그래프는 객체 간의 관계를 표현하는데 유용합니다.다양한 유형: 방향 그래프(간선에 방향이 있는 경우)와 무방향 그래프(간선에 방향이 없는 경우)가 있습니다.가중치: 간선에 가중치를 부여하여 거리, 비용 등을 표현할 수 있습니다.표현 방법인접 행렬: 2차원 배열을 사용하여 정점 간의 연결 여부를 나타냅니다.장점: 간선 존재 여부를 빠르게..
[항해99 취업리부트 TIL] 3주차 3일
·
스케쥴/스터디
오늘 진행된 강의에서 학습한 내용은 무엇인가요?1. 서론정렬 알고리즘과 이분 탐색 알고리즘에 대한 개념, 구현, 응용 등을 다룹니다. 정렬 알고리즘은 데이터를 순서대로 재배열하는 데 사용되며, 이분 탐색 알고리즘은 정렬된 데이터에서 특정 값을 빠르게 찾는 데 사용됩니다. 2. 정렬2.1 정렬의 개념 및 중요성정렬은 데이터를 크기 순서대로 재배열하는 알고리즘입니다. 데이터가 정렬되어 있으면 검색, 비교, 분석 등 다양한 작업을 보다 효율적으로 수행할 수 있습니다. 정렬은 컴퓨터 과학에서 매우 중요한 개념이며, 다양한 분야에서 활용됩니다. 예를 들어, 운영체제, 데이터베이스, 웹 검색 엔진, 머신 러닝 등에서 정렬 알고리즘이 사용됩니다.2.2 Collection 정렬 방법Java에서는 다양한 방식으로 Col..