전체 글 264

Jenkins 설치하기

젠킨스와 같은 Continuous Integration (지속적 통합)은 꼭 필요한 도구들이다. 나도 이것을 사용해봐야하고 알아야하기 때문에 처음부터 차근차근 해보고자 한다. 다행히, Tutorial 사이트가 있었다. 설치부터 시작해보자. https://www.guru99.com/download-install-jenkins.html How to Download & Install Jenkins on Windows Details Last Updated: 04 June 2021 Jenkins may be installed on either Windows or Unix platforms, but we will focus on Windows installation only. Prerequisites: Before..

Jenkins 2021.07.13

Ghidra and Angr

Angr를 사용하다보면 바이너리 분석이 필요할때가 있는데.. IDA-pro는 사용할 수 있는 환경이 아니어서 찾아보니!? NSA에서 만든 오픈 소스 도구인 Ghidra가 있었다. IDA-pro 대적하며 쉬운? 사용법과 문서를 통해 무료로! 바이너리를 분석할 수 있는 프레임워크가 있음을 알게되었다. 그러니 확인해보자 https://ghidra-sre.org/ Ghidra Getting Help Ghidra provides context-sensitive help on menu items, dialogs, buttons and tool windows. To access the help, press F1 or Help on any menu item or dialog. Visit our Wiki Issue Tr..

python/angr 2021.07.08

[Angr] angr Window 설치 및 Pycharm 설정

1. Angr https://github.com/angr/angr angr/angr A powerful and user-friendly binary analysis platform! - angr/angr github.com Angr는 바이너리 파일 분석을 위한 도구이다. 자세한 내용은 오픈 소스 홈페이지에서 확인할 수 있다. angr의 문법들과 API를 공부하면서 파이썬을 어떻게 사용해서 개발할지에 대해 정리하고자 한다. 바이너리 분석 파일이기 때문에 CTF등의 해킹? 대회에서 많이 사용되는 분석 도구로 문제 해결된 여러 글들을 볼 수 있다. angr와 관련된 플러그인 오픈 소스로는 angrgdb, angr-management 등 다양한 오픈소스 활동이 진행중이다. documentation과 angr b..

python/angr 2021.07.02

[python] Pycharm Git / worktree

대부분 IDE에서는 Git 기능을 함께 제공해주고 있다. Visual Studio 툴에서도 Git 기능을 제공하지만, 필자는 자주 사용하지 않아 나중에 공부하겠지만 파이참에서는 사용할 수 있는 GIt 기능을 알아보자. 1. git worktree add 먼저 기본 프로젝트 저장소가 있다고 가정하자. 급하게 처리하거나 이곳에서 개발을 진행하여 원본을 건드리지 않고 개발하는데 사용하기 좋다. 이같이 add 명령어와 -b [복제할 경로]로하면 새로운 브랜치가 생성되고 해당 브랜치는 바로 접근할 수 없다. 파이참에서 해당 경로로 프로젝트를 새로열면 바로 생성한 브랜치와 가져온 가져온 프로젝트를 확인할 수 있다. 최근 worktree를 사용해보면서 디렉토리를 삭제하고 branch가 삭제안되는 문제가 있는데 해결방..

python 2021.06.30

[Python]Pycharm 플러그인

파이썬 언어로 개발을 할때 가장 많이 사용하는 툴은 Pycharm이라 생각한다. 인텔리제이 IDE는 언제나 부가 기능들을 많이 알면 좋을 것 같다. 최근에 많이 사용하고 알게된 내용을 정리해본다. Market Place market place의 여러 플러그인들을 확인하는 방법은 File -> Setting -> Editor의 Plugin에서 확인할 수 있다. 또는 Ctrl+Shift+N을 열어 'All'로 들어가 'market place'를 입력하면 확인할 수 있다. Ctrl+Shift+N 명령은 파일, 심볼, 등을 모두 찾을수 있는 명령어니 알다두면 좋다. 위와 같이 확인할 수 있다. 1. Thema / Matarial thema UI https://plugins.jetbrains.com/search ..

python 2021.06.29

Tortoise git / SVN

