전체 글(103)
-
20240314 (목) 최종 프로젝트 티켓레이더 3주차 - Vue.js
오늘 한 일 1. vue.js 공부 우리 프로젝트를 배포하기 위해 프론트를 구현할 방법인 뷰와 리액트중 뷰를 먼저 공부해보기로 하였다. 해보고 할만하면 뷰를 사용하고 아니면 리액트를 마저 공부해보는 걸로.. 뭐 여러가지 명령어 같은것들도 써보고 하면서 결국엔 사이트를 열어보는데까진 성공했다.. 2. gradle 오류 해결 뷰를 사용하려던 도중 그냥 샘플에 있는걸 그대로 복사해서 붙여넣으면 어떨까? 하는 마음에 복사했다가 오류가 많이 나길래 삭제후 다시 깃허브에서 클론하였다. 그리고 실행을 하려했는데 gradle 빌드 도중 오류가 났다. 오류 전문 cause: class jdk.internal.loader.classloaders$platformclassloader cannot be cast to class..
2024.03.14 -
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