전체 글(108)
-
20240313 (수) 최종 프로젝트 티켓레이더 3주차 - 시연 테스트코드
발표에 들어갈 시연을 위해 테스트코드를 둘러보았다. 그중 테스트 코드에 문제가 있었다. TicketServiceTest 코드 수정 티켓 테스트에 락을 구현한뒤 동시성 테스트코드를 실행하였을 때 테스트 실패가 나왔다. 사실 어제 저녁에부터 실패를 확인하였지만 어제는 시간도 시간이여서 적당히 둘러보다가 갔다. 오늘에서야 오류를 해결하였고 그 과정을 적어본다. 테스트 조건은 이렇다. val threadCount = 50 val executorService = Executors.newFixedThreadPool(10) val countDownLatch = CountDownLatch(threadCount) var success = 0 var fail = 0 val createTicketReq = CreateTic..
2024.03.14 -
20240312 (화) 최종 프로젝트 티켓레이더 3주차 - 1차 발표 준비
1. 발표 PPT 틀 작성 우리가 만든 프로젝트의 PPT는 이런식으로 진행이 될것이다. 1. 목차 2. 프로젝트 설명 - 프로젝트 이름 - ERD, API 명세 - 기능(구현 예정, 완료 포함) 3. 사용한 주요 기술 (구현 완료) - 락 (락 점유와 해제시점) - OAuth (멤버와 소셜멤버 테이블 구분 장단점) 4. 시연 - 동시성 제어 테스트코드 - OAuth (DB에 유저정보 제대로 저장 되는지 확인) 5. 사용할 기술 (구현 예정) - 쿼리DSL (지역별과 리뷰, 좋아요순 검색기능) - 캐시 (인기 검색어) - 배포 (뷰, AWS를 먼저 공부해볼 예정) 여기서 이제 자기가 만든부분은 자기가 직접 작성을 하도록 하였다. 내가 만든부분은 Lock 부분이기에 내가 사용한 Lock과 그이유, 락의 점유..
2024.03.12 -
20240311 (월) 최종 프로젝트 티켓레이더 3주차 - 1차 발표 준비 계획
TIL 1. 1차 발표 준비 계획 1차 발표가 벌써 다음주 월요일까지 다가왔다. 현재 우리가 진행한것을 바탕으로 1차 발표 이전까지 완성해둘 것과 발표 준비 기간을 잡았다. 우선 마저 진행해야 할것들은 1. updateEvent 코드 간결화 2. updatePlace 코드 간결화 3. 티켓 삭제시 availableSeat 늘리는 코드 작성 4. 티켓 결제 가능 시간 지나면 삭제처리 되도록. (캐시, DB) 5. 장소 기준으로 이벤트 검색 기능 구현 등이 있고, 내가 맡은 부분은 1,2번 부분 현재 짜놓은 updateEvent 는 반복되는것도 많고 무엇보다 너무 길다. create와 비교해서 반복되는 부분은 메소드를 작성해서 사용하도록 할 예정 2. updateEvent 코드 간결화 현재 우리 Update..
2024.03.11 -
20240308 (금) 최종 프로젝트 티켓레이더 2주차 - 끝이 보이기 시작한 CRUD
드디어 CRUD 구현의 끝이 보이기 시작한듯 하다. 1. PlaceServiceImpl 수정 기존에 있던 코드를 좀더 간결하고 반복되지 않는 코드로 변경하였다. override fun updatePlace(placeId: Long, request: PlaceRequest) { val place = placeRepository.findByIdOrNull(placeId) ?: throw ModelNotFoundException("place", placeId) place.let { request.toPlace() } placeRepository.save(place) val seatList = availableSeatRepository.findByPlaceId(placeId) seatList.map { requ..
2024.03.08 -
20240307 (목) 최종 프로젝트 티켓레이더 2주차 - CRUD CRUD..
오늘 한 작업 1. Pageable 오류 어제자 저녁에 CRUD 테스트중 오류를 하나 발견했다. 이벤트 목록 조회를 Pageable로 불러오는 도중 발생한 오류였다. 오류 코드를 둘러보니 Pageable 안에있는 PageRequest의 sort 값에 “string”이 들어가서 생긴 오류인것 같았다. @PageableDefault에 sort를 id로 해놨는데 어째선지 sort값이 아예 없어야 작동을 하였다. 즉 string이든 뭐든 분류기준 이외에 아무 문자라도 들어가면 오류가 생기던것 이는 현재 백엔드 특성상 프론트에서 request에 들어가는 값을 조절해야하는데 그러질 못하니까 생기는 오류 같았다. 백엔드에서 자체적으로 이넘클래스를 받아서 이외에 값이 안들어가게 하는 방법도 있지만 일단은 오류 발생 이..
2024.03.07 -
20240306 (수) 최종 프로젝트 티켓레이더 2주차 - 다시 처음으로
오늘은 다시 초심으로 돌아가 CRUD 부분을 확인보았다. 1. Seat, Place 수정 기존 Place에 어드레스가 없어서 추가를 해줬다. 이는 곧 추가 구현할 동적 쿼리에서 주소를 기반으로 검색을 하는 작업에 사용될 것이다. 또 Place와 Seat 사이에 관계를 걸어줘서 Place가 수정이 되면 Seat도 수정이 될수 있도록 해주었다. 그리고 Seat 엔티티에 최대 좌석 갯수와 각종 함수들을 추가해줬다. fun isFull(): Boolean { return (seatR >= maxSeatR && seatS >= maxSeatS && seatA >= maxSeatA) } fun isClosed(): Boolean { return bookable == Bookable.CLOSED } fun close..
2024.03.06