목록전체 글 (164)
개발 공부
오겜 볼까 말까 알아보던 중, 해외 사이트 decider 방문.Our Call: STREAM IT. The long-anticipated second season of Squid Game lives up to what Hwang Dong-hyuk accomplished in the first season, with Gi-hun back in the game, but for very different reasons than when he first played it. lives up to : 기대에 부응하다 또는 기대한 만큼 해내다예문과 해석:The movie really lives up to the hype.그 영화는 정말 기대에 부응한다.She didn’t quite live up to her pot..
1. 재부팅 시간 확인who -b 2. dmesg 로그 확인dmesg는 커널 로그로, 시스템 부팅과 관련된 중요한 메시지들을 기록합니다. 특히, 커널 패닉이나 하드웨어 관련 오류가 발생한 경우 유용합니다.dmesg | grep -i 'panic'dmesg | grep -i 'error'dmesg | grep -i 'fatal' 3. journel 로그 확인-b -x -x전 부팅 횟수 -e 뒤에서부터 확인journalctl -b -1 -e
Docker Compose는 여러 컨테이너를 함께 관리하고 설정할 수 있는 강력한 도구입니다. 본 포스트에서는 Docker Compose를 활용하여 네트워크 구성, 데이터베이스 연결, 그리고 전체적인 파일 로드 방식을 다루겠습니다.1. 네트워크 컨텍스트 이해하기Docker Compose에서 네트워크는 각 서비스가 서로 통신할 수 있도록 연결을 설정하는 핵심 요소입니다. 기본적으로 Docker Compose는 자체 네트워크를 생성하며, 각 컨테이너는 이름 기반으로 다른 컨테이너에 접근할 수 있습니다.bridge 네트워크: Docker Compose의 기본 네트워크로, 같은 Compose 프로젝트 내의 컨테이너가 서로 통신할 수 있습니다.host.docker.internal: 로컬 머신에서 실행 중인 호스트..
Docker 실행과 컨테이너 및 포트의 관계Docker 실행 절차Docker 설치: Windows에서는 Docker Desktop을 설치.Docker CLI 실행:Windows에서는 Docker Desktop 설치 시 docker.exe가 PATH에 추가됨.cmd, PowerShell, 또는 WSL2 환경에서 docker 명령어 실행 가능.컨테이너의 구조컨테이너는 폴더 형식이 아님: Docker는 컨테이너를 독립적인 실행 환경으로 관리하며, 파일 시스템은 호스트 OS의 특정 디렉터리에 매핑할 수 있습니다 (예: -v 옵션으로 볼륨 연결).컨테이너 실행:docker run 명령어로 실행하면 Docker 데몬이 컨테이너를 시작.3000:3000은 호스트 포트:컨테이너 포트를 매핑하는 설정.컨테이너와 포트컨테..
리눅스 컨테이너 사용과 운영 환경 선택리눅스 컨테이너 사용의 일반적인 경우애플리케이션 개발 및 테스트: 가벼운 환경에서 애플리케이션을 테스트하려고 할 때.운영 환경 표준화: 리눅스 기반의 애플리케이션 환경을 통일하여 호환성 문제를 줄이기 위해.CI/CD 파이프라인 구축: 애플리케이션 배포 자동화를 위해 경량화된 컨테이너를 사용.VM과 컨테이너의 차이VM(가상 머신): 하드웨어 수준에서 가상화. 독립된 OS를 실행하며 무겁고 리소스를 많이 사용.컨테이너: 애플리케이션 수준에서 가상화. 호스트 OS의 커널을 공유하여 가볍고 실행 속도가 빠름.리눅스 컨테이너 위에 Docker 실행기술적으로 가능합니다. Docker는 리눅스 컨테이너를 지원하며, 그 위에 Node.js 컨테이너를 올릴 수 있습니다.추천/비추천추..
1. Docker 컨테이너 종류 비교 및 추천Next.js 프로젝트를 Docker로 컨테이너화할 때, 보통 두 가지 환경 중 하나를 선택합니다:Node.js 기반 컨테이너: Next.js는 Node.js 서버에서 실행되므로 기본적으로 Node.js 베이스 이미지 사용이 일반적입니다.장점: Next.js 서버 실행에 최적화되어 있으며 설정이 간단합니다.추천 이미지: node:18-alpine (경량 베이스 이미지)Nginx 기반 컨테이너: Next.js 앱을 정적으로 빌드(next build && next export)하여 Nginx로 서빙하는 방식.장점: 빠르고 경량화된 정적 사이트 배포.단점: Next.js의 서버사이드 렌더링(SSR) 기능을 사용할 수 없음.추천 이미지: nginx:alpine컨테이너..
Oracle 데이터베이스에서 인덱스 공간의 회수는 다음과 같이 이루어집니다:즉시 회수되지 않습니다. 데이터를 삭제해도 인덱스 엔트리는 실제로 제거되지 않고 삭제 표시만 됩니다.시간이 지나면 회수될 수 있습니다:새로운 INSERT 작업 시 삭제된 키 공간이 재활용됩니다.인덱스 SPLIT 발생 시 DELETE로 생긴 빈 공간이 재활용됩니다.자동으로 완전히 회수되지는 않습니다. 인덱스 리빌드를 통해 수동으로 공간을 회수할 수 있습니다.대량 삭제 후에도 인덱스 크기가 즉시 줄어들지 않을 수 있습니다.따라서 Oracle에서는 삭제된 인덱스 공간이 즉시 회수되지는 않지만, 새로운 데이터 삽입이나 인덱스 분할 시 재사용될 수 있습니다. 완전한 공간 회수를 위해서는 인덱스 리빌드와 같은 관리 작업이 필요합니다.
테이블스페이스 정리 효과인덱스 리빌드를 수행하면 테이블스페이스에도 일정 부분 정리 효과가 있습니다. 리빌드 과정에서 다음과 같은 변화가 일어납니다:사용하지 않는 공간 회수: 삭제된 데이터의 인덱스 엔트리가 제거되어 공간이 확보됩니다.인덱스 구조 최적화: 조각화된 인덱스가 재구성되어 더 효율적인 구조로 변경됩니다.저장 공간 감소: 불필요한 인덱스 블록이 제거되어 전체적인 저장 공간이 줄어들 수 있습니다인덱스 리빌드 방법인덱스 리빌드는 주로 두 가지 방법으로 수행할 수 있습니다:인덱스 삭제 후 재생성:DROP INDEX 인덱스명;CREATE INDEX 인덱스명 ON 테이블명(컬럼1, 컬럼2, ...);ALTER INDEX 명령어 사용:ALTER INDEX 인덱스명 REBUILD;ALTER INDEX를 사용한..
테이블스페이스 설정 확인테이블스페이스 설정을 확인하는 방법은 다음과 같습니다:전체 테이블스페이스 정보 조회:SELECT * FROM DBA_TABLESPACES;테이블스페이스 용량 확인 (MB 단위):SELECT TABLESPACE_NAME, ROUND(SUM(BYTES)/1024/1024,2) AS "SIZE_MB", ROUND(SUM(MAXBYTES)/1024/1024,2) AS "MAX_SIZE_MB"FROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME;테이블스페이스 사용량 확인:SELECT A.TABLESPACE_NAME, ROUND((A.BYTES_ALLOC - NVL(B.BYTES_FREE, 0))/1024/1024, 2) AS "USED_MB", ROUN..
Synonym 사용 이유Synonym(동의어)을 사용하는 주요 이유는 다음과 같습니다:객체 이름 단순화: 긴 객체 이름을 짧고 간단한 이름으로 대체할 수 있습니다.객체 위치 은닉: 실제 객체의 소유자나 위치를 숨길 수 있어 보안에 도움이 됩니다.객체 이동 용이성: 객체가 이동하거나 변경되어도 synonym만 수정하면 되므로 유지보수가 쉽습니다.원격 객체 접근 간소화: 다른 데이터베이스의 객체에 대한 접근을 로컬 객체처럼 간단하게 만들 수 있습니다.객체 이름 충돌 방지: 동일한 이름의 객체가 여러 스키마에 존재할 때 구분하기 쉽게 해줍니다.이러한 이유로 synonym은 데이터베이스 관리와 애플리케이션 개발에서 유용하게 사용됩니다