본문 바로가기

전체 글

(27)
Spring Boot 에서 JUnit5 , MockMvc 를 이용하여 JSon 응답 값 검증하기 전 포스팅으로 Spring Boot 기반에서 JUnit5 를 이용하여 테스트 진행법을 작성했다 이번에는 기존 포스팅에서 실수로 빼먹은 응답 값 유효성 검증 방법을 작성한다 GET 요청 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.result.MockMvcResultMatchers.status; import org.springframework.test.web.servlet.MockMvc; @Autowired private MockMvc mvc; @Test @DisplayName("GET 요청") public void ca..
Spring Boot 에서 JUnit5 , MockMvc를 이용하여 테스트 진행하기 Spring Boot 기반의 웹 프로그램에서 JUnit5 , MockMvc 를 이용하여 테스트를 진행하는 방법입니다 JUnit5 테스트를 위한 기본 소스 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.servlet.MockMvc; @SpringBootTest @AutoConfigureMockMvc public class ControllerTest { @Autowired private MockMvc mvc; @Test public ..
Spring Boot 도커 배포를 위해 Gitlab CI/CD 이용하기 Spring Boot 로 개발된 프로그램을 자동으로 배포하는 방법을 소개한다 예전부터 많이 사용되던 젠키스를 이용하는 방법도 있지만 최근 프로젝트가 소스 관리를 위해 Gitlab 을 이용하므로 Gitlab 에서 제공하는 CI/CD 기능을 이용해봤다 배포는 Spring Boot 의 결과물을 jar 파일로 배포 후 실행하는게 아니라 도커로 묶어서 배포 실행한다 Dockerfile 도커 설정 파일을 생성해야한다 해당 파일은 Spring Boot 로 개발된 결과물을 도커 파일로 만들 때 사용되는 설정이다 Spring Boot 는 자바 기반이므로 JDK 관련 설정과 컴파일된 jar 파일 복사, 마지막으로 jar 를 실행할 때 사용되는 명령이 포함된다 .gitlab-ci.yml git 의 마스터 브랜치의 내용이 변..
MariaDB Sequence 사용하기 꽤 오래전부터 MariaDB 에서도 Sequence (시퀀스) 가 사용 가능하다 정확히는 마리아디비 10.3 버전부터 추가된 기능이다 현재 기준으로 마리아디비는 10.6.4 가 최신 버전이고 10.7.0 으로 프리뷰 버전이 공개된 상태이다 구분) CREATE SEQUENCE [ID] WITH 1 INCREMENT BY 1 예) CREATE SEQUENCE BOMZ WITH 1 INCREMENT BY 1 실제 MariaDB 의 시퀀스를 생성하는 명령ㅇ어 예시이다 위처럼 실행하면 1부터 시작해서 1씩 증가하는 Sequence 가 생성된다 CREATE SEQUENCE [ID] WITH 4 INCREMENT 3 이렇게하면 어떻게 될까? 당연히 4부터 시작해서 3씩 증가하는 시퀀스가 생성된다 호출 시 4, 7, ..
Kanban(칸반) 시작을 위한 가이드 Kanban 을 시작하기 위한 가이드를 안내한다 그냥 쓰면 된다고 생각할 수도 있지만 뭐든 효율적으로 의미에 맞게 써야 제대로된 효율이 나올 수 있다 Kanban 가이드 1단계 칸반을 시작해야하는 목표 합의 Kanban 가이드 2단계 고객의 요청을 성공적으로 완료하기 위한 흐름 구상 Kanban 가이드 3단계 고객이 누구인지를 정의 고객이 자사의 제품을 사용하는 개인 또는 타사인가? 아니면 같은 회사의 다른 부서인가 Kanban 가이트 4단계 고객의 요청 유형을 기준으로 업무 항목을 분류 예를 들어 당장 처리해야하는 업무, 일정안에만 처리하면 되는 업무, 모든 업무를 마치고 남은 시간에 처리해도 되는 업무 등 Kanban 가이드 5단계 고객과의 미팅 한번에 모든 내용을 회의할 수도 있으며 1~2주에 한번..
XSS 공격 방지를 위한 OWASP ESAPI 이용하기 웹 취약점을 이용한 공격 중 대표적인 공격으로 XSS 가 있다 XSS 자체를 모른다면 지난 포스팅을 참고하길 바라며, 해당 글까지 찾아왔다면 당연히 XSS 를 알고있으며 대응책을 찾고있을 것이다 XSS 공격을 방지하는 방법은 여러가지가 있겠지만 오늘은 OWASP 에서 제공하는 ESAPI 를 사용하는 방법을 소개한다 OWASP 오픈소스 웹 애플리케이션 보안 프로젝트 웹 취약점 관련하여 TOP 10 을 발표하며 그에 따른 대응법도 소개한다 웹 취약점 검사툴의 검사 항목 중 거의 필수적으로 OWASP 에서 발표하는 TOP 10 에 대한 취약점 검사를 포함한다 OWASP ESAPI OWASP Enterprise Security API 아래 설명은 자바 기반의 웹에서 적용하기 위해서는 우선 OWASP ESAPI ..
칸반의 긴급 카드 프로세스 칸반에서는 업무의 종류에 따라 카드의 색을 다르게한다 보통 긴급 카드는 흰색으로 처리한다 무조건 딱 정해진 규칙은 아니므로 사용하는 조직에 따라서는 눈에 띄는 빨간색으로 해도 문제 없다 보통 칸반을 이용한 업무 프로세스를 진행한다면 보통 2주 단위로 릴리즈 계획을 세우고 2주 안에 진행해야할 업무카드를 선택한다 이때 예상치 못한 긴급 카드가 들어오면 전체적인 일정에 문제가 생기고 시간적, 심리적 여유 없이 일정이 진행되다보면 평소보다 완벽한 결과물이 나올 수가 없다 이렇게되면 또 다른 긴급 카드가 발생하고 이게 반복되다보면 긴급 카드 처리때문에 정해진 업무를 처리할 수 없는 상황에 처하게 된다 산업 공학쪽에서는 긴급 요청을 좋게 바라보지 않는다 위에서 설명한대로 계획된 일정에 변동이 생길 수 있기 때문이..
웹 취약점 XXE 공격 개요 (XML 외부 엔티티) 웹 취약점 중 XXE 공격에 대해 알아본다 XXE 란 XML 외부 엔티티를 이용한 공격이다 XXE 는 XML External Entity 의 약자이다 웹 취약점 중 하나인 XXE 공격에 대한 개요는 아래와 같다 해커가 웹서버로 XML 형식의 데이터를 전송하고 서버는 수신받은 XML 형식의 데이터 중 시스템 명령어를 수행해서 결과를 응답한다 이때 대표적으로 서버의 비밀번호를 요청하는 시스템 명령어를 수신받아 해킹할 수 있다 실제 XXE 공격시 전송하는 데이터의 형식 예제이다 이런식으로 서버로 데이터를 전송하면 서버에선 해당 XML 형식의 문구를 해석 후 /etc/passwd 를 수행하여 결과를 응답하게 된다 참고로 /etc/passwd 는 유닉스 계열 시스템의 비밀번호를 확인하는 명령어이다 그렇다면 XXE..