본문 바로가기

전체 글

(433)
[프로그래머스 SQL] 5월 식품들의 총매출 조회하기 [ORACLE] https://school.programmers.co.kr/learn/courses/30/lessons/131117 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr JOIN, GROUP BY를 사용하면 되는 문제. 조인을 먼저 하고 그룹바이를 거는 방법도 있고, 그룹화를 먼저 하고 원하는 정보를 걸러낸 후 조인하는 두가지 방법이 있는데 난 두번째 방법을 사용했다. 서브쿼리를 사용해야하기 때문에 첫번째 방법이 더 좋은 것 같다. FOOD_ORDER 먼저 위 테이블에서 5월에서 출시된 상품들과 그 상품들이 몇개나 주문되었는지 추출하는 쿼리를 작성한다. SELECT PRODUCT_ID, SUM(AMOUNT) ..
[백준] 1461번 도서관 (C++) https://www.acmicpc.net/problem/1461 문제세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책들의 원래 위치가 주어질 때, 책을 모두 제자리에 놔둘 때 드는 최소 걸음 수를 계산하는 프로그램을 작성하시오. 세준이는 한 걸음에 좌표 1칸씩 가며, 책의 원래 위치는 정수 좌표이다. 책을 모두 제자리에 놔둔 후에는 다시 0으로 돌아올 필요는 없다. 그리고 세준이는 한 번에 최대 M권의 책을 들 수 있다.입력첫째 줄에 책의 개수 N과, 세준이가 한 번에 들 수 있는 책의 개수 M이 주어진다. 둘째 줄에는 책의 위치가 주어진다. N과 M은 50보다..
[ORACLE] 오라클의 NULL 처리 IS NULL, IS NOT NULLSELECT * FROM TABLE_NAMEWHERE COL_NAME IS NULL NULL인지 아닌지 처리NVL, NVL2SELECT NVL(1, 2), NVL(COL_NAME, 'a')FROM TABLE_NAME; COL_NAME이 NULL이면 a가 나온다.SELECT NVL2('A', 'B', 'C') // C , NVL2(NULL, 'B', 'C') // 2 , NVL2(1, 2, 3) // 3FROM TABLE_NAME; 첫번째 파라미터가 NULL이면 3번째 파라미터가, 아니면 2번째 파라미터가 나온다.NULLIFSELECT NULLIF('A', 'B') // A , NULLIF('A', 'A') // NULL ..
1장: 데이터 저장 구조 및 I/O메커니즘 I/O 튜닝이 곧 SQL 튜닝이라 해도 과언이 아니다.I/O = 잠자는시간I/O가 일어나는 시간동안 프로세스는 잠을 자기 때문I/O가 발생하면 프로세스는 대기큐에서 잠을 잔다. 그리고 I/O가 끝나면 디스패처에 의해 다시 일한다.시퀀셜 엑세스 vs 랜덤 엑세스시퀀셜 엑세스논리적, 물리적으로 연결된 순서에 따라 차례대로 블록을 읽는 방식랜덤 엑세스순서를 따르지 않고 레코드 하나를 읽기 위해 한 블록씩 접근하는 방식논리적 I/O vs 물리적 I/OSystem Global Area (SGA)DB Buffer Cache, Redo Log Buffer, Shared Pool (Library Cache : SLQ), Data Dictionary Cache여러 메모리와 사용사 세션이 공유하는 공간DB버퍼캐시데이터 캐..
[ShellScript] ShellScript 문법, LINUX 명령어, GIT 정리 Git이번의 처음으로 돌아가기git restore . Shellscript주석변수ifforwhile입출력LINUX 명령어권한 설정사용중인 프로세스 확인 명령어디렉토리 CRUDjava jar 파일 실행
[SpringBoot] Github Action을 사용한 BlueGreen배포 1. Github Action에서 클라우드의 shellscript 실행하기 이전까지 jar파일을 클라우드 서버에 전송하는 것 까지 진행시켰다. 이제 서버에 전송 후 이전에 쓰던 것을 끄고 새로운 것을 켜주는 쉘스크립트를 작성해야한다. 다만 그 전에 쉘스크립트 파일을 실행하는 로직을 github action에 추가해주어야한다. folder_path="/home/shellScript/newFolder"mkdir $folder_path 쉘스크립트는 위와 같이 매우 간단하게 새로운 폴더를 하나 만드는 것으로 하였다. # 쉘스크립트 파일 실행- name: Execute shell script on remote server env: SSH_PASSWORD: ${{ secrets.SSHPASSWORD }} ..
[SpringBoot] Github Action을 사용한 jar빌드 후 전송 github action은 push, merge, pull request 등의 동작이 행해졌을 경우 원하는 동작을 자동으로 동작하도록 스케줄링 해둘 수 있는 서비스이다. 이것을 사용하면 CICD 배포를 구현할 수 있다. 여기서는 모두 github action의 대한 기본적인 사용법은 알고 있다고 생각하겠다. 나는 푸쉬한 파일을 jar로 빌드하여 내 클라우드 서버에 scp로 보내는 동작을 수행할 것이다. 플로우는 아래와 같다.  1. Action  action 할 레포지토리의 action에서 java with gradle 을 가져오자. 이것을 수정해서 위 플로우를 완성할 것이다.  여기서 설정파일을 수정해도되지만, 커밋하고 편집기에서 편집하도록 하자. 파일이름은 마음대로 해도된다. 난 Create Jar ..
[백준] 과일 탕후루 (C++) https://www.acmicpc.net/problem/30804 양 끝에서 숫자를 빼가며 Greedy 한 방법으로는 문제를 풀 수 없다. 그리고 N = 20만이기 때문에 양옆에서 빼는 모든 방법을 해보는 것은 불가능하다. 그러므로 두포인터를 활용해 범위를 계속 갱신해가며 풀어야하는 문제이다.  기본 예제로 시뮬레이션해보자. Lo는 첫번째 원소를, hi는 두번째 원소를 가리키고 있다. 이 때 탕후루의 종류는 5, 1 로 총 2개이고 길이는 2이다. 이제 hi를 1 늘려서 보자. 아직 종류가 2개이다.   범위를 더 늘렸더니 종류가 3개가 되었다. 그러므로 이제 범위를 줄여야한다. lo를 하나 늘리자  이제 정상화 되었으므로 hi를 하나 늘린다.   hi가 끝까지 왔으므로 더이상 탐색하지 않아도된다. l..