본문 바로가기

전체 글112

Andoird 메모리 사용을 분석해보자!!! adb shell dumpsys meminfo ```sh Total RAM: 3,597,148K (status normal) Free RAM: 1,071,266K ( 637,714K cached pss + 336,024K cached kernel + 97,528K free) ION: 237,236K ( 183,672K mapped + -18,480K unmapped + 72,044K pools) GPU: 0K Used RAM: 3,462,226K (3,094,698K used pss + 367,528K kernel) Lost RAM: 194,720K ZRAM: 319,316K physical used for 1,759,976K in swap (4,194,300K total swap) Tuning: 192.. 2024. 1. 17.
로컬 바인드 변수 사용 경우 실행계획이 이상할 떄가 있다! 1) Store Procedure에서 바인드 변수 사용 경우 2) 스칼라 변수 사용 경우 3) 로컬 바인드 변수 사용 경우 위와 같은 3가지 경우 1),2)는 올바른 실행계획을 사용하는데, 3)은 부적절한 실행계획을 사용할 수 있다. 왜? * 3가지 경우 모두 실행 계획이 캐싱된다. SGA(System Global Area) > Shared Pool > Library Cache > Shared SQL Area에 실행 계획이 캐싱된다. (하드파싱 횟수 감소로 CPU 자원 효율 증대) * 1)경우, 최초 파싱시 사용했던 변수의 분포도 사용(Prameter Sniffing) * 2)경우, 최초 파싱시 사용했던 변수의 분포도 사용 * 3)경우, 최초 파싱시 변수의 분포도 사용 불가(Prameter Sniffin.. 2023. 10. 18.
2023.10.18 1. 조인하고 그룹핑 ->그룹핑하고 조인 불필요한 rows만큼 JOIN 조건을 체크하지 않기 위해서 접기 /***** 조인하고 그룹핑 *****/ SELECT COUNT(*) AS totalCnt , SUM(IIF(resultStatusCode = 'S1', 1, 0)) AS completeCnt , SUM(IIF(resultStatusCode = 'S2', 1, 0)) AS ingCnt , SUM(IIF(resultStatusCode = 'S-1', 1, 0)) AS absentCnt FROM ( SELECT RS.NEISCode, RS.IpsiYear, RS.IpsiGubun, RS.ExamSetNo, RS.SuhumNo, MAX(RR.StatusCode) AS resultStatusCode FROM.. 2023. 10. 18.
aws cloudformation 이란 # aws cloudformation 이란? AWS CloudFormation은 인프라를 코드화하여 AWS 리소스를 자동으로 프로비저닝하고 관리하는 서비스다. JSON 또는 YAML 형식의 템플릿 파일을 사용하여 AWS 인프라를 정의한다. 이 템플릿 파일에는 AWS 리소스의 종류, 구성 및 종속성 등을 정의할 수 있다. 이렇게 정의된 템플릿 파일을 AWS CloudFormation 서비스에 제출하면, AWS CloudFormation 서비스는 해당 템플릿 파일에 정의된 AWS 리소스를 자동으로 프로비저닝하고 관리한다. 인프라를 코드화하여 반복적이고 예측 가능한 방식으로 프로비저닝하고, 변경 사항을 쉽게 추적하고 롤백할 수 있다. 이를 통해 인프라 프로비저닝과 관리 코스트를 줄이고 애플리케이션 개발에 집중.. 2023. 3. 26.
aws copilot 이란? # AWS Copilot 이란? AWS에서 컨테이너 기반 애플리케이션을 손쉽게 구축, 배포 및 운영할 수 있도록 지원하는 서비스다. 복잡한 AWS 리소스 구성 및 배포 지원 작업 없이 컨테이너 기반 애플리케이션을 쉽게 작성할 수 있다. 로컬 환경에서 테스트하고 AWS 클라우드로 배포할 수 있도록 지원한다. 이를 통해 애플리케이션 코드 작성에 집중할 수 있으며, 더욱 빠르게 개발 및 배포를 수행할 수 있다. AWS Copilot은 AWS CLI, AWS SDK 또는 AWS Management Console을 사용하여 설치하고 사용할 수 있으며, Amazon ECS 및 AWS Fargate를 비롯한 여러 AWS 서비스와 함께 사용할 수 있다. 1. 무엇을 해결하려는가? - AWS에서 컨테이너 기반 애플리케이.. 2023. 3. 26.
IP / Public IP / Private IP / Dynamic IP / Static IP IP 주소의 의미 IP 주소는 인터넷 프로토콜 주소를 의미하며 숫자로 구성되어 인터넷에 연결된 장치를 식별하는 역할을 한다. 편지를 받으려면 우편함 주소가 필요하듯이 장치와 서버가 정보를 교환하기 위해서는 IP 주소가 필요하다. 예를 들어 구글에 검색하는 경우 검색하는 기기의 IP 주소가 구글 서버에 요청을 전송하게 되며, 구글은 IP 주소로 사용자를 식별한 후 요청한 정보를 전송하게 된다. IP 주소의 유형 IP 주소에는 공인 IP 주소, 사설 IP 주소, 동적 IP 주소, 정적 IP 주소 등 다양한 유형이 존재한다. 공인 IP 주소 공인 IP(Public IP) 주소는 인터넷 업체가 사용자에게 할당하며 공유기가 인터넷과 통신하도록 하는 역할을 하는 외부 IP 주소다. 공인 IP 주소는 사용자의 전체.. 2023. 3. 23.
Resolution / BitRate / FrameRate ※ 목적: 최저 용량으로 불편하지 않은 영상 서비스 제공 ※ 해상도 외에도 프레임 속도와 비트레이트에 따라 동영상이 달라진다. Resolution(해상도) 비디오의 너비/높이를 픽셀 단위로 측정하는 크기 예를 들어, 1920×1080 크기의 동영상은 너비가 1920픽셀, 높이가 1080픽셀이다. 해상도는 높이로만 표시되는 경우가 많기 때문에 이러한 해상도는 1080p라고 말할 수도 있다. Bit rate(비트 전송률) 초당 포함된 데이터의 양을 메가비트 단위로 측정한 값.(Mbps) 품질을 나타내는 보다 일반적인 지표. 비트레이트가 높은 동영상의 경우 이미지 선명도를 떨어뜨리는 압축 아티팩트가 적지만 컴퓨터나 디스크의 공간을 더 많이 차지한다. 해상도가 높을수록, 프레임 속도가 높을수록, 앞축률이 낮을수.. 2023. 3. 9.
테스트 어떻게 해야 할까...??? 1. 단위 테스트의 목표 가치 있는 테스트만 남기고 나머지는 모두 제거하라. 애플리케이션과 테스트 코드는 모두 자산이 아니라 부채다. 단위 테스트의 목표는 무엇인가? 소프트웨어 프로젝트의 지속 가능한 성장을 가능하게 하는 것이다. 지속 가능하다는 것이 핵심이다. 성공적인 테스트 스위트는 다음과 같다. 개발 주기에 통합되어 있다. 코드베이스에서 가장 중요한 부분만을 대상으로 한다. 2. 단위 테스트란 무엇인가 테스트는 해결하는 데 도움이 되는 문제에 대한 이야기를 들려줘야 하며, 이 이야기는 프로그래머가 아닌 일반 사람들에게 응집도가 높고 의미가 있어야 한다. 테스트 대상 단위는 코드 단위가 아니라 동작 단위다. 따라서 공유 의존성만 테스트 대역으로 대체해야 한다. 최종 사용자에게 의미 있는 결과만 확인해.. 2023. 2. 28.
개발자의 평생공부 [임백준 칼럼] 실력은 고통의 총합이다 평생 공부하는 건 개발자만이 아니다. 다른 직업을 가진 사람들도 쉼 없이 공부하고, 컨퍼런스와 세미나를 참가하고, 스터디를 한다. 공부없이 할 수 있는 일이 없기 때문이다. 언뜻 보기에 공부와 거리가 멀어 보이는 바텐더조차 공부할 것이 많다. 바텐더를 위한 컨퍼런스는 물론이고 전문적인 팟캐스트 방송까지 있다. 공부는 누구나 하는 것이므로 공부한다는 사실만으로 엄살을 떨 필요는 없다. 문제는 공부의 방향이다. 개발자의 경우는 평균적으로 보았을 때 3년 전에 학습한 지식이면 낡은 징후를 보이기 시작하고 5년이면 생명을 다한다. 더 오래가는 지식도 물론 있다. 프로그래밍의 본질에 가까운 지식은 수명이 오래가고 파편적인 지식일수록 수명이 짧다. 그래서 본질을 추구하며 에피.. 2023. 2. 7.
zsh: command not found: nvm ※ 문제상황 구글링에 많이 나오는 아래와 같은 절차에 따라 nvm을 설치하더라도 "zsh: command not found: nvm" 에러를 만나고 nvm을 사용하지 못 하는 상황 이었다. 1. nvm 설치 brew install nvm 2. 사용하는 쉘스크립트 설정 vim ~/.zshrc export NVM_DIR="$HOME/.nvm" [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # .. 2023. 1. 21.