Back-End Developer 69

[프로그래머스/Oracle] 고양이와 개는 몇 마리 있을까

문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요. 예시 예를 들어 ANIMAL_INS 테이블이 다음과 같다면 고양이는 2마리, 개는 1마리 들어왔습니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다. 정답 SELECT ANIM..

[프로그래머스/Oracle] 조건에 맞는 도서 리스트 출력하기

문제설명 다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK) 테이블입니다. BOOK 테이블은 각 도서의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다. 문제 BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요. 예시 예를 들어 BOOK 테이블이 다음과 같다면 조건에 속하는 도서는 도서 ID 가 3, 4인 도서이므로 다음과 같습니다. 그리고 출판일 오름차순으로 정렬하여야 하므로 다음과 같은 결과가 나와야 합니다. 주의사항 PUBLISHED_DATE의 데이트 포맷이 예시와 동일해야 정답처리 됩니다. 정답 S..

[프로그래머스/Oracle] 평균 일일 대여 요금 구하기

문제설명 다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다. 자동차 종류는 '세단', 'SUV', '승합차', '트럭', '리무진' 이 있습니다. 자동차 옵션 리스트는 콤마(',')로 구분된 키워드 리스트(예: '열선시트', '스마트키', '주차감지센서')로 되어있으며, 키워드 종류는 '주차감지센서', '스마트키', '네비게이션', '통풍시트', '열선시트', '후방카메라', '가죽시트' 가 있습..

[ERD] 쿠팡이츠 ERD 클론코딩 (1차)

쿠팡이츠 클론코딩을 해보았다 원래는 API 까지 모두 완성되면 블로그에 포스팅하려고 했지만 시간 날 때마다 조금씩 하던거라 진행이 더뎌서 우선 ERD 1차 완성품을 냅다 올리기로 했다 ERD 클론코딩은 처음해봐서 이게 나한테 도움이 될지 살짝 의문이었는데 의외로 찾아보고 공부할 것도 꽤 많았고, 다른 회사의 ui와 서비스 구성을 분석하며 하나씩 풀어가는 과정이 너무 재미있었다!! ** 아직 완벽하지 않은 상태여서 그런지 글을 작성함과 동시에 떠오르는 피드백과 성찰이 난무하다 ...^^ㅎ 이번에 느낀 부족함을 꼼꼼히 채워서 2차 포스팅에는 조금 더 완성된 느낌으로 작성하고싶다 그리고 아무래도 고객유저는 장바구니에 담고 구매만 하는 역할이다보니 쿠팡이츠 어플에서 체험(?)해 볼 수 있는 기능이 한정적이라 조..

SQL/ERD 2024.01.23

[Git] 기존 브랜치 내역이 남아있을 때, 브랜치 제거 안될 때

브랜치를 만들 때 이전에 한번이라도 사용한 적 있던 브랜치명을 재사용하면 그 때 작업했던 내용이 고대로 남아있는 채 생성되는 현상이 있었다. ??? 기깔나게 pr하고 브랜치 지운 뒤 다시 그 브랜치 이름으로 생성하면 브랜치가 새로 생성되는게 아니라 지웠던 브랜치가 복구됨... 얼렁뚱땅 작업하다가 에이 그냥 갈아엎고 새로 시작하자~! 하고 브랜치를 제거하고 다시 그 브랜치 이름으로 만들면?~~? 짜란~ 얼렁뚱땅 작업하던 내용이 고대로 복구~~ 난 새 출발을 하고싶었는데 ..!!!1 하지만 원인을 찾기에 귀찮기도 하고 전에 사용했던 브랜치명을 피해서 생성하면 새로운 브랜치를 만들 수 있어서 그냥 ... 그렇게 대충 ... 살아왔다..... 근데 이제 사용했던 브랜치명을 피해서 이름 짓는것도 한계고 사용했던 ..

오류 해결/Git 2024.01.23

[PostgreSQL] 512 에러, postgresql 갑자기 실행 안될때

