전체 글 259

[Oracle/Error] ORA-01013: user requested cancel of current operation

솔루션 패치 후에 특정 기능의 화면이 정상적으로 보이지 않아 서버 쪽 로그를 확인해보았다.ORA-01013: user requested cancel of current operation 에러가 발생하였는데, 이는 특정 기능을 위한 update 쿼리를 실행하면서 타임아웃이 발생하여 생긴 에러이다. 나의 경우는 오라클 DB에서 테이블 컬럼 추가 후 commit을 하지 않아서 해당 에러가 발생한 것이다.DB가 auto commit을 하지 않도록 설정되어 있어서 ddl 실행 후 commit을 따로 해줘야 했는데, 이를 까먹어버려서 해당 컬럼을 사용하려는데 없어서 사용하지 못하고 타임아웃이 발생되었다. commit 후 재기동하니 해당 에러는 발생하지 않았다.

Database/Oracle 2024.07.10

[Linux/Error] java.net.BindException: Address already in use

위 에러는 현재 실행한 프로세스의 포트가 이미 다른 데서 사용 중이어서 발생한 에러다.이를 해결하기 위해선 다음 명령어를 입력한다. 먼저 netstat 명령어로 사용 중인 프로세스의 PID 정보를 확인한다.netstat -nap | grep 포트번호예) netstat -nap | grep 9003- 옵션 -n : 포트번호- 옵션 -a : 모든 프로세스 표시- 옵션 -p : 프로세스의 PID 정보위 사진에서 맨 오른쪽의 595880/haproxy에서 595880이 이미 사용 중인 포트 9003 프로세스의 PID이다. 저 PID를 kill 명령어로 종료시킨 후 원래 실행하려던 프로세스를 실행하면 정상적으로 실행될 것이다.kill -9 PID예) kill -9 595880

OS/Linux 2024.05.28

[PostgreSQL/Error] permission denied for language internal

설치파일 테스트를 위해 데이터베이스 계정을 새로 만들어 설치파일과 관련된 설정 SQL 파일을 실행했는데 위 에러가 발생했다. 찾아보니 내가 만든 데이터베이스 계정이 슈퍼유저 권한이 없었던 게 문제였다.또한 저 SQL 파일 이외에 DDL SQL 파일도 있었기 때문에 CREATEDB 권한도 필요했다. 슈퍼유저 권한과 CREATEDB 권한 설정은 다음 쿼리를 실행하면 된다.1) 슈퍼유저 권한 부여 쿼리ALTER USER DB사용자계정명 WITH SUPERUSER;#예시> ALTER USER tistory WITH SUPERUSER; 2) CREATEDB 권한 부여 쿼리ALTER USER DB사용자계정명 CREATEDB;# ALTER USER tistory CREATEDB;  참고) DB 사용자 계정마다 부여된..

Database/PostgreSQL 2024.05.23

[Python] list에서 빈 문자열인 요소 제거하기

list에서 빈 문자열인 요소를 제거하려면,리스트 컴프리헨션(List Comprehension)을 사용하면 된다. >예시코드T=input().split("X")print(T)# ['OO', '', '', 'O', 'O', '', 'OOO']T=[i for i in T if i]print(T)# ['OO', 'O', 'O', 'OOO']T에 "OOXXXOXOXXOOO"라는 값을 입력하면 split("X")를 통해 해당 입력값에서 "X"가 제거된 후 리스트로 저장된다.이때, T는 ['OO', '', '', 'O', 'O', '', 'OOO']로 출력된다.나는 공백인 요소가 필요없었기에 리스트 컴프리헨션을 사용하여 빈 문자열인 요소를 제거하였다.T=[i for i in T if i]위 코드에서 'if i'는..

[Python] 아스테리스크(*, Asterisk)의 의미

Python에서 Asterisk(*)는 언패킹(Unpacking) 연산자로 사용된다.리스트나 튜플 등의 iterable 객체를 언패킹하여 각 요소를 개별적으로 전달하는 역할을 한다. 다음은 N과 M을 입력받아 N*M 형태의 행렬 A에 들어갈 요소를 입력받아 출력하는 코드이다. N, M = map(int, input().split())matrix_A = []for _ in range(N): row_A = list(map(int, input().split())) matrix_A.append(row_A)for row in matrix_A: print(*row)첫 for문에선 행렬 A에 들어갈 요소를 공백을 구분자로 하여 리스트 형태로 입력받아 matrix_A에 append()로 행을 추가한다.그리고..

