전체 글29

[Oracle] 한 달 전 데이터를 SELECT 하기

한 달 전 데이터를 복구해보자. ERP운영을 하다보면 특정 시점의 데이터가 필요 할 때가 있다. 빠르게 요청받은 몇 시간 전 데이터는 TimeStamp 를 통해 데이터 복구가 가능하지만 3주 전 시점의 데이터는 복구 할 수가 없는데, 가능하게 해보자. 전략은 테스트 디비서버를 하나 두는 것이다. 콜드백업 받은 데이터를 그대로 테스트 디비에 올리고 디비링크로 서로 연결시킨 후 원하는 시점까지 복구 후에 select 하면 원하는 시점 데이터를 볼 수 있다. 정기적으로 Cold Backup을 하고 Hot Backup을 하며 해당 백업파일을 이용하여 복구작업을 해보자. 필수 파일 LOG FILE - 말그대로 로그가 담긴 파일이다. 디비에 변경사항이 생기면 변경 명령이 해당 파일에 저장된다. 원하는 시점까지 복구..

[게임개발] 웹개발자의 게임개발 일지

UpBlock 구글플레이스토어 검색 결과 - 2022.08.03. 플레이영상 게임 명 : UpBlock 개발 툴 : COCOS CREATOR 개발 언어 : TypeScript (JavaScript) 광고 : Google AdMob 서버 : X - 구글게임즈 연동 : 랭킹시스템 사용 2년전 웹개발자 1년차 쯤 게임개발에 관심이 생겼었다. 게임 개발 툴, 서버, 디비 등 수많은 검색 끝에 유니티, 언리얼, 코코스 세 가지 모두 사용해보기로 하였고, 서버는 프라우드넷과 뒤끝, 직접개발 모두 해보기로 결론. 꾸준히 그 후기를 남겨보도록 하겠다. 우선 게임개발을 처음한다면 무조건 유니티 추천이다. 언리얼은 빌드속도가 너무 느린기억.. 코코스는 무료이고 모든 수익이 내게로 오지만, 자료가 중국어인데다가 정보가 너무..

[알고리즘] 백준 14889 스타트와 링크 파이썬

백준 14889 스타트와 링크 파이썬 문제 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제이해돕기 4일때는 12 / 34 팀 일때 S12+S21 / S34 + S43 인건 알겠는데, 6일때는 ? 123 /456 팀 일때 S12+S13+S21+S23+S31+S32 / S45+S46+S54+S56+S64+S65 입니다. 접근과정 1. 스타트팀의 모든 조합을 구한다. --> DFS이용하기 2. 전체집합에서 스타트집합을 뺀 여집합을 구한다. --> 링크 팀 3. 그래..

[알고리즘] 백준 14888 연산자 끼워넣기 파이썬

백준 14888 연산자 끼워넣기 파이썬 문제 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 접근법 연산자들을 중복을 제거하여 순서대로 줄세우는게 관건이다. 12345 를 순서대로 줄 세운다면, 경우의 수는 5! = 5*4*3*2*1 = 120 이다. 만약 11234 라면 ? 5!/2 = 5*4*3*2*1/2 = 60 이다. 수학의정석 10-가 였나? 공부했던 기억이 난다. 중복을 제거하는..

[알고리즘] 백준 1002 터렛 파이썬

백준 1002 터렛 파이썬 https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 접근 중학교3학년인가 풀었던 수학문제랑 같았다. 1. 두 원이 겹쳐 있을 때, 2. 두 원이 떨어져 있을 떄, 3. 위의 두 케이스에서 접 점일 때, 4. 중심점이 같고 반지름 길이가 다를 때 를 고려하면 풀린다. import sys import math input=sys.stdin.readline for _ in range(int(input())): a=list(map(int,input().split())) # 0 1 2..

[알고리즘] 백준 2675 문자열 반복

문자열을 다뤄보자. 백준 2675 문자열 반복 자바 파이썬 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net [JAVA] 기초적인 문자열 다루는 문제이다. 1. BufferedReader 로 입력 받고 2. 한 문자씩 다룰 수 있게 배열에 넣고 3. 반복하면서 StringBuffer에 담아 최종 출력하기 >> for문안에 new char[] 가 마음에 안들어서 밖으로 빼야겠다고 자꾸만 생각이 든다. import java.io.Buffer..

[SQL튜닝] merge no_merge

서브쿼리에 관해서 옵티마이저 동작방식과 merge no_merge 에 대해 알아보자. 쿼리를 짤 때, 작은 것부터 where 절로 row를 줄여나가면 더 빠르겠다는 생각으로 서브쿼리를 많이 이용했었다. 과연 더 빠르게 실행이 됐을까 ? 알아보자. 단순 View Merging 자주쓰는 쿼리 - 2022년 주문서의 제품 수와 거래처 조인쿼리 SELECT * FROM (SELECT GURAECODE,GRANDTOTALSU SU FROM JUMUN_HEAD WHERE JUMUNNO LIKE '2022%') A ,(SELECT * FROM GURAE_CODE WHERE GURAECODE LIKE '6%') B WHERE A.GURAECODE=B.GURAECODE 습관적으로 서브쿼리를 만들면서 쿼리를 짜는데, 해당..

[JAVA] String에 대하여

자바의 문자열 자바에서 문자열을 선언해 보자. String str = "abc123가나다" 큰 생각 없이 썼었던 문자열이지만 과연 내부적으로 어떻게 돌아갈것인가? C언어로 문자열을 만든다고 생각하면, 기본적으로 'a','b','c','1','2','3','가','나','다' 각각의 문자를 나열한 배열이다. 자바에서도 내부적으로는 각각의 배열일 것인가 ? 하는 물음에 시작되었다. Primitive Type 자바에서 원시타입은 byte,short,int,long,float,double,char,boolean,void 가 있다. String은 무엇인가? 일반적으로 객체를 생성할 때는 new 키워드를 사용하는데 특이하게 String은 new 연산자가 아니라 바로 값을 할당할 수 있는데 이를 문자열 리터럴 이라 ..

자바 2022.07.12

[알고리즘] 백준 1753 최단경로

https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 풀이과정. 최단경로를 구하는 문제로 Queue에 간선을 넣어 순서대로 꺼내며 dp배열에 최단 경로를 갱신해나가면 된다고 생각했다. 허나 무수한 '시간초과' 로 상당히 애먹었던 문제. 그 이유는 '서로 다른 두 정점 사이에 여러 개의 간선이 존재할 수도 있음에 유의한다.' '유의'란 언급이 있다면 진짜 유의해야한다. 처음에 heapq를 사용하지도 않았다. 우선순..