본문 바로가기

# Development

(39)
[ORACLE] 오라클 분석(Oracle Analyze), 통계정보, 실행계획 (Execution Plan) : Part1-용어이해 오라클 분석(Oracle Analyze), 통계정보, 실행계획 (Execution Plan) : Part1-용어이해 어느날 보통 10분이면 끝나던 프로시저가 말도 안되게 시간이 오래걸렸다. 뭔가 오라클 실행계획이 변경된 듯했다. 통계정보를 업데이트하고, HINT를 사용하니 배치가 5분만에 완료되었다. 이참에 오라클 통계정보가 무엇인지, 통계정보가 어떻게 오라클 실행계획에 영향을 미치는지 알아보자. 오라클에서 분석과 비용이란?오라클에서 '분석'이란, SQL문을 분석하고 어떤 테이블이나 컬럼 등으로 구성되어 있는지 조사하고, 이를 알고리즘에 따라 처리하는 것을 말한다. 오라클은 '비용 기반(cost base)' 알고리즘을 가지고 있다. 여기서 '비용'이란 처리에 필요하다고 생각되는 시간 또는 자원활용량이다...
[Ubuntu] Swap 메모리 설정: AWS EC2 메모리 문제 Swap 메모리 설정: AWS EC2 메모리 문제Out of MemoryAWS EC2 서버가 응답을 하지 않아서 콘솔에서 인스턴스 스크린샷을 확인해보니 Out of meory로 서버가 죽어있었다.메모리가 모두 사용되어 프로세스가 중지 된 현상인데, 일단 인스턴스를 재부팅해서 손상되지 않은 상태로 복원했다. AWS에서는 해당 문제 발생 시, 메모리에 최적화된 인스턴스로의 변경을 권유하고 있다.https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/TroubleshootingInstances.html#MemoryOOM 상태 확인에 실패한 인스턴스 문제 해결 - Amazon Elastic Compute Cloud일부 시스템에서는 SELINUX=disabled 파..
[Ubuntu] 리눅스 메모리 사용량 모니터링: sysstat sar 리눅스 메모리 사용량 모니터링: sysstat sar AWS EC2 서버가 Out of memory 메시지를 띄우며 장렬히 전사했다. 인스턴스 모니터링 페이지에서 CPU 사용량은 확인 할 수 있지만, 메모리 사용량은 확인할 수 없다. 메모리 사용량 모니터링을 할 수 있는 별도의 방법이 필요하다. 언제 어떤 상황에서 시스템이 메모리를 많이 사용하는지 추적할 필요가 있다. sysstat 이란? 리눅스 성능을 측정하는 패키지 sar (system activity reporter) cpu, memory, network, disks io 등의 지표를 수치화하여 파일로 저장해주는 분석 툴이다. sar 구성요소 sadc (system activity data collector) 지표 데이터를 수집하며, 이를 /var..
[SQLAlchemy] Model.query VS db.session.query() Model.query  VS  db.session.query() 뭐가 다르지?오늘 팀원분이 아래와 같은 질문를 주셨다.sqlAlchemy에서 .first()  쿼리로 조회된 데이터를 dict나 형태로 형변환을 해서 확인을 해보고 싶은데  왜 _asdict()가 안될까요🤔;;;  Flask에서 sqlalchemy를 사용하다보면  object.query와 session.query()를 편의에 따라 혼용해서 사용한다. 반환된 데이터를 조작하는 방법이 비슷해서 두 객체가 같을거라고 보통 생각하지만,반환된 커리의 type을 로그로 찍어보면 사실 전혀 다른 객체임을 알 수 있다.$ Model.query: $ db.session.query:  Model.query와 db.session.query()의 차이점을 좀더..
[SQLAlchemy] 트랜잭션(transaction) 관리: add, flush, commit 메서드의 활용 트랜잭션(transaction) 관리: add, flush, commit 메서드의 활용 SQLAlchemy는 Python으로 데이터베이스와 상호작용하는 데 사용되는 강력하고 유연한 ORM(Object-Relational Mapping) 라이브러리다.  SQLAlchemy로 데이터베이스 객체를 다룰 때 가장 신경써야 하는 부분은 트랜잭션(Transaction)이다. 트랜잭션 관리를 위해 S..
[CI/CD] Github Actions로 Python CI 구축하기: Part2-Testing Github Actions로 Python CI 구축하기: Part2-Testing 테스트는 소프트웨어 개발과 배포에서 핵심적인 부분으로, 코드의 품질을 보장하고 안정성을 높이는 과정이다. 이 글에서는 테스트 코드를 작성하는 방법과, Github Actions을 통해 CI(지속적 통합)과정에서 테스트를 자동화 하는 방법을 정리했다. CI/CD와 Github Actions에 대한 개념이 확실하지 않다면, 아래의 링크들을 읽어보길 바란다. CI/CD [CI/CD] CI/CD란 무엇인가? CI/CD란 무엇인가? 소프트웨어 개발 및 배포를 자동화하여 효율적으로 개발 및 배포 프로세스를 관리하는 방법론이다. CI (Continuous Integration) Continuous Integration: 지속적 통합 C..
[CI/CD] Github Actions로 Python CI 구축하기: Part1-Linting Github Actions로 Python CI 구축하기: Part1-Linting 본 글을 읽기전에  CI/CD와 Github Actions에 대한 개념이 확실하지 않다면, 아래의 링크들을 읽어보길 바란다.CI/CD [CI/CD] CI/CD란 무엇인가?CI/CD란 무엇인가? 소프트웨어 개발 및 배포를 자동화하여 효율적으로 개발 및 배포 프로세스를 관리하는 방법론이다. CI (Continuous Integration) Continuous Integration: 지속적 통합 CI는 개발자들이 코드를yoon001.tistory.comGithub Actions [CI/CD] GitHub Actions란?Github Actions란? Github Actions는 소프트웨어 개발과 배포를 자동화하는 통합 서비스이다..
[CI/CD] GitHub Actions란? Github Actions란? Github Actions는 소프트웨어 개발과 배포를 자동화하는 통합 서비스이다. 소프트웨어 개발 라이프사이클 안에서 Pull Request, Push 등의 이벤트 발생에 따라 자동화된 작업을 진행할 수 있도록 도와준다. Github Actions 외에도 다양한 CI/CD 도구들이 존재하는데 그에 대한 간략한 설명은 아래의 포스트에서 확인 할 수 있다. [CI/CD] CI/CD란 무엇인가? CI/CD란 무엇인가? 소프트웨어 개발 및 배포를 자동화하여 효율적으로 개발 및 배포 프로세스를 관리하는 방법론이다. CI (Continuous Integration) Continuous Integration: 지속적 통합 CI는 개발자들이 코드를 yoon001.tistory.com Gi..