Dynamo 내부 파티션 관련
파티션 1개는 최대 3,000 읽기 용량 단위 또는 1,000 쓰기 용량 단위를 지원할 수 있습니다. 테이블 생성시 파티션의 초기 번호를 다음과 같이 표현할 수 있습니다. ( readCapacityUnits / 3,000 ) + ( writeCapacityUnits / 1,000 ) = initialPartitions (rounded up) 예를 들어 1,000 읽기 용량 단위와 500 쓰기 용량 단위를 수용하는 테이블을 생성했다고 가정하겠습니다. 이 경우 파티션의 초기 번호는 다음과 같습니다. ( 1,000 / 3,000 ) + ( 500 / 1,000 ) = 0.8333 --> 1 따라서 단일 파티션은 테이블의 프로비저닝된 처리량 요구 사항을 모두 수용할 수 있습니다. 그러나 1,000 읽기 용량 단위 및 1,000 쓰기 용량 단위를 수용하는 테이블을 생성했다면 파티션 1개는 지정된 처리 능력을 지원할 수 없습니다. ( 1,000 / 3,000 ) + ( 1,000 / 1,000 ) = 1.333 --> 2 이 경우 테이블에는 500 읽기 용량 단위와 500 쓰기 용량 단위의 파티션이 각각 하나씩 필요합니다. 이 공식으로 한번 늘어나면 capacity를 줄여도 파티션이 줄어들지 않는다고 합니다. 그래서...
[탑코더] Single Round Match 643, Division 2, Level 1: TheKingsArmyDiv2
원본 문제 https://community.topcoder.com/stat?c=problem_statement&pm=13597&rd=16086 The King of Byteland has an army that consists of R*C soldiers. He has just arranged the soldiers into a grid with R rows and C columns. Two soldiers are neighbors if they stand next to each other in a row or in a column. Each of the soldiers is currently either happy or sad. You are given their current states in a String[] state with R elements, each containing C characters. The character state[i][j] is either ‘H’ (if the soldier in row i, column j is happy) or ‘S’ (if that soldier is sad). Happiness is contagious. Whenever two neighbors are both happy, they will tell each other jokes and after a minute that will make all of their neighbors happy as well. Here’s an example. There are two happy neighbors among many sad soldiers: {“SSSSS”, “SSHHS”, “SSSSS”} This is the situation after one minute: all...
match against in mysql
CREATE TABLE articles ( id int(11) NOT NULL DEFAULT ‘0’, title varchar(65) DEFAULT NULL, topic varchar(25) NOT NULL DEFAULT ‘’, author varchar(25) NOT NULL DEFAULT ‘’, ondate datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’, body text NOT NULL, KEY index_id (id), FULLTEXT KEY title (title,body) ) ENGINE=MyISAM DEFAULT CHARSET=utf8$$ select id,title FROM articles WHERE MATCH(title) AGAINST (‘+cvs’ IN BOOLEAN MODE) limit 1000; what you have to consier is depending on DB Engine
area
입력 : 두 자연수가 입력으로 주어지고 , 각각 가로 , 세로 길이이다.단위는 같은 것으로 가정한다.두 수는 1000 을 넘지 않는다. 출력 : 직 사각형의 넓이를 출력한다. a,b = map(int,raw_input().split()) print a*b
Webhacking.kr 21번 문제
21번 문제는 “BLIND SQL INJECTION” 관련 250 스코어 문제다. BLIND SQL INJECTION 관련해서는 블로그에 몇개 포스팅 해둔게있다. 개념이 잘 안잡힌다면 전에 작성했던 게시물을 찾아보길바란다 https://www.owasp.org/index.php/Blind_SQL_Injection Blind SQL (Structured Query Language) injection is a type of SQL Injection attack that asks the database true or false questions and determines the answer based on the applications response. This attack is often used when the web application is configured to show generic error messages, but has not mitigated the code that is vulnerable to SQL injection. 쉽게 요약하자면, sql injection은 DB구조를 알아야 저극적인 공격이 가능하다. 반면에 blind sql injection 은 _입력/제출한 값의 서버측의 응답을 통해서 DB내용을 거꾸로 유추_하는 방법이다. no 파라미터 값에 1,2 이외에 값을 대입했을 때 결과는 0이고, 1,2의 경우는 결과가 1이다. 그 먈은 즉, 해당 두개의 row가 있다는 것을 유추해볼수있다. 서버에서는 아래와 같이 쿼리를 보낼 것 이다. SELECT * FROM table name WHERE no=$_GET[no]; 현재 id,pw값을 null 값으로 요청했다, 이제 두개...
OSX 구조를 이해하면서 배우는 Objective C
저자 오기하라 타케시(荻原 剛志)는 오사카 대학 대학원 기초공학연구과 수료. 공학 박사. 오사카 대학 정보 처리 교육 센터에서 NEXT 컴퓨터로 교육용 계산기 시스템 도입에 종사했다. 그 후, 나라 첨단과학 기술대, 코베 대학, 코치 공과대학, 오사카 대학을 거쳐 2008년부터 쿄토 산업대학 컴퓨터 이공학부 교수. 소프트웨어 개발 방법에 관련 연구 및 심층 암호화를 연구했다. TOYVIEWER, TYPIST 등 국제적으로 호평받는 MAC OS X용 소프트웨어 개발자이기도 하다. 신슈 출신 CHAPTER 1 객체 기반 소프트웨어 작성 1.1 객체 개념 1.2 모듈과 객체 1.2.1 소프트웨어 모듈 1.2.2 독립성 높은 모듈 1.2.3 모듈 정보 은폐 1.2.4 클래스 정의와 인터페이스 1.2.5 메시지 송신 구현 CHAPTER 2 OBJECTIVE-C 프로그램 2.1 객체와 메시지 2.1.1 메시지 표현식 2.1.2 메시지 셀렉터 2.1.3 인스턴스 생성과 초기화 2.2 클래스 정의 2.2.1 클래스 인터페이스 2.2.2 클래스 구현 부분 2.2.3 클래스 정의 예제 2.3 컴파일 2.3.1 간단한 컴파일 방법 2.3.2 분할 컴파일 2.4 프로그램 작성법 2.4.1 하이브리드 언어 2.4.2 C 함수 이용 방법 2.4.3 정적 변수 정의...
[MySQL] length() vs char_length()
LENGTH function returns the length of the string measured in bytes. CHAR_LENGTH() returns the length of the string measured in characters. 1. LENGTH() : 길이를 bytes로 나타낸다. SELECT LENGTH(‘한글’) -> 6 SELECT LENGTH(‘abc’) -> 3 2. CHAR_LENGTH() : 글자의 수를 나타낸다. SELECT CHAR_LENGTH(‘한글’) -> 2 SELECT CHAR_LENGTH(‘abc’) -> 3 3. BIT_LENGTH() : 길이를 bit로 나타낸다. SELECT BIT_LENGTH(‘한글a’) -> 56 SELECT BIT_LENGTH(‘한글’) -> 48
AlphaGo 알고리즘 요약
http://www.slideshare.net/zenithon/alphago?from_m_app=ios
Analysis of Algorithms
알고리즘에 대해 전반적으로 학습한다. 알고리즘이란 어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정을 기술한 것이다. 알고리즘을 설계하기 위해서는 우선 해야 할 작업을 명확하게 명시해야 한다. 설계하려는 알고리즘이 “무엇을”하는지를 입력과 출력에 의해 명시할 수 있다. 본 강의에서는 알고리즘 분석에 기초가 되는 수행시간, 표기법 등을 학습한다. 강의자 : 챨스 E. 라이서손 제공자 : MIT OCW
Webhacking.kr 20번 문제
20번 문제는 200점 짜리 스코어이고, 개인적으로 쉽게 풀이했던 문제입니다. 난이도가 낮아서 잠깐 쉬는 문제라고도 할 수 있겠습니다. 문제에 들어가면 폼이 하나보입니다. 해당 폼에는 nickname, comment, code 인풋박스가 보이고 code옆에는 리로드할때마다 변하는 값이 있습니다. 상단에 time limit : 2라고 기재되어있습니다. 추가로 st라는 쿠키 값이 생겼고 해당 값에는 타임스탬프 값(st=1459669654;) 이 들어있습니다. submit 했을 때, ck라는 함수가 실행됩니다. 1 2 3 4 5 6 7 8 9 function ck(){ if(lv5frm.id.value==””) { lv5frm.id.focus(); return; } if(lv5frm.cmt.value==””) { lv5frm.cmt.focus(); return; } if(lv5frm.hack.value==””) { lv5frm.hack.focus(); return; } if(lv5frm.hack.value!=lv5frm.attackme.value) { lv5frm.hack.focus(); return; } lv5frm.submit(); } Colored by Color Scripter cs 이를 통해서 우리는 2초안에 저 값들을 모두 입력하고 submit 해야한다는걸 알 수 있습니다. 해당 값들을 대입할 임의에 값들을 적고 리로드와 동시에 ck 함수를 실행, 클리어
Webhacking.kr 19번 문제
150 점 짜리 스코어라서 되게 가벼운 마음으로했는데, 좀 시간이 걸렸다. 저녁에 잠시 코드를짜다가 이전에 연재하고있던 문제풀이가 생각나서 급하게 풀어보았다. 다소 내용이 짧을수있고, 오타가 많을수있다는 점 미리 양해부탁한다. 19번 문제에 들어가면 작은 인풋박스와 제출버튼이 보인다. 아무값이나 대입하면 해당 대입한 값으로 user_id라는 쿠키값이 생긴다. serid=MjUxMGMzOTAxMWM1YmU3MDQxODI0MjNlM2E2OTVlOTEwY2MxNzViOWMwZjFiNmE4MzFjMzk5 ZTI2OTc3MjY2MTlkZDRlNDYxMjY4YzgwMzRmNWM4NTY0ZTE1NWM2N2E2Y2ZjZDIwODQ5NWQ1NjVlZj Y2ZTdkZmY5Zjk4NzY0ZGE0YjQzYjBhZWUzNTYyNGNkOTViOTEwMTg5YjNkYzIzMQ%3D%3D; 대입한 값은 ‘hax0r’ 이라는 문자다. 저 쿠키값을 admin으로 변조한다면 이 문제를 해결할수있다. base64 에 대한 지식있는 사람이라면 해당 값이 base64 인코딩된 값이라 유추할수있다. 내가 이전에 base64관련해서 개념 정리해둔게있다. 해당 지식이 없는 분은 한번 읽어보아도 좋다. 물론 내 블로그글을 읽지않고 구글링 통해 위키에서 읽기를 추천한다. 나처럼 ==값으로 유추한사람이있을거다. 맞다. %3D값은 == 값 이다.(ASCII Encoding Reference 참고바람) 디코딩했을때 128자리의 값이나온다. 근데 저 값은 또 뭔가. 내가 대입한 값이 hax0r총 4자리의 수다. 해당 수와 첫 디코딩값을 나누어봤을때 32자리의 어떤 암호화가 더 되있을거라 생각할수있다. md5 만 생각나서 md5로 한 문자씩 대입하니 내 추측이 맞았다는걸 알았다. 0cc175b9c0f1b6a831c399e269772661 8277e0910d750195b448797616e091ad 6f8f57715090da2632453988d9a1501b 865c0c0b4ab0e063e5caa3387c1a8741 7b8b965ad4bca0e41ab51de7b31363a1 해당 값을 다시 인코딩하고 %3D 치환한다. 코드는 파이썬으로 짜서...
기계학습(Machine learning) 입문강의
clear python interpreter console
import os def cls(): os.system('cls' if os.name=='nt' else 'clear') # now, to clear the screen cls()
제 6회 홀리쉴드 Cykor 팀의 라이트업
제 6회 홀리쉴드 Cykor 팀의 라이트업 https://drive.google.com/file/d/0B3neqA_wWJOiWndDeF9aREdfZHc/view
ELK
ELK Elasticsearch + Logstash + Kibana Elasticsearch는 Apache의 Lucene을 바탕으로 개발한 실시간 분산 검색 엔진이며, Logstash는 각종 로그를 가져와 JSON형태로 만들어 Elasticsearch로 전송하고, Kibana는 Elasticsearch에 저장된 Data를 사용자에게 Dashboard 형태로 보여주는 솔루션이다.