본문 바로가기

분류 전체보기76

칸반보드 프로젝트 LexoRank 트러블 슈팅 Trello 사이트같은 칸반보드를 구현해내는 팀프로젝트를 진행중이다. 이번 프로젝트의 가장 중요한 부분은 리스트와 카드의 이동(드래그 앤 드롭)이다. '잦은 이동이 있는 해당 로직을 어떻게 구현해 낼 것인가?' 팀원들과 이야기 나누고 찾아본 결과 우리팀은 LexoRank를 이용하기로했다.LexoRank 선정 이유LexoRank를 선택한 이유는 아래 글을 참고했다.https://techblog.lycorp.co.jp/ko/about-atlassian-jira-ranking-algorithm-lexorank Jira의 이슈 정렬 방식이 Integer 방식이 아니라고?!들어가며 안녕하세요. LINE+ Contents Service Engineering 조직에서 백엔드 개발을 하고 있는 김한솔, 문다정, 이현동.. 2024. 7. 11.
NestJS 서버 포트 충돌 문제 해결(기존 포트 프로세스 죽이기) 이번 과제때 서버를 연결하는데, 포트 충돌이 일어났다. 이유는 내가 이미 3000번 포트를 사용중이기 때문에 연결을 할 수 없다는 것이다.오류 메시지[Nest] 194557 - 07/08/2024, 2:05:15 AM ERROR [NestApplication] Error: listen EADDRINUSE: address already in use :::3000 +2msError: listen EADDRINUSE: address already in use :::3000 at Server.setupListenHandle [as _listen2] (node:net:1898:16) at listenInCluster (node:net:1946:12) at Server.listen (node:net.. 2024. 7. 10.
공연 예매하기 (nest.js transactionalEntityManager) 공연 예매하기 기능 구현을 위해 nest.js에서의 첫 트랜젝션에 시도하게 되었다. express 때 트랜젝션에 대해 학습하긴 했지만, 팀플에서도 그렇고 항상 내가 맡은 부분은 트랜젝션이 필요하지 않은 부분이다보니 혼자의 힘으로는 첫 시도라고 할 수 있다.  막막하지만 처음이다 보니 한 발짝 더 나아가는 것 같아 설레는 마음도 들었다. 기본적인 예매 관련 세팅- create-reservation.dto.tsexport class CreateReservationDto { @IsInt() @IsNotEmpty({message:'공연 스케쥴 Id를 입력해주세요.'}) performanceScheduleId: number; @IsInt() @IsPositive() @IsNotEm.. 2024. 7. 9.
예매 가능여부 반환(메모리 내 계산 vs 데이터베이스 필드) 예매 상세페이지에서 현재 티켓이 예매가 가능한지 여부를 반환하는 코드를 구현해야 했다. 구현을 위해 머릿속에는 두가지 방법이 생각났다. 1. 조회 시점마다 남아있는 좌석 수를 확인해서 반환 할 것이냐 2. 데이터베이스 테이블 내에 가능 여부 필드를 따로 생성할 것인가 이다.  메모리 내 계산 vs 데이터베이스 필드 생성결정하기 전 각각의 장단점에 대해 알아보았다.1.  메모리 내에서 계산하여 추가 속성 반환장점유연성: isAvailable 필드를 필요에 따라 동적으로 계산할 수 있어, 조건이 변하더라도 쉽게 변경할 수 있다.데이터베이스 일관성: 데이터베이스 스키마에 영향을 주지 않으며, 추가 필드로 인한 데이터베이스 수정이 필요 없다.간단한 유지보수: 코드 내에서 필요한 필드를 추가하므로, 데이터베이스를.. 2024. 7. 8.