목록전체 글 (772)
컴공생의 다이어리
[nGrinder] docker-compose로 환경 구성하기네이버에서 만든 부하 테스트 툴인 nGrinder를 로컬에 설치하지 않고 도커 환경으로 설정하고 싶다는 욕심을 품게되며.. 예상보다 긴 싸움을 하게되었다. 이 글에서는 그 결과에 대한 핵심 내용을 정리하고자 한다. 이 글은 24.12.01 기준 실리콘 맥 기준으로 작성된 글이기 때문에 다른 환경에서는 제대로 동작하지 않을 가능성도 있습니다. 최종 결과물을 미리 공유합니다.https://drive.google.com/drive/folders/1OIv5V3Ln4872Wc-aAZwhBD_HZE-geTct?usp=sharing Code-Snippet/Testing/Performace-Test/ngrinder at main · CodeDiary18-St..
[GitHub Action] workflow 재사용하기GitHub Action 워크플로우를 작성하다 보면 동일한 프로세스의 워크플로우가 반복되는 경우가 있다. 일부 로직이 변경될 때, 동일한 워크플로우를 모두 수정하거나 변경 사항을 놓치는 경우가 발생할 수 있다. 이로 인해 추가로 수정하고 커밋해야 하는 번거로움이 발생한다. 이런 불편함으로부터 워크플로우를 재사용할 필요성에 대해 느꼈고 이 글에서 워크플로우 재사용하는 방법에 대해 정리하고자 한다. workflow 재사용을 적용해볼 example 워크플로우 재사용을 적용해볼 예시는 다음과 같다. 같은 워크플로우에 client-check와 admin-check job은 실행 조건과 작업 디렉토리 설정 값을 제외한 나머지 로직이 동일하다. 재사용..
Burp Suite(버프 슈트) 설치 Burp Suite(버프 슈트)는 PortSwigger라는 회사에서 개발된 웹 애플리케이션의 침투 테스트에 사용되는 소프트웨어 보안 애플리케이션이다. 클라이언트와 서버가 통신을 주고 받을 때 전달되는 패킷을 중간에 가로채서 확인할 수 있다. 이 글에서는 버프 슈트의 설치 방법과 실행 방법에 대해 정리하고자 한다. 설치 방법 1. PortSwigger(버프 슈트 제품 회사) 홈페이지에 접속한다. Web Application Security, Testing, & Scanning - PortSwigger PortSwigger offers tools for web application security, testing, & scanning. Choose from a range..
PuTTY 출력 라인 수 늘리기 PuTTY를 실행하여 Window로 이동 후 Lines of scrollback 부분에 출력하고자 하는 라인 수로 변경하면 출력 라인 수를 변경할 수 있다. 방금 변경한 출력 라인 수 설정을 일시적으로 사용하는 것이 아닌 기본 설정으로 사용하고 싶다면 Session으로 가서 아래와 같이 Default Settings를 클릭 후 Save 버튼을 눌러 설정을 저장해주면 된다.
[SQL] WITH 절 WITH 절은 복잡한 쿼리문에서 반복되는 서브쿼리를 임시 테이블처럼 활용할 수 있는 가상 테이블의 개념이다. 일종의 이름을 붙인 서브쿼리라고 할 수 있다. 주요 RDBMS(MySQL, Oracle, Postgresql...)에서 제공하는 기능이다. WITH 절을 사용하면 반복되는 블록을 재사용함으로써 코드 가독성을 높일 수 있으며 실행 속도 시간을 최적화할 수 있다. WITH 절은 아래와 같이 별칭(서브쿼리의 이름)을 지정하고 별칭에 해당하는 쿼리문을 지정해주면된다. WITH 별칭1 AS (SELECT 문), 별칭2 AS (SELECT 문) ... SELECT FROM 별칭1, 별칭2 ...; # example WITH LIST AS ( SELECT * FROM TEST_TB WH..
[Oracle] 오라클 실수로 삭제 후 커밋한 데이터 복구 - AS OF TIMESTAMP 최근 실수로 데이터를 삭제하고 커밋(commit)해버려 엄청 당황스러웠던 일이 있었다. 어떻게 복구할 수 있을까 찾던 중 AS OF TIMESTAMP 를 활용하여 복구하는 방법에 대해 알게 되었고 그 방법에 대해 이 글에 정리하고자 한다. FlashBack은 DB에서 데이터 수정 및 삭제를 하고 커밋을 한 이후더라도 특정한 시간이나 특정 시점으로 되돌릴 수 있는 기능이다. Oracle 9i 이후부터 지원되는 기능으로 잘못된 DML operation으로 인한 복구를 쉽게 할 수 있다. FlashBack 기능을 통해 AS OF TIMESTAMP를 활용하여 삭제 전 데이터를 조회할 수 있으며 이를 활용하여 데이터 복구가..
@Profile 빈이나 컴포넌트에 프로필을 구분하여 빈을 로드하고 싶은 경우 @Profile을 활용하면 된다. 아래와 같이 @Profile을 통해 프로필(profile)이 active될 때 어떤 빈 혹은 컴포넌트를 등록할지 결정할 수 있다. @Configuration @Profile("prod") public class ProdConfig{ @Bean public DataSource dataSource(){ // ... 생략 } } @Configuration @Profile("dev") public class DevConfig{ @Bean public DataSource dataSource(){ // ... 생략 } } 프로필 이름 앞에 NOT 연산자인 !를 접두사로 붙여 프로필에서 제외시킬 수 있다. ..
[Infra] 스케일 업(Scale-up), 스케일 아웃(Scale-out) 서버의 용량이나 성능을 높이기 위해서 인프라를 업그레이드 하는 방법으로 스케일 업과 스케일 아웃이 있다. 스케일 업(Scale-up) 기존 서버의 사양을 업그레이드해 시스템을 확장하는 것 추가적인 네트워크 연결없이 사양만 증강하고 한 대의 서버를 관리하면 되기 때문에 비교적 간단 성능 향상에 따른 비용부담이 큼 단일 서버이기 때문에 서버 교체시 다운타임 발생 및 장애 발생시 큰 타격 하드웨어적인 예) 성능이나 용량 증강을 목적으로 하나의 서버에 디스크를 추가하거나 CPU나 메모리를 업그레이드시키는 것 소프트웨어적인 예) AWS의 EC2 인스턴스 사양을 micro에서 small, small에서 medium 등으로 높이는 것 스케일..
[MySQL] 한번에 여러개의 데이터 삽입(insert) 첫번째로 VALUES 로 아래와 같이 여러 데이터를 한번에 삽입하는 방법이 있다. INSERT INTO TEST (col1, col2, ...) VALUES ('v1', 'v2', ...), ('v1', 'v2', ...), ... ('v1', 'v2', ...); 두번째로 SELECT 문을 활용하여 SELECT 된 결과를 삽입 방법이 있다. 여러 테이블의 결과를 단일 테이블에 저장하거나 하나의 테이블의 일부 컬럼을 조회하여 저장하는 경우에 활용된다. INSERT INTO TEST SELECT * FROM TEMP WHERE 조건; SELECT INTO TEST SELECT A, B, C, D FROM TEMP WHERE 조건;
[AWS] 예산(Budgets) 제한 설정 AWS에서 청구서가 날아와 '왜 이런 금액이 청구되었지?' 하고 갑작스럽게 놀라기 전에 미리 요금 폭탄을 예방할 수 있는 방법에 대해 소개하고자 한다. 바로 AWS의 예산(Budgets) 설정 서비스이다. 우선 AWS console에서 Budgets를 검색 후 들어간다. 아래와 같이 나오면 예산 생성 버튼을 클릭한다. 다음과 같이 예산 유형을 선택하면 된다. 프리티어 서비스로만 이용하고 싶은 경우 제로 지출 예산 템플릿을 선택시 간단하게 예산 생성이 가능하다. 조금 더 예산에 대한 구체적인 설정(예산 금액 설정, 예산 범위, 알림 임계값...)을 하고 싶다면 템플릿을 사용하지 않고 사용자 지정(고급)을 선택하여 커스텀하면 된다. 예산 생성 후 Budgets(예산..