➜ nestjs-project git:(dev) ✗ yarn prisma:push yarn run v1.22.19 warning ../../../../../package.json: No license field $ dotenv -e .env prisma db push Environment variables loaded from .env Prisma schema loaded from prisma/schema.prisma Datasource "db": PostgreSQL database "local_project", schema "public" at "localhost:5432" Error: P1001: Can't reach database server at `localhost`:`5432` Please m..

Prisma에서 페이지네이션 구현

부캠 팀 프로젝트때부터 페이지네이션을 적용하느라 골머리를 앓는 사람들을 많이 봐왔어서 나는 지레 겁먹고 시도조차 안했었는데 이번 프로젝트때 페이지네이션 기획이 나와버렸다ㅋ 갑자기 마주친 페이징... 부캠때는 못하겠으면 배째라고 해도되는데 (안됨) 지금은 회사니까 그럴 수가 없었다.......... 슬픔 눈물을 닦으며 페이지네이션을 검색해봤는데 생각보다 진짜 엄청 허무했다 findList() { return this.prisma.post.findMany({ orderBy: { created: 'desc' }, }); } 자 이게 기본적으로 post 테이블의 데이터를 최신순으로 정렬하여 불러오는 로직이라고 쳐보자 post 테이블의 데이터가 10개 이하일때는 모두 한꺼번에 불러와도 괜찮겠지만 데이터가 100개..

개발/PrismaORM 2023.12.26

[맥북] JDK 환경변수 설정

** 맥북 m1 칩이나 m2 칩을 사용하는 경우 java 나, 타 애플리케이션 설치가 안된다면 로제타 설치 후 다시 시도! 로제타: intel 애플리케이션을 m1, m2 칩에서도 호환 가능하게 해주는것 JDK 먼저 설치해주기! 👉🏻 JDK (Java SE Development Kit) 설치 링크 1. 설치한 JDK 의 위치로 이동 (특별히 수정하지 않는 이상 저 위치에 기본으로 설치됨) cd /Library/Java/JavaVirtualMachines cd 해당 주소로 현재 위치 이동 (Change Directory) 2. 설치된 JDK 의 파일명 조회 ls 확인한 파일명을 메모장에 복붙해놓기! (다음에서 사용함) ls 현재 위치의 파일 및 폴더 목록 (list) 3. Bash 쉘의 설정 파일을 Vim ..

개발/Java 2023.11.07

PostMan 사용 방법 - 2

POST → CRUD 에서 배운 HTTP 요청 메소드! 어떤 요청을 할 것인지 지정 (아래 1-2 이미지 참고) http://~ → API를 쏠 주소! 로컬에서 테스트한다면 💡 http://localhost:3000 이라고 작성해주면 됨 (3000 → 본인이 서버를 연 포트번호를 입력) 3. /board → 테스트할 API 의 엔드포인트! (아래 1-2 이미지 참고) router 파일에서 작성한 엔드포인트를 확인할 수 있음! 엔드포인트 앞에 .post 처럼 HTTP 요청 메소드도 확인할 수 있음! const title = req.body.title; 을 보면 요청을 body로 받아올지, query로 받아올지, param으로 받아올지 알 수 있음 4. Body → 프론트엔드(클라이언드)에서 백엔드(서버)로..

개발/PostMan 2023.11.06

PostMan 사용 방법 - 1

백엔드는 혼자 개발할 수 없어……….. 프론트엔드 없이 테스트 못 해…… 백엔드는 바보야… ㄴㄴ PostMan으로 (이쁘지는 않지만) 프론트엔드와 요청을 주고 받는것 처럼 할 수 있음 PostMan 초기 셋팅 1. PostMan 을 켠 뒤 Collections → + → Blank collection 2. 생성된 컬렉션( *컬렉션 이름 설정해주기 ) 우측의 점 세개 → Add request 3. 짜잔~ 이게 초기 화면! 자세한 사용방법은 다음 글에서 계속하겠음

개발/PostMan 2023.11.06