본문 바로가기
반응형

개발팁41

docker 디버깅시 유용한 명령어들 최근 docker를 사용하면서 컨테이너의 app이 정상 동작 안하는 현상이 있었는데,원인을 찾기위해 사용한 명령어들을 몇가지 정리해보았습니다.컨테이너 안 bash 실행하여 파일구조 확인하기docker exec -it [container_name] /bin/bash-i 옵션은 stdin 을 열린채로 유지한다는 뜻입니다.(해당옵션을 제외한다면, 쉘이 종료되고 아무일도 일어나지 않은것처럼 됩니다.)-t 옵션은 pesudo TTY (터미널)를 할당한다는뜻입니다.(해당옵션을 제외한다면, 비밀번호 입력할 때 비밀번호가 터미널 상에 노출되는 등 기존 터미널과 다르게 보일 수 있습니다)실행 결과 예시)[root@server test]# docker exec -it bookstack /bin/bash root.. 2024. 12. 15.
Windows에서 확장자별 파일 갯수 확인 (PowerShell) 윈도메뉴에서 powershell 을 검색하여 실행합니다.또는 아래 경로의 파일을 실행합니다.C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe그 다음, 아래와 같은 명령어를 쓰고 엔터치면 해당 경로에 대한 확장잡자별 파일 갯수 확인이 가능합니다.Get-Childitem "경로" -Recurse | where { -not $_.PSIsContainer } | group Extension -NoElement | sort count -desc아래는 명령어 입력예시와 출력 예시입니다.PS C:\workspace> Get-Childitem "D:\workspace\python" -Recurse | where { -not $_.PSIsContainer } | gr.. 2024. 11. 22.
IIS - w3wp.exe 메모리 부족에 대한 해결방안, 메모리제한 배경서버를 운영하다보면 어플리케이션 메모리 과다사용으로,서비스 중지 현상이 발생할 때가 있습니다.제가 업무로 운영하는 Windows IIS 서버에서는 이를 방지하기위해 별도의 솔루션을 통해 알람이 동작하게 되어있습니다.그런데, 최근 이러한 현상이 다량 발생되어 Windows 서버 - IIS 서버에서의 해결방안 일부를 소개하게 되었습니다.물리적 메모리(하드웨어 - RAM) 추가비용만 충분하다면 해당 방식이 가장 간편합니다.단순히 서버에 램을 추가하여 가용한 메모리 용량을 늘리는 방식입니다.IIS pool 메모리 제한비용 문제 등으로 인해 물리적으로 메모리를 추가할 수 없을때,간편히 문제를 해결할 수 있는 방안입니다.1) IIS에서 application pool을 선택합니다.한국어로는 애플리케이션 풀입니다... 2024. 11. 7.
open cover & report generator로 C# line coverage확인하기 (.net, .net framework) opencover 란?오픈커버(OpenCover)는 .NET / .NET Framework 애플리케이션의 코드 커버리지를 측정하는 도구입니다.코드 커버리지란, 프로그램이 실행될 때 실행된 코드의 비율을 의미합니다.이를 통해 개발자는 자신이 작성한 코드가 실제로 실행되는지 확인할 수 있으며, 테스트되지 않은 코드를 찾아내어 수정할 수 있습니다.report generator란?ReportGenerator는 coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov, lcov과 같이다양한 커버리지 결과파일을 사람이 읽을 수 있는 보고서로 변환합니다.이 보고서는 커버리지 비율을 보여주며, 소스 코드의 어떤 라인이 커버.. 2024. 10. 30.
.NET Framework C# NUnit 사용하기, NUnit 사용법, NUnit이란? NUnit 이란?NUnit은 .Net에 대한 단위 테스트 (유닛테스트) 프레임 워크입니다.사전세팅 : 테스트 대상 프로젝트 생성Visual Studio에서 File > New > Projet를 선택후, console app (.NET Framework) 을 선택해줍니다.프로젝트 명, 설치하려는 위치, 솔루션 명, framework 버전을 입력한 뒤, Create를 눌러줍니다. solution explorer에서 프로젝트를 우클릭 한 후, Add > New Item 을 누른 후,Caculator.cs 파일을 생성해줍니다.Calculator.cs파일 내용은 아래와 같이 작성해줍니다.단순히 더하는 기능만 수행하는 클래스입니다.public class Calculator { public int add(in.. 2024. 10. 26.
윈도우10 가상 데스크톱 사용법 윈도우 10 이 나온지 꽤 시간이 지났는데요,윈도우10 이후부터 생긴 가상 데스크톱 기능의 존재를 잘 모르시는 분들이 의외로 많아 이 기능을 소개하게 되었습니다.가상 데스크톱이란?가상 데스크톱을 한마디로 표현하면 "바탕화면의 확장"이라고 생각하면 쉽습니다.우리가 흔히 창(윈도우) 전환을 Alt + Tab만으로 이동하는데요,가상 데스크톱은 바탕화면 및 실행중인 프로그램 전체를 가상으로 분리시키는 기능을 갖고 있습니다.중요한 프로그램, 링크, 데이터를 모두 한 화면에 몰아넣지 않고 두 개 이상의 화면으로 분산할 수 있으며,마우스를 클릭하거나 키보드 단축키를 눌러 빠르게 화면 전환이 가능합니다.가상 데스크톱 사용법아래 단축키들을 모두 숙지하시고 한번 실행해보세요~Windows Key + Tab : 모든 가상 .. 2024. 10. 24.
oracle dbms_random 오라클 랜덤 값 생성하기 오라클에서는 랜덤한 값을 생성하기 위해 DBMS_RANDOM이란 패키지를 제공합니다.이 패키지 안에 있는 함수와 프로시저들을 알아보겠습니다.요약프로시저/함수설명NORAMAL 함수정규분포(가우스 분포)에서 특정한 숫자를 리턴합니다RANDOM 함수임의의 숫자를 리턴합니다SEED 프로시저seed값을 리셋합니다STRING 함수임의의 문자열을 리턴합니다VALUE 함수두 개의 숫자 파라미터 범위 내의 임의의 정수를 가져옵니다.NORAML 함수표준 정규 분포(가우스 분포)에서의 임의값을 추출하는 함수입니다.-- 프로토 타입DBMS_RANDOM.NORMALRETURN NUMBER;-- 쿼리 예SELECT DBMS_RANDOM.NORMAL FROM DUAL;-- 출력 예-- 1.0286383016781971869365.. 2024. 10. 22.
오라클 쿼리 성능향상을 위한 sql 구문 작성 가이드 컬럼 select시 * 를 사용하지 않고, 불필요한 열을 참조하지 않는다.을 사용할 경우, 모든 컬럼을 fetch 하는데 불필요한 메모리가 소요될 수 있습니다.또한, count() 의 경우에도 count(1) 이나 count(col1) 처럼 작성하도록 합니다.--수정 전 SELECT * FROM tbl1; --수정 후SELECT col1, col2 FROM tbl1;Bind 변수 사용bind변수를 사용하지 않고 SQL을 작성하면,각각 다른 SQL로 인식되어 수행 시마다 매번 각 SQL을 파싱/옵티마이징등을 통해 실행계획을 생성해내는 등DB 부하를 추가적으로 줄 수 있습니다.-- 수정 전 SELECT col1, col2 FROM tbl1 WHERE col1 = 'A';-- 수정 후SELECT col1, c.. 2024. 10. 16.
윈도 스크린샷 꿀팁, 캡처 및 스케치, 클립보드 히스토리 캡처 및 스케치보통 캡처를 할때 캡처 도구를 많이 사용합니다.스크린샷 관련되어서 쉽고 다양한 기능을 제공하기 위해 윈도우10부터는 다른 도구도 제공하는데요."캡처 및 스케치" 라는 도구입니다.이 도구는 윈도우 단축키로 아주 간단하게 사용이 가능한데요윈도우키 + 쉬프트키 + S를 누르시면 상단에 아래와 같은 아이콘이 뜨는걸 확인할 수 있을겁니다.1번 부분에서, 왼쪽부터 다음과 같은 기능을합니다.사각 영역 캡처자유 영역 캡처윈도우 창 선택 캡처전체화면 캡처 (듀얼 모니터면 두 모니터 내용 전체가 캡처)선택을 한 후, 2번처럼 캡처하려는 영역을 선택하여 캡처할 수 있습니다.클립보드 히스토리윈도에서는 클립보드에 내용을 복사해놨던 히스토리를 저장하는 기능을 제공합니다.아래와 같은 단축키를 눌러보시면 무슨 기능인지.. 2024. 10. 14.
nmap이란? nmap 사용방법, 윈도 포트스캔, nmap 사용법 nmap이란?nmap이란, 보안스캐너 툴의 일종으로,컴퓨터와 서비스를 찾거나, 원격 컴퓨터들의 자세한 정보를 알아낼 수 있습니다.자세한 정보에는 운영 체제, 장치 종류, 운영 시간, 서비스에 쓰이는 소프트웨어 제품, 그 제품의 정확한 버전, 방화벽 등을 확인할 수 있습니다.nmap으로는 아래와 같은 기능을 수행할 수 있습니다.1) 호스트 탐지 - 네트워크상의 컴퓨터들을 확인한다. 예를 들어 ping 응답이나 특정 포트가 열린 컴퓨터들을 나열한다.2) 포트 스캔 - 하나 혹은 그 이상의 대상 컴퓨터들에 열린 포트들을 나열한다.3) 버전 탐지 - 응용 프로그램의 이름과 버전 번호를 확인하기 위해 원격 컴퓨터의 네트워크 서비스에 주의를 기울인다.4) 운영 체제 탐지 - 원격으로 운영 체제와 네트워크 장치의 하.. 2024. 10. 8.
JavaScript말고 TypeScript를 써야 하는이유 : Null 과 Undefined Javascript에서의 변수는 처음에 초기화 되기 전 undefined 형식입니다.어떤 변수는 개발자가 null 로 지정한 후뒤에서 if (someObject === null) { someObject = a; } 이렇게 초기화를 하기도 합니다.하지만 늘 생각대로 코딩이 되지는 않습니다.초기화 될 줄 알았던 코드는 초기화가 안될 수 있고객체가 반환되리라 예상했던 부분에서는 제대로 반환이 안될 수 있습니다.예를 들어 아래와 같은 javascript 코드를 살펴보겠습니다.async function getPerson() { const [row] = await conn.execute("SELECT ... ") // 여기서 문제가 발생했다면? return { name: row[0].name, age: r.. 2024. 10. 6.
JavaScript말고 TypeScript를 써야 하는이유 : 더 생산적이고 안정적인 코드 JavaScript말고 TypeScript써야 하는이유를 한 줄 요약 하면 아래와 같이 표현할 수 있습니다.TypeScript == JavaScript + 생산성 + 안정성!TypeScript는 변수의 형식을 다른 정적 컴파일 언어처럼 작성하도록 되어 있습니다.이는 어쩌면 불필요하게 타이핑을 더 해야만 한다는 것일텐데요, 예를 들어 아래코드를 봅시다.const a = 100const b = "I am Ironman."function add(c, d) { return c + d}위코드를 typescript로 작성하면 아래와 같이 type지정을 위해 키보드를 더 눌러줘야 합니다.const a: number = 100const b: string = "I am Ironman."function add(c: nu.. 2024. 10. 4.
반응형