Tortois SVN Tortois SVN은 주소를 사용하여 원격으로 저장소의 폴더에 접근할 수 있다. Git이 활성화되지 않고 이전 작업 방식에서 많이 사용된다. 사용자에 따라 다르겠지만, 사설 네트워크의 저장소에 접근하여 필요한 파일을 받아올때 자주 사용한다. 자세한 내용은 아래를 참고하자 https://opentutorials.org/course/305/1967 http://lmc.cs.kookmin.ac.kr/readmore/tortoisesvn Tortoise Git Tortois Git은 Git Bash를 이용한 Command 명령어를 클라이언트 레벨에서 GUI로 쉽게 이용하게 해주는 툴이다. https://tortoisegit.org/download/ Download – TortoiseGit..

[프로그래머스] SQL 연습 -SUM,MIN,MAX,IS NULL-

이번에는 프로그래머스 SQL 연습문제의 집계 함수와 IS NULL 파트를 간단하게 알아본다. 우선 문제의 정답은 아래와 같다. 문제는 이곳에서 확인하자 programmers.co.kr/learn/challenges 먼저 집계 함수부터 보면 SUM, MAX, MIN, COUNT, AVG가 있다. 말 그대로 합, 최대, 최소, 갯수, 평균을 구해준다. SELECT 쿼리문에 사용하며 나중에 배울 GROUP 절에서 사용할 수 있다. 물론 이 집계 함수를 사용할때 테이블의 자료형을 보고 사용할 수 있도록 하자. 마지막 문제에 DISTINCT 라는 키워드가 있는데 이는 중복을 제거하는 키워드이다. 한 컬럼에 대해서 중복을 제거할 수 있다는 것을 알아두면 유용할 것이다. 다음은 NULL 데이터에 대한 처리를 하는 예..

[프로그래머스] SQL 연습 -SELECT-

SQL 쿼리를 어쩌다 연습하게 되서 이곳에 정리하고자 한다. 프로그래머스 SQL Kit 고득점에 총 6개가 있는데 푼것을 기준으로 한개 카테고리씩 정리한다. 우선 전체 문제에 대한 정답은 아래와 같다. 문제는 이곳에서 확인하자 programmers.co.kr/learn/challenges 쿼리에 질문은 SELECT로 하는 것은 모두가 알고 있을것이다. SELECT *를 통해 모든 Collum을 조회할 수 있고 필요한 컬럼만을 조회할 수도 있다. SELECT [컬럼명] (as) [이름] 으로 SQL 출력에서 컬럼 이름을 바꿀수도 있다. FROM 절을 통해 어떤 테이블을 사용할지 지정하고 이후로, WHERE 등을 이용한 조건을 사용할 수 있다. WHERE 절은 예시와 같이 사용하며 != 를 포함하여 AND ..

[C/C++] Templete

원문은 https://modoocode.com/에 잘 정리되어 있다. 모든 내용의 출처는 이곳이다. 원문내용을 보고 내용을 내 방식에 정리한 것이며, 원문의 출처에 자세하게 있다. 템플릿 템플릿이란 사용자가 원하는 타입을 넣어주면 알아서 코드를 찍어내는것이다. C++에서 템플릿은 아래와 같이 선언하고 사용할 수 있다. 여기서는 List 클래스에 대한 템플릿을 명시하고 있다. 이렇게 정의한 템플릿의 인자에 값을 전달하기 위해서는 List 변수이름 과 같이 안에 알맞은 타입을 사용하면 된다. T에 안에 있는 값을 템플릿 클래스가 받는다. 그리고 클래스 탬플릿에 인자를 전달해서 실제 코드를 생성하는 것을 클래스 템플릿 인스턴스화라고 한다. 아래는 코드의 예이다. 템플릿은 템플릿 특수화를 통해 일부 경우에 대해..

C , C++, C# 2020.08.11

[Spring] REST API 기본

REST API.. 많이 들어본 내용이다. 몇년전 기업 시험에서도 본 내용으로 기억한다. 여기서 복습하고 Spring으로 간단한 예제 코드를 작성해보자 REST(Representational State Transfer)는 하나의 URI가 고유한 리소스를 처리하는 공통 방식이다. 우린 웹 페이지에서 /page/112 와 같은 주소를 본적이 있다. 이것은 page의 112번째 글을 의미한다. 전송 방식을 나타내는 method 속성의 값에 따라 리소스에 대한 추가 작업을 요청할 수 있다. 이 API는 많은 기업에서 사용하고 있다. 스프링 4버전에서는 @RestController 애너테이션으로 REST 방식의 데이터 처리를 지원한다. 새로운 스프링 프로젝트를 생성하고 pom.xml을 통해 스프링 버전을 업그레이..