콘서트 예약 동시성 제어
·
카테고리 없음
좌석 예약@Transactionalpublic ReservationInfo creatTempReserve(ReservationCommand info) { User user = userRepository.findUser(info.userId()); Concert concert = concertRepository.findConcert(info.concertId()); Schedule schedule = scheduleRepository.findSchedule(info.scheduleId()); Seat seat = seatRepository.findSeat(info.seatId()); // 해당 좌석에 대한 예약건 조회 reservationRepository.getSeatRe..
항해 1주차 회고
·
카테고리 없음
항해의 1주 차는 TDD에 대한 과제였다.포인트 사용/충전/조회특정 사용자의 포인트 내역 조회일주일 동안 무엇을 고민했는지 정리하는 시간을 가지려 한다. 1. 요구 사항 분석 막상 테스트를 작성하려 하니 처음에는 기본 기능에 대한 테스트 말고는 작성하질 못했다.내가 뭘 테스트하고 구현해야하는지. 요구사항에 대해 깊게 분석하지 않았던 게 문제였다.Q. 구현하고자 하는 것이 무엇인가?- 회원의 포인트 사용, 충전 기능 및 포인트 내역 조회Q. 무엇을 고려해야 할까?- 특정 유저의 작업(사용/충전)은 순차적으로 실행되어야 하지만 각 유저에 대한 작업은 동시에 실행될 수 있다.- 잔고가 부족한 경우, 포인트 사용에 실패해야 한다.- 충전은 최소 1,000원 이상부터 시작해야 한다.- 포인트 사용/충전 요청에 입..
99클럽 코테 스터디 34일차 TIL
·
코딩테스트/99클럽 4기
프로그래머스 - 개인정보 수집 유효기간 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제에 대한 내용과 입출력 #1 결과를 표로 정리했다.번호약관 종류(기간)개인정보 수집 일자수집 종료 일자상태1A (6개월)2021.05.022022.05.01파기2B (12개월)2021.07.012022.06.28보관3C (3개월)2022.02.192022.05.18파기4C (3개월)2022.02.202022.05.19보관각 개인정보 수집 일자에 대한 종료 일자를 구하고, 현재 날짜와 비교하여 결과를 반환한다.문제를 해결하기 위한 작업 순서를 정리해보자. 1. today를 Date 형식으로 변환today는 날짜 형식..
99클럽 코테 스터디 33일차 TIL
·
코딩테스트/99클럽 4기
시뮬레이션주어진 문제의 규칙이나 조건을 그대로 구현하여 결과를 얻는 방법이다.알고리즘이라기보다는 문제 해결 방법론으로 볼 수 있다.시뮬레이션을 구현하는 과정에서 효율성을 위해 특정 알고리즘이 활용될 수도 있다.이번 문제는 코딩테스트의 느낌보다는 회사에서 주어진 과제 같은 느낌을 받았다.단순 구현이라했지만 String API와 정규식 표현을 잘 몰랐다면 어려웠을 것 같다. 구현 1 - Stringclass Solution { public String solution(String new_id) { String answer = ""; // 1 answer = new_id.toLowerCase(); // 2 answer = answer.repl..
99클럽 코테 스터디 32일차 TIL
·
코딩테스트/99클럽 4기
바이토닉 수열은 LIS, LDS 그리고 LIS + LDS 를 모두 포함한다.예제 입력의 바이토닉 수열은 1, 2, 3, 4, 5, 2, 1 이며 총 7개로 구성된다. 구현 1 - 실패먼저 LIS의 길이 값이 담긴 배열에서 가장 큰 값을 가진 요소를 찾고,해당 요소의 인덱스를 기준으로 LDS 길이 값을 구하는 것을 생각했다. LIS : 1, 2, 3, 4, 5LDS : 5, 2, 1 각 부분 수열의 모든 길이를 구하는 것보다, LIS의 최대 길이를 가진 요소를 기준으로 구하는 것이 더 빠르다고 생각했다.하지만 특정 인덱스를 고정하게 되면, 다른 경우의 수를 놓칠 수 있다.import java.io.*;import java.util.StringTokenizer;public class Main { pub..
99클럽 코테 스터디 31일차 TIL
·
코딩테스트/99클럽 4기
문제에서 옮겨진 번호는 4, 7, 1, 2번이다.3, 5, 6 번은 그대로 있는데, 문제에 주어진 수열의 최장 증가 부분 수열(LIS)로 보인다.N - (LIS 크기)를 하면 옮겨지는 아이의 최소 수를 구할 수 있다.LIS를 구할 수 있는 방법 중 이분 탐색을 사용했다. 구현 1import java.io.*;import java.util.ArrayList;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br..