[Python] 입력 받기

Python에서는 입력받는 방법이 다음과 같다. 1. input()x = input()print(x)사진의 윗부분에서 검정 글씨가 입력받은 값이고, 파란 글씨가 print(x)로 출력된 값이다.이때, input()에 int()로 감싼 이유는 정수를 받기 위해서이다. 2. sys.stdin.readline()sys.stdin.readline()을 사용할 때는 sys를 import해야 한다.import sysx = int(sys.stdin.readline())print(x) input()에 split()을 사용하여 한번에 여러 값을 입력받을 수 있는데, sys.stdin.readline()도 input()과 동일하게 split()을 사용할 수 있다.1 2 3 4가 input()으로 입력받은 것이고, 6 7 ..

[IT/정보] Mac 단축키

1. 스크린샷 관련 단축키shift + command + 3 : 전체화면 스크린샷shift + command + 4 : 마우스 드래그하여 일부 화면 캡처shift + command + 5 : 화면 영상 녹화2. 윈도우(창) 관련 단축키command + R : 새로고침command + H : 화면이 켜져있는 모든 윈도우 가리기command + L : 주소창 포커싱command + M : 맨 앞창 최소화command + option + H : 맨 앞창 제외 나머지 창 최소화command + W : 창 닫기option + command + E : 캐시 비우기option + command + U : 개발자도구 중 페이지 소스 켜기option + command + I : 개발자도구 닫기 또는 이전에 열었던 개발자..

IT/정보 2024.04.20

[Linux] vi 모드에서 한 줄 복사 후 붙여넣는 명령어

타임존 테스트를 위해 profile 파일을 수정하다가 테스트가 끝나면 원복해야 하는데 수정 전 내용을 다시 찾아야하는 과정이 귀찮다는 생각이 문득 들었다. 그래서 수정하려는 줄을 싹 복사한 후 그 밑줄에 붙여넣기 하는 vi 편집기 명령어를 찾아보았다. 나는 test.txt를 임의로 만들어 명령어를 사용할 것이다. 일단 vi로 test.txt 파일을 연다. test.txt를 열면 아래와 같이 텍스트가 작성되어 있다. 나는 마지막 문장을 복사할 것이다. 그러려면 마지막 문장인 'COPY & PASTE ...'로 커서를 이동시킨 후 yy 명령어를 사용하여 복사한다. vi 모드에서 'y'를 연속으로 2번 입력하면 된다. yy 명령어를 입력하면 아무 것도 뜨는 것이 없겠지만, 이미 복사가 된 상태이다. 이제 붙여..

OS/Linux 2024.04.01

[ChatGPT] ChatGPT를 활용하여 이동 평균선으로 주식 매매 타이밍 알아보기

ChatGPT를 활용하여 이동평균선으로 주식의 매매 타이밍을 알아보도록 하겠다. 우선 ChatGPT와 Google의 colab에 들어간다. - ChatGPT: https://chat.openai.com/ - Google colab: https://colab.research.google.com/ - 위 링크 들어가서 로그인 후 노트 열기에서 '+ 새 노트' 클릭하면 코드 입력 및 실행 가능한 모드로 진입한다. - ChatGPT에 이동 평균선 코드를 작성해달라는 명령을 내린 후 도출된 코드를 colab에서 실행할 것이다. colab에서는 파이썬으로 코드를 작성한다. - 이때, FinanceDataReader 라이브러리를 사용할 것이므로 colab에서 이를 설치해야 한다. 이는 다음 명령어를 입력한 후 좌측 ..

IT/ChatGPT 2024.03.03

[Flutter] 이미지들을 목록형(List)으로 나열하기

>전체 코드 import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, home: HomePage(), ); } } class HomePage extends StatelessWidget { const HomePage({Key? key}) : super(key: key); @override Widget build(..