전체보기(195)
-
CSRF
CSRF란 CSRF의 개념 CSRF(Cross Site Reuqest Forgery)란 웹 사이트의 취약점을 이용하여 사용자가 의도하지 않는 요청을 송신하도록 하는 공격을 의미합니다. 이는 http프로토콜의 stateless 특성으로 인해 특정 일련의 요청들에 대한 상관관계를 특정할 수 없다는 취약점을 이용해 공격합니다. 세션 유지 등에 사용되는 정보의 조건만 만족한다면 마치 피해자가 요청을 보낸 것처럼 송신되기 때문에 가능합니다. 이 공격 수법은 결과적으로 피해자가 의도한 요청과 동일한 과정으로 진행되므로 공격자에 대한 추적이 어려울 수 있으며 피해자에게 인가된 범위안에서만 공격이 이루어진다는 특징이 있습니다. 공격 방법 CSRF 공격 방법에는 정형화된 수법이 있다기 보다는 웹에 요청을 보낼 수 있는 ..
2020.04.01 -
Mockito
Mockito란 Mockito의 개념 Mockito란 단위 테스트를 위한 Java Mocking Framework입니다. 여기서 Mock이란 단위 테스트를 위한 가짜 객체를 말하는 것입니다. 즉, Mockito는 단위 테스트를 위해 Mock이라는 가짜 객체를 만들어주는 프레임워크입니다. Mockito는 Mock 객체 생성, 객체 동작을 지정 그리고 테스트 대상 로직이 제대로 수행 되었는지 확인이 가능합니다. Mockito의 다양한 기능 Mock(), @Mock Mock 객체를 만들어서 반환하는 기능입니다. import static org.mockito.Mockito.*; // mock 처리를 합니다. // Annotation, mock() Method 같은 표현입니다. @Mock List annotati..
2020.04.01 -
GitHub Webhook을 이용해 Jenkins Job을 자동 실행하기
Github에서 이벤트가 발생할 때 어떤 동작을 해야할 경우 (ex: Pull Request의 발생, 이슈 생성 등) Github에서 제공하는 Webhook을 사용해 Jenkins Job을 자동으로 실행할 수 있습니다. 당연한 이야기지만 Github에서 Jenkins Job을 호출하기 위해서는 Jenkins가 외부에 공개되어 있어야 합니다. Webhook이란 Webhook은 어플리케이션이 다른 어플리케이션에 실시간으로 정보를 제공하는 방법입니다. Webhook은 실시간으로 데이터를 가져오기 위해 꽤 자주 polling 해야 하는 다른 API와 달리 다른 어플리케이션에 데이터를 즉시 전달하므로 데이터를 바로 얻을 수 있습니다. Webhook의 유일한 단점은 처음에 Webhook을 설정하는 어려움입니다. W..
2020.03.31 -
Maven Profile
Maven Profile란 Maven Profile란 특정 Build 환경에 맞춘 리소스의 재배치 및 환경에 대한 옵션 설정들을 실행할 수 있게 하는 기능입니다. 일반적으로 빌드 환경을 개발 / 알파 / 스테이징 / 운영 시스템 단위로 구분한다고 했을 때, 각 단계에서 필요로 하는 설정 정보나 리소스 파일들을 배치시키는 역할을 합니다. Maven Profile 사용법 local false local true dev false dev ../../deploy alpha true alpha ../../deploy Id: prlfile Id Maven.test.skip: maven test를 skip할 것인지의 여부 Deployee.phase: 환경별 phase 정보를 구분하여, 리소스 관리를 하도록 함 Act..
2020.03.31 -
JUnit
JUnit이란 JUnit의 개념 JUnit이란 Java의 대표적인 Unit Test 도구입니다. Testing 결과를 단순히 문서로 남기는 것이 아니라 Test Class를 그대로 남김으로써 나중에 개발자에게 테스트 방법 및 클래스의 History를 그대로 넘겨줄 수 있습니다. JUnit의 특징 Unit Test Framework 중 하나 단정문으로 테스트 케이스의 수행 결과를 판별 Annotation으로 간결하게 사용 가능 @Test 메서드가 호출할 때마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어짐 Junit의 대표적인 판별 메소드들 Method내용assertArrayEquals(a,b)배열 a와 b가 일치함을 확인assertEquals(a, b)객체 a와 b의 값이 같음을 확인assertS..
2020.03.30 -
Scala Subquery vs Left Outer Join
Subquery란 Subquery란 다른 하나의 SQL문장의 절에 중첩된 select 문장입니다. Select, update, delete, insert와 같은 DML 문과 create table 또는 view에서 이용 가능합니다. Subquery는 알려지지 않은 조건에 근거한 값들을 검색하는 select 문장을 작성하는데 유용합니다. Subquery는 Main Query가 실행되기 이전에 한번 실행되고 SubQuery의 결과는 Main Query에 의해 사용됩니다. Outer Join이란 Outer Join이란 Join하는 여러 테이블에서 한 쪽에는 데이터가 있고, 한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 내용을 모두 출력하는 것입니다. 즉, 조건에 맞지 않아도 해당하는 행을 출력하고..
2020.03.30