728x90

전체 글 220

[Oracle] 운영 DB 데이터 개발 DB에 Insert하기

회사서 운영중인 시스템에서 개발 테스트를 해야하는데SAP로부터 내려오는 데이터들이 개발DB와 운영DB 싱크가 안맞아서 테스트에 어려움이 있어,특정 테이블의 운영DB 데이터들을 개발DB에 내려줘야 하는 상황이었음SELECT * FROM DBA_DB_LINKS; DEV에서 이렇게 조회를 하면 DB_Link가 뜬다.EXAMPLE_PRD이라고 뜬다고 가정하면,(왜 개발DB인데 _PRD가 뜨지?라는 생각이 들 수도 있는데, 이건 연결되어있다는 뜻이니까 운영과 연결되어 있다는 뜻이어서 운영DB링크가 뜨는 것이다)SELECT * FROM 테이블명@EXAMPLE_PRD; 를 조회해보면 운영DB에 있는 테이블 데이터들이 뜰 것이다. 그럼 개발 DB의 해당 테이블을 TRUNCATE 한 후, 테이블@EXAMPLE_PRD의 ..

SQL 2025.11.30

[JAVA] NoClassDefFoundError: class.$1 파일

최근에 회사에서 코드 수정 후에 배포하였는데 오류가 떴다로컬에서는 빌드가 잘 되어서 상당히 당황스러웠다현재 회사 시스템 상, 운영 오류 로그 보려면 원격 서버 들어가서 로그 창 뒤져야 했기 때문,,,근데 운영중인 시스템에 다른 로그까지 다 찍혀서 찾기도 힘들었는데 서비스 미 이용시간에 남아서 로그를 분석해본 결과 아래와 같은 로그가 떴다클래스명.$1 어쩌고 로그가 뜨길래 뭔가 했는데 검색해보니 저 파일이 누락되었다고 한다. 그래서 봤더니 생긴지도 몰랐는데 클래스명+ $1.class 파일이 있어서 찾아보았다 코드 수정할 때 Comparator를 사용했는데, 자바 컴파일러는 익명 내부 클래스(anonymous inner class) 가 등장하면클래스명$번호.class 형태로 별도의 파일을 자동 생성한다고..

Coding/JAVA 2025.11.30

Jenkin - git 인식 불가 빌드 실패 문제 해결

인증은 통과했지만 빌드할 브랜치(커밋)을 못 찾아서 실패한 상황이다 가능한 원인은 여러가지가 있겠지만 일단 첫번째로 깃허브 기본 브랜치명과 젠킨스의 브랜치명이 일치하는지 먼저 살펴보았다 깃허브 - main젠킨스 - /*master로 불일치하였고 일단 젠킨스 내 소스 코드 관리에서 main으로 수정하였다 수정 이후 정상적으로 빌드됨을 확인했다.

카테고리 없음 2025.11.02

[백준] 듣보잡 - Python

https://www.acmicpc.net/problem/1764 n,m을 한 줄에 n m 이런식으로 입력받아야 하니까 map을 사용하여 입력 처리했다.n, m = map(int, input().split()) * 처음에 아래처럼 하나하나씩 받았다가 런타임에러 발생함n = int(input())m = int(input()) 교집합을 찾는 문제라서 set을 사용했다 intersection = set_a & set_b 형태로 & 연산자를 사용하면 교집합을 구할 수 있다. 풀이 코드n, m = map(int,input().split())set_n = set(input().strip() for _ in range(n))set_m = set(input().strip() for _ in range(m))re..

프로세스의 상태 전이와 CPU 스케줄링의 흐름

운영체제는 여러 개의 프로세스를 동시에 관리해야 한다. 이때 운영체제는 각 프로세스의 상태를 관리하고, CPU를 어떤 프로세스에 할당할지 결정하는 역할을 한다. 이 과정에서 CPU 스케줄링, 프로세스 상태(준비/대기/실행 등), PCB(Process Control Block), 그리고 인터럽트 같은 개념들이 유기적으로 연결된다.1. 프로세스가 생성되면프로그램이 실행되면 운영체제는 해당 프로세스를 위한 PCB(Process Control Block)를 생성한다. 이 PCB는 프로세스의 상태, 프로그램 카운터, 레지스터 정보, 메모리 정보 등을 저장하는 구조체다. 이 PCB는 프로세스의 전체 실행 정보를 관리하는 데 필수적이다.2. 준비 상태프로세스가 실행 준비가 되면 준비 큐(Ready Queue)에 들어..

CS/운영체제 2025.05.18

프로세스와 스레드의 차이

프로세스란?프로세스는 실행 중인 프로그램을 말한다. 우리가 어떤 앱을 실행하면 그건 운영체제 입장에서 하나의 프로세스가 된다.각각 독립된 메모리 공간을 가진다.하나의 프로세스가 오류로 종료돼도 다른 프로세스엔 영향을 주지 않는다.프로세스끼리는 메모리를 공유하지 않기 때문에, 서로 데이터를 주고받으려면 별도의 통신 방식이 필요하다.스레드란?스레드는 프로세스 안에서 실제로 작업을 수행하는 실행 단위다. 하나의 프로세스 안에는 여러 개의 스레드가 있을 수 있다.같은 프로세스 안에 있는 스레드끼리는 메모리(힙, 데이터 영역 등)를 공유한다.각각 스택 영역은 따로 가진다.하나의 스레드가 문제를 일으키면, 같은 프로세스에 있는 다른 스레드들도 영향을 받을 수 있다.프로세스의 자원을 공유한다 => 프로세스는 독립적..

CS/운영체제 2025.05.12

운영체제와 응용프로그램

운영체제란?- 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램- 주요 업무: 메모리 관리, CPU 관리 예를 들어 메모장, 웹 브라우저같은 프로그램(정확히는 응용프로그램)을 실행시키려면 메모리에 적재되어야 하는데 이런 프로그램이 적재되는 영역은 사용자 영역이다. 운영체제는 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역에 따로 적재되어 실행된다. 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 자원을 할당하고 올바르게 실행되도록 돕는다. 여러 응용 프로그램들을 동시에 실행하면 사용자 영역의 n번지에 각각 적재되어야 하는데, 메모리 주소가 겹치지 않도록 적당한 공간에 프로그램들을 적재해주는 것이 바로 운영체제이다. 결론: 운영체제는 실행할 ..

CS/운영체제 2025.05.10

[스택] 올바른 괄호 - python

문제https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 닫힌 괄호와 열린 괄호의 수가 같아야 닫혔다고 판단하는 문제이다열린 경우는 스택 배열에 넣고 닫힌 경우는 pop()해서 헤드를 제거하면 스택배열의 길이가 0이 되도록 풀면 되는 문제이다 풀이def solution(s): stack = [] for i in range(len(s)): if s[i] == "(": stack.append("(") elif s[i] == ")": ..

[스택] 같은 숫자는 싫어 - python

문제 입출력 예시 나의 풀이 (Python)def solution(arr): answer = [] for i in range(len(arr)): if not answer or answer[-1] != arr[i]: # 마지막 인덱스 값이 현재 값과 다르면 추가 answer.append(arr[i]) # 들여쓰기가 필요함 return answer 일단 리스트 answer을 선언하고 주어진 arr 배열의 길이만큼 인덱스 i를 반복한다 if not 배열 = 배열이 비어있다면 or 혹은 배열[-1] = 배열의 마지막 인덱스 값 answer[-1] : answer의 마지막 값이 arr[i]값과 다르다면 answer에 arr[i]값을 추가해준다