일기/TIL 94

TIL: Today I Learned 86일차 [ 최종프로젝트 16일차 ]

오늘 해야할 일은 메인에 관한 정보이다. 이 부분에 대한 정보를 가져와야하는데 우선 어떤 저장소에서 정보를 가져와야할지 고민했다. 고민한 결과 컬렉션아이템이라는 테이블을 사용하는 것이 가장 좋을 것 같았다. /* 로직 설명 요즘 뜨는 맛집 리스트 ⇒ ★ 마이리스트에 있는 게시물 좋아요 총합순. 좋아요총합 설정★ 1) 모든 마이리스트를 조회한다. 2) 모든 마이리스트의 게시물의 좋아요 수를 더한다 3) 좋아요 총합이 가장 좋은 마이리스트순으로 마이리스트 이름과 닉네임과 포스트 이미지를 반환한다. 4) 현재(최신)유행하는 날짜 둘다 받는거로 한다. 날짜설정★ */ 다음은 어떤 방식으로 결과값을 가져와야할지 고민했다. 초기에는 위처럼 작성하면서 쿼리문을 작성해봤다. const myListSumLikes = a..

일기/TIL 2023.03.20

TIL: Today I Learned 85일차 [ 최종프로젝트 15일차 ]

[Feature] 마이리스트 상세보기 async getMyListDetail(collectionId: number) { try { // 컬렉션 이름과 포스트 정보 가져오기 const myList = await this.collectionRepository.find({ relations: { collectionItems: { post: { images: true, restaurant: true }, }, }, where: { id: collectionId, // user_id: userId, deletedAt: null, type: 'myList', }, select: { id: true, name: true, visibility: true, collectionItems: { id: true, post: ..

일기/TIL 2023.03.20

TIL: Today I Learned 84일차 [ 최종프로젝트 14일차 ]

[FIX] : 포스트 수정시에 마이리스트를 변경할 경우 원래있던 마이리스트에 포스팅은 삭제되는 기능 #76 위 문제를 대해서 몇시간동안 고민했다. 원하는 방법은 입력값을 넣을때 기존값이랑 중복되면 기존값을 유지하고, 새로운 값은 추가한다. 하지만 그렇게 하려니 너무 머리아팠다. 나는 아직 초보기 때문에 어쨌든 기능을 만들고 싶었던 결과, // 1. 입력받은 값으로 컬렉션아이템에 있는 포스트아이디를 모두 찾는다. const findPostId = await this.collectionItemRepository.find({ relations: ['post', 'collection'], where: { post: { id: postId }, collection: { type: 'myList' }, //마이리스..

일기/TIL 2023.03.20

TIL: Today I Learned 83일차 [ 최종프로젝트 13일차 쿼리 ]

오늘 마이리스트 상세 더보기 기능을 만들었다. 기존의 코드를 복사하여 어떻게 짜맞추기하다가 도저히 안되서 튜터님에게 찾아가 질문을 했다. 설명하는 도중에 튜터님이 무슨말인지, 무슨로직인지 모르겠다고 얘기해주셨고 나보고 완전 초보이더라도 이해할 수 있게 말로 풀어서 설명하고, 쿼리문을 작성해보라고 하셨다. 순간 당황했지만 천천히 작성해봤더니 로직자체가 잘못된 것이었다. 그리고 쿼리문을 작성해보니 원래 사용하던 타입ORM의 원리도 조금 이해가 되었다. 결국 튜터님의 조언을 듣고 기존 코드를 모두 지우고 오랜시간 고민했던 코드가 30분만에 해결이 되었다. /* 로직 설명 1. 맛집상세리스트 PAGE2에 있는 맛집을 클릭한다. (레스토랑ID) 2. 콜렉션 아이템에 있는 레스토랑아이디와 콜렉션아이디가 둘다 일치하..

일기/TIL 2023.03.15

TIL: Today I Learned 82일차 [ 최종프로젝트 12일차 UseGuards ]

오늘은 추가로 구현해야 할 기능이 있었다. 마이리스트, 북마크에 포스팅 추가시 중복되면 못들어가게 막아야하는데 해당 값을 가져오질 못해서 몇시간동안 고생했지만 찾을 수 없었다... 튜터님 시간될때 질문을 통해 해결해야 할 것 같다. 그전에 이제 모든 코드를 병합하기 위해서 나도 유즈 가드를 달기 시작했다. @Get('/collections') @UseGuards(AuthAccessGuard) @ApiOperation({ summary: 'MyList 전체조회(내꺼)' }) @ApiResponse({ status: 200, description: 'MyList 전체조회(내꺼) 성공' }) @ApiResponse({ status: 400, description: 'MyList 전체조회(내꺼) 실패' }) a..

일기/TIL 2023.03.14

TIL: Today I Learned 80일차 [ 🔥최종프로젝트 10일차🔥 ]

오전에 카페가서 공부하고 오후에 인터넷 연걸이 되어서 집에서 편안하게 작업을 했다. 북마크보다 마이리스트라는 비슷한 기능이 우선적으로 진행되어야 한다해서 마이리스트를 새벽까지 코딩하여 구현해냈다. 튜터님의 조언도 듣고, 팀원들의 도움도 받으면서 배운점이 많았다. @Entity() export class CollectionItem { @PrimaryGeneratedColumn() id: number; @ManyToOne((type) => Collection, (collection) => collection.collectionItems) @JoinColumn({ name: 'collection_id' }) collection: Collection; @ManyToOne((type) => Restaurant, ..

일기/TIL 2023.03.11

TIL: Today I Learned 79일차 [ 최종프로젝트 9일차 ]

북마크를 담당하게 되서 지금까지 못했던 기능구현을 시작하려고 했다. 회의도 있고 좀 늦어졌지만 이제야 프로젝트에 기여를 하는구나 생각하고 있는데 갑자기 집에 인터넷이 끊겼다. 공용전기세를 집주인이 안냈고, 누전 등의 문제로 한동안 사용을 못한다고 한다. 지금까지 한번 해보고 싶었던 카공(카페공부)를 해야하니 1년간 방치했던 노트북을 들고 카페로 갔다. 그런데 에디터인 비주얼 스튜디오도 안깔려있고, 데이터베이스를 연결해서 테스트해야하는 백앤드기능인데 데이터베이스를 연결하는게 오랜만이라 너무 어려웠다. 약3~4시간 걸려서 SQL SERVER, INSTALLER 등 깔고 연결했고, 겨우 몇시간 코딩을 할 수 있었다. 카페는 시끄럽고 불편했다... 스트레스는 많이 받았지만 그래도 새로운 경험이었다. 이날 배웠던..

일기/TIL 2023.03.11

TIL: Today I Learned 78일차 [ 최종프로젝트 8일차 ]

소켓기능을 포기하고, 북마크 기능을 담당하게 되었다. 기본적인 CRUD이며, 꼭 필요한 기능이다. 기본적인 CRUD는 같은 조원의 코드를 참고하고, 데이터연결은 이전에 들었던 강의를 다시 들으며 복습하여 코드를 완성했다. 그런데 현재 ERD관계가 처음 작성했을때의 모습과 달라서 엔티티를 다시 수정중이다. 리더님이 작성해주신다하여 나는 TypeORM에 대해서 공부중이다. https://typeorm.io/ TypeORM - Amazing ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, typeorm.io 공식홈페이지가 예시가 풍부하고 이해하기 쉽다. 해당 홈..

일기/TIL 2023.03.09

TIL: Today I Learned 77일차 [ 최종프로젝트 7일차 ]

월요일, 화요일 2일간 코딩하면서 괴로웠다. 소켓의 기본 껍데기를 만드는건 쉬웠지만, DB와 연동하여 데이터를 저장하고 불러오는 것이 어려웠다. 소켓에 대한 지식과 개념이 부족해서 전체적인 흐름을 잡기가 어려웠다. 결국 튜터님에게 상의받았으나 답변을 듣고도 진행이 어려울 것 같아서 팀원들에게 프로젝트에서 소켓 사용은 어려울 것 같다고 얘기했다. 첫번째 이유, 소켓을 사용하는 사람이 없어서 다른 동기 및 튜터님들의 도움 받기가 어렵다. 두번째 이유, 취업할때 소켓경험을 보는 곳이 얼마 없을 것이다. 작은 기업일수록 채팅은 개발하기 보단 API를 끌고 올듯. 세번쨰 이유, 나의 실력부족. 팀원들에게 미안하다고 얘기했고, 쪽지만들기로 가야되나 했다가 남아있는 기능 북마크로 가는건 어떠냐해서 북마크를 만들기로 ..

일기/TIL 2023.03.08