어플 진단의 경우 루팅/탈옥 디바이스에서 구동 여부의 항목이 존재한다. ios의 경우 탈옥 디바이스를 만들어서 테스트를 진행하는데, 간단하게 만들어보자 준비물 : 탈옥가능한 ios 버전의 디바이스, itunes / icloud 탈옥 디바이스 및 버전 : 아이폰 6(ios 12.5.5), unc0ver v8.0.2 탈옥은 ios 버전 및 프로세서에 따라서 탈옥이 되는 버전이 있고, 안되는 버전이 있다. 애플 정책 상 구버전의 ios로 다운그래이드는 사실상 거의 불가능하므로 탈옥 진행 시 이 부분을 주의깊게 확인 해야한다. 당근으로 간단하게 구버전의 ios를 지닌 디바이스를 구입 후 진행했다. +) 필자는 ios 12.5.5의 디바이스였는데, 실제 진단하는 경우 Testflight를 통해서 진단 앱을 배포를..
AWS 계정을 만들고, 기본적인 초기 설정까지 마쳤다. 이제부터 재대로 찍먹을 해보자 먼저 클라우드 시스템의 시작인 EC2를 하나 생성해보자 EC2는 Elastic Compute Cloud로, 쉽게 가상 컴퓨터라고 생각하면 편하다. 기본적으로 쓴 만큼 비용을 지불하며(프리티어는 t2.micro 1대 분량만 무료로 사용가능), IP를 할당 받아 외부에서 접속할 수 있다. 검색창에 EC2 입력해 EC2 관리 콘솔 페이지로 넘어올 수 있다. 처음 접속하면 (당연하게도)아무것도 없는 상태를 볼 수 있는데, 시작하기 전에 리전을 설정해주자 리전은 말 그대로 지역이라는 뜻인데, 여기서는 클라우드 컴퓨터의 위치라고 생각하자 먼저 내가 운영하려는 서비스가 위치할 지역을 생각해 보자. 주로 이용하는 사람이 국내위주면 국..
여느때와 같이 점검 스케쥴이 끝나고 CVE 분석하는 와중이였다. "지난번에 분석했던 CVE, AWS 환경에서도 한번 확인 해줄래요?" AWS 환경에 구축된 취약한 환경에서 CVE 공격을 했을 때 어떻게 처리가 되는지를 보고싶어 하시는 것 같았다. 이전까지 내가 생각한 AWS는 그저 남의 나라 얘기정도였다. 해킹당하면 밑도 끝도 없이 탈탈 털려서 과금 폭탄을 맞거나, 서비스마다 비용이 부과돼서 돈 관리하기 어려운 그런 개념 정도 밖에 없었다. 찍먹이라도 해보자 AWS 가입하기 우선 AWS 사이트 접속 후 계정생성 버튼으로 이동 계정 생성 창으로 넘어오면 5단계가 존재하는데, 우선 루트 사용자라는 것이 있다. 이 개념은 나중에 따로 관련 서비스 나올때 넣어 두겠다. 이메일 주소와 계정이름 입력하고 넘어가자 ..
이번에는 지난번 인사 명령에 이어 명령어를 더 추가하고 Embed에 대해서 알아보도록 하겠다. 새로 만들 명령은 주사위로, 예전 게시판 웹사이트를 보면 댓글로 많이 들어가 있었던 기능이다. @bot.command(aliases=['주사위']) async def roll(ctx, number:int): await ctx.send(f'주사위를 굴려 {random.randint(1,int(number))}이(가) 나왔습니다 (1~{number})') 3줄 남짓의 짧은 코드다. 이번 명령어는 단순히 명령어 하나만 입력받는 것이 아니라 매개변수를 하나 더 받는다 이와 같이 매개변수를 입력받고자 할때는 ctx 뒤에 매개변수 명을 써주자 @bot.command() async def repeat(ctx, *, txt)..
게임하느라 디스코드를 쓰는 중에 '봇'을 사용하는 친구가 있었다. 명령어를 써서 노래도 틀고, 디스코드 서버 관리도 하는걸 보니 꽤 재미있어 보였다. 마침 파이썬도 배우는 참이라 삘받아서 만들어 보았다. 디스코드 봇을 만드는 언어는 여러종류가 있는데 가장 많이 쓰는 언어로는 크게 2가지가 있다고 한다. Node.js와 파이썬, 이 두가지인데 필자는 Node.js를 아직 다뤄본적이 없으므로 파이썬으로 만들기로 했다. 먼저 디스코드 개발자 페이지로 로그인해서 봇을 만들어줘야 한다. (discord.com/developers/) 로그인해서 들어간 후, Applications에서 New Application Application의 이름을 만들고 생성하면 My Application에 새롭게 추가가 된다 Gener..
DDL은 Data Definition Language로 데이터베이스를 정의하는 언어이다. 데이터베이스를 생성 / 수정 / 삭제하는 명령들로 이루어져 있다. 이번에 알아볼 명령어들은 CREATE, ALTER, DROP, TRUNCATE이다. 데이터베이스는 테이블들의 집합으로 이루어져있고, 테이블들은 열과 행이 존재하는 모델로 데이터 값들이 실제로 저장되는 집합체이다. 이번에 볼 DDL의 경우 테이블의 구조를 설정하는 명령어들 이라고 정리할 수 있다. 예시로 학교 데이터베이스를 만들고 학생 정보를 담은 테이블을 만들어 보자 테이블을 만들기 전에 테이블을 담을 데이터베이스를 만들어주자 CREATE DATABASE School; USE School; 만든 School 데이터베이스를 사용하는 설정까지 마친 후, ..
MySQL은 관계형 데이터베이스 중 하나로 Oracle, MSSQL 등과 함께 오늘날 가장 많이 쓰이는 DBMS 중 하나이다. 간략한 설치과정을 보며 직접 설치해보자 실습은 VM 가상환경에서 진행했으며, OS 환경은 Ubuntu 18.04 1. 패키지 업데이트 & 업그레이드 $ sudo apt-get update && sudo apt-get upgrade 2. MySQL 설치 $ sudo apt-get install mysql-server 설치 후 sudo 권한을 사용하지 않고 mysql -u root로 접속할려고 시도하면 에러가 발생 3. MySQL 환경 설정 $ sudo mysql -u root 위와 같이 sudo 권한을 이용해 접속 한 후 root 계정의 패스워드 설정을 확인하자 mysql> use..
이번에는 기업 면접 등에서 자주 나오는 주제인 TCP와 UDP에 대해 알아보자 TCP Transmission Control Protocol, 전송을 제어하는 프로토콜로 일반적으로 IP와 함께 사용된다 연결형 서비스로 가상 회선 방식을 제공한다 가상 회선 방식 : 처음 패킷으로 최적의 경로를 고정하고, 경로가 고정되면 그 이후 패킷들은 그 경로로 고속으로 전송하는 기술 흐름 제어와 혼잡 제어 기능을 가진다 따라서, UDP에 비해 속도가 느리다 전송한 데이터의 순서를 보장한다 따라서, UDP에 비해 높은 신뢰성을 가진다 TCP는 신뢰성 있는 연결형 서비스이므로 신뢰성이 필요한 메일 / 파일 전송, HTTP 등에서 이용된다 UDP User Datagram Protocol, 데이터를 데이터그램 단위로 처리하는 ..