본문 바로가기
반응형

전체 글72

티켓예매 사이트 공연 날짜/시간 body에서 배열형식으로 받기 열심히 티켓예매 사이트 개인 과제를 진행중이다. 공연 등록에서 고려해야할 점은 하나의 공연이 여러날짜에, 그리고 같은 날짜여도 여러 시간에 나눠서 진행된다는 것이다. 그렇기에 공연을 등록할 때, 배열을 통해 한번에 여러 날짜와 시간을 입력해야한다. body를 통해 어떻게 배열을 받을 수 있지?과제 발제 문서를 통해 이 부분을 배열로 받으면 된다는 힌트를 얻었다. 그렇다면 배열은 어떠한 방식으로 받을 수 있을까?우선은 body를 통해 배열이 들어온다고 생각했을 때, 제일 먼저 만나게 되는 곳이 어디인지 생각해보았다. 바로 내가 만든 createPerformanceDto였다.  createPerformanceDto공연 스케줄에 대한 데이터 DTO를 먼저 만들어주었다.class PerformanceSchedu.. 2024. 7. 8.
카테고리별로 공연 목록을 조회 (쿼리 vs URL 경로) Typescript와 Nest.js를 이용한 첫 과제를 진행중이다. entity와 dto는 스키마와 validator느낌이라 괜찮은편이지만 module쪽은 모든 코드에 주석을 달면서했음에도 불구하고 아직도 이해가 쉽지 않다. 그래도 강의를 참고하고 이것저것 찾아가며 구현을 해나가고 있다. 그 중 오늘 구현한 공연 목록 조회. 그 중 쿼리를 이용한 전체/카테고리 별로 선택해서 보는 것을 정리해보려 한다. '전체, 카테고리 별로 나누어서 조회' 어떻게 해야할까? 위 이미지처럼 콘서트를 클릭하면, 콘서트 카테고리에 속한 공연 목록들이 반환돼야하는 것이다.  인터파크 티켓의 경우에는 URL경로를 통해 목록을 조회했다.나는 보통 이런 정렬 기능을 사용할 때, 쿼리파라미터를 사용하는 것이 적절하다고 들어왔기에 둘의.. 2024. 7. 4.
티켓 예매사이트 ERD, API 명세서 구현하기 티켓 예매사이트를 만드는 개인과제가 시작되었다. Typescript와 Nest.js를 배우고 처음으로 진행하는 과제라 잘 할 수 있을지 고민되지만, 하나씩 차근차근 진행해보려한다. 우선 ERD와 API 명세서를 구현하였다. 어느정도 이 두가지에 대한 이해가 생긴 후로는 처음으로 혼자서 만드는 것이었기에 고민된느 부분이 많았다. ERDhttps://drawsql.app/teams/strong-2/diagrams/ticket 고민되었던 부분은 필수구현 기능으로 있는 것들 안에서도 내가 어느정도까지 구현해야하는지 였다. -인증/인가/사용자 이 부분에서는 token과 points_log 테이블이 고민되었다.첫번째는 필수 구현에는 그냥 로그인 기능이라고 나와있었는데, 내가 욕심을 내서 refresh token까지.. 2024. 7. 3.
tsconfig.json 기초 이번에 JavaScript에서 TypeScript, Express에서 Nest.Js로 새롭게 공부해나가면서 tsconfig.json가 새롭게 등장했다. 쉽게 이해하기 위해 JavaScript에서 어떤것과 유사한지 찾아보니 프로젝트의 설정 파일이다보니 package.json과 가장 유사하다고한다. 앞으로 쭉 사용할 파일이기에 오늘 빠르게 익히고가려 한다.   tsconfig.json란?tsconfig.json 파일은 tsc --init 명령을 실행하면 생성되는 파일이자 TypeScript 프로젝트의 설정 파일로, TypeScript 컴파일러에게 프로젝트의 컴파일 옵션을 제공한다. 이 파일은 TypeScript 컴파일러가 프로젝트를 어떻게 컴파일할지 설정하는 데 사용된다.- 기본 구조일반적인 tsconfig.. 2024. 7. 1.
알고리즘 문제 정리(명예의 전당1, 2016년, 카드뭉치, 과일 장수) 문제1 : 명예의 전당1"명예의 전당"이라는 TV 프로그램에서는 매일 1명의 가수가 노래를 부르고, 시청자들의 문자 투표수로 가수에게 점수를 부여합니다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념합니다. 즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 됩니다. k일 다음부터는 출연 가수의 점수가 기존의 명예의 전당 목록의 k번째 순위의 가수 점수보다 더 높으면, 출연 가수의 점수가 명예의 전당에 오르게 되고 기존의 k번째 순위의 점수는 명예의 전당에서 내려오게 됩니다.이 프로그램에서는 매일 "명예의 전당"의 최하위 점수를 발표합니다. 예를 들어, k = 3이고, 7일 동안 .. 2024. 7. 1.
호이스팅과 클로져 그간 공부했던 것들을 복습할 수 있는 마지막 기회인 오늘 무엇을 복습하는 것이 가장 적절할까 고민하던 중 기초때 배웠던 호이스팅과 클로져가 떠올랐다. 그 이후로 배운 실제로 코딩할 때 사용하는 것들은 하다보면 익숙해짐으로써 알게되는 과정이라면 이 부분의 경우 지금이 아니면 나중에 복습하기 정말 쉽지 않을 것 같았다. 그렇게 오랜만에 호이스팅과 클러져 개념에 대해 찾아보았다. 개발에 대해 정말 하나도 모르던 시절(그래봤자 1~2달 전이지만) 나름 열정이 가득했어서 진짜 자료를 보고 보고 또 봐서 이해하려했는데, 도무지 이해가 가지 않았었다. 이 개념을 이해하기 위해 블록 스코프, 함수 스코프 등등을 알았어야 했는데 그것들에 대한 개념도 제대로 잡혀있지 않다보니 쉽지 않았던 것 같다. 지금도 다시 봐도 그렇.. 2024. 6. 27.
과제 리팩토링 (메뉴 원하는 카테고리 순서로 정렬) 지난번 팀프로젝트에서 구현한 메뉴를 원하는 카테고리 순서로 조회하는 부분에서의 피드백을 받았다. 기존 코드는 숫자로 저장하여 order by를 통해 정렬한 후, 각 카테고리 텍스트를 매핑해주었는데 데이터베이스 자체에 메뉴의 카테고리 텍스트로 저장하는 것이 좋다는 피드백을 받은 것이다. 그래서 텍스트로 저장한 후, sort를 통해 정렬해서 내보내도록 리팩토링을 진행하였다. - 데이터베이스에서 불러오기 (텍스트로 저장된 menuType)async function readAll(restaurantId) { try { // 데이터베이스에서 메뉴를 읽어올 때 메뉴타입 순으로 정렬하여 가져오기 const menus = await prisma.menu.findMany({ where: { rest.. 2024. 6. 26.
복습 그동안 소소하게 궁금했던것들 정리 (스키마 관계 설정, 모듈 export default) 감사하게도 캠프 중 지금까지 공부했던 것 중 부족한 부분을 공부할 수 있는 시간을 주셨다. 안그래도 이해가 잘 가지 않는 부분을 적어놓고 주말중 복습을 진행할 예정이었는데, 이번 기회로 이 부분을 꼼꼼하게 채워나갈 수 있게 되었다.지금 내가 부족한 부분이 인증, 인가 미들웨어, 오류 처리, 트렌젝션, 로그 정도로 크게 나눌 수 있을 것 같다. 인증, 인가 부분은 지속적으로 프로젝트를 진행하며 계속 한 부분이긴하지만, 팀프로젝트에서 어쩌다보니 내가 CRUD만 주구장창 맡게되면서 생각보다 이해도가 높지 않다. (대신 CRUD랑 데이터베이스쪽은 생각보다 마스터가 되어있다.) 과거 들었던 강의들을 다시 듣고 구현했던 코드들을 다시 보며 공부를 진행하고있다. 아직 이 부분은 정리할 정도로 깔끔하게 마무리된 것 같.. 2024. 6. 25.
반응형