'java' 카테고리의 다른 글
bit AND 연산 구현 (0) | 2021.08.19 |
---|---|
from idx to idx 설정 (0) | 2020.04.07 |
확률을 퍼센트로 줘서 랜덤하게 뽑기 (1) | 2018.01.18 |
Intellij Custom VM Option 넣기 (0) | 2017.06.16 |
JUnit Test property 주입 하기 (0) | 2017.04.26 |
bit AND 연산 구현 (0) | 2021.08.19 |
---|---|
from idx to idx 설정 (0) | 2020.04.07 |
확률을 퍼센트로 줘서 랜덤하게 뽑기 (1) | 2018.01.18 |
Intellij Custom VM Option 넣기 (0) | 2017.06.16 |
JUnit Test property 주입 하기 (0) | 2017.04.26 |
터미널 실행 후
if ! [ -f ~/Library/KeyBindings/DefaultkeyBinding.dict ]; then mkdir -p ~/Library/KeyBindings && echo '{"₩" = ("insertText:", "\`");}' > ~/Library/KeyBindings/DefaultkeyBinding.dict; fi
vi 공백 라인 삭제 (0) | 2020.07.22 |
---|---|
Docker 용어정리 (0) | 2020.05.29 |
윈도우에서 열린 포트 확인, 닫기 (0) | 2018.08.10 |
mac os Sierra 업데이트 후 원화 표시 문제 해결 (0) | 2017.10.11 |
랜섬웨어 blcok 명령어 (0) | 2017.05.15 |
javadoc 으로 작성된 메소드 주석에 있는 에러의 경우
빌드는 되지만 괜히 신경쓰이고 잡기는 귀찮다. (내가 만든것도 아닌데..)
이럴때는 아래의 스샷처럼 해당 에러를 체크해제 해주자.
java 1.7 적용 할때 컴파일러 에러 발생시 (0) | 2014.03.10 |
---|---|
the resource is not on the build path of a java project (0) | 2014.02.10 |
이클립스 단축키 설정 (1) | 2014.01.21 |
이클립스 커버리지 측정 도구 (0) | 2013.09.09 |
코드 템플릿 적용 (0) | 2013.08.12 |
(str.replace(/[^0-9]/g, '').+ "").replace(/.(?=(?:.{3})+$)/g, '$&,'))
+ str.replace(/[0-9]/g, ''); //숫자 [,] 변환 + 문자
숫자 세자리 콤마 후 문자 숫자 합치기
SDK 도입과 활용에 대한 이해 (0) | 2019.03.04 |
---|---|
url 파라메터 부여 (0) | 2018.09.27 |
pos 에 다다를때까지 sleep 명령 걸기 (0) | 2018.01.15 |
javascript deep copy (0) | 2017.03.03 |
속도개선을 위한 PULL 방식의 화면 구성 (0) | 2016.12.02 |
도메인 규칙을 객체 지향 기법으로 구현하는 패턴
밸류타입은 불변으로 구현한다.
Dependency Inversion Principle
도메인 객체를 영속화 하는데 필요한 기능을 추상화
관련한 모델을 하나로 모아 복잡한 모델을 관리하는 기준을 제공
모델의 복잡도가 하향한다.
실제 사용자가 원하는 기능을 제공하는것은 응용영역에 위치한 서비스이다.
장점 : 한눈에 들어와서 코드의 가독성 증가
단점 : 코드의 응집력약화, 알아보는데 분석이 필요하다.
관련없는 서비스, 코드가 뒤섞이는것을 조심해야 한다.
클래스의 크기(줄 수)가 커질수 있다.
분리하는게 좋음에도 억지로 끼워넣게 된다.
HttpServletRequest 나 Session 을 주고받지 말자.
도메인 서비스를 별도로 구현한다.
선점 (Pessimistic) 비선점 (Optimisitic)
Command Query Responsibility Segregation, 명령을 위한 모델과 상태를 제공하는 조회를 위한 모델을 분리하는 패턴
개발자를 위한 코드리뷰 (0) | 2020.06.23 |
---|---|
객체지향적 사고를 가져야 하는 이유 (0) | 2016.02.05 |
Java Design Pattern 총 정리 (0) | 2014.07.01 |
Facade Pattern - 퍼사드 패턴 (0) | 2014.07.01 |
Bridge Pattern - 브릿지 패턴 (0) | 2014.07.01 |
# pip install moviepy
test.py
python 파일 한글 깨짐 (0) | 2018.07.04 |
---|---|
파이썬 GC (0) | 2018.02.22 |
python package update all (0) | 2017.02.26 |
python day 로 for each while (0) | 2017.02.25 |
리눅스 서버 비밀번호 변경 스크립트 (0) | 2022.12.20 |
---|---|
vi 공백제거 :g/^$/d (0) | 2017.08.09 |
Mysql DB 덤프 쉘 스크립트 (다수 테이블) (2) | 2016.04.29 |
bad superblock on /dev/sdb1 (0) | 2014.11.19 |
top 5초마다 프로세스 사용량 파악 (0) | 2014.02.11 |
<<truffle 셋팅, 업로드>> (맥)
[환경설치]
# npm install -g solc@[version] ## solidity 버전에 맞는 다운로드
[abi, bin 파일 생성]
# solcjs -o ./deploy/ --bin --abi --optimize CustomSolidity.sol --overwrite
[web3j ~.java 파일 생성]
# web3j truffle generate --javaTypes ./build/contracts/CustomSolidity.json -o [project-src]/src/main/java -p [package-name]
[truffle 을 사용한 solidity 배포]
-truffle.js 파일에 호스트와 배포정보가 입력되어있어야 한다.
# truffle migrate --reset --network development
# truffle compile --all
docker 를 활용한 private test net 운영 (0) | 2019.02.21 |
---|---|
Solidity 정리 (0) | 2019.01.30 |
블록체인 정리 (0) | 2018.11.02 |
블록체인 용어 정리 (0) | 2018.10.26 |
CORS (Cross-Origin Resource Sharing) 비교적 최근 브라우져는 보안 상의 이유로 외부 출처의 컨텐츠를 가져오는데 제약을 둔다. 외부 사의 컨텐츠를 사용하는 중계서비스 의 특성상 이는 감수해야 할 이슈이며, 이를 회피하기 위해 외부사는 SDK를 사용하여 본 서버 와 통신을 한다.
중계서비스의 특성 상 외부 게임을 내부로 런칭 한다. 테두리에는 중계사, Portal 이 있고, 내부에 컨텐츠 웹게임이 노출되는 형태로 제공한다.
부모창의 송수신
$(document).ready(function() {
//addEventListener 로 자식창에서 발생하는 이벤트를 해당 function 으로 받겠다는 선언을 한다.
window.addEventListener('message', _receiveMessage, false);
});
// 수신 :: 이벤트 발생시 실행시킬 callback function 을 지정한다.
var _functions = {
'matchedFunction' : _matchedFunction
};
function _receiveMessage(event) {
var postMessageData = event.data;
if (!postMessageData) {
return;
}
var targetSrc = document.getElementById("gameIFrame").src;
if (targetSrc === undefined || targetSrc.indexOf(event.origin) !== 0) {
return;
}
var postMessageDataObject = _parseRequest(postMessageData, event.origin);
if (!postMessageDataObject.header) {
return;
}
var functionName = postMessageDataObject.header.functionType; // 호출할 function name
_functions[functionName](postMessageDataObject); // 실행할 function
}
function _matchedFunction(postMessageData) {
var ver = postMessageData.head.version;
$.ajax({
url: "/sdk/" + ver,
type: 'POST',
data:JSON.stringify(postMessageData),
dataType: "json",
timeout: 5000,
contentType: "application/json; charset=utf-8"
}).done(function(response) {
document.getElementById("gameIFrame").contentWindow.postMessage(response, postMessageData.body.requestOrigin);
}).fail(function(err) {
console.log(err);
});
}
// 송신 :: 서버를 호출해 받은 response 를 자식 iframe 에 전송한다.
document.getElementById("gameIFrame").contentWindow.postMessage(response, postMessageData.body.requestOrigin);
// 우선 sdk 를 import 한다
<script src="/js/sdk/sdk.js"></script>
// 선언
var sdk = new SDK();
// 송신 :: startFunction의 parameter 에 송신할 정보를 넣는다.
// 수신 :: callbackFunction 에 수신할 정보와 처리할 방법을 넣는다.
sdk.startFunction(document.getElementById('param1').value, callbackFunction);
function callbackFunction(data, err) {
if (!err) {
alert(data);
}
};
javascript 정규식 숫자 세자리 콤마 후 문자 숫자 합치기 (0) | 2019.07.11 |
---|---|
url 파라메터 부여 (0) | 2018.09.27 |
pos 에 다다를때까지 sleep 명령 걸기 (0) | 2018.01.15 |
javascript deep copy (0) | 2017.03.03 |
속도개선을 위한 PULL 방식의 화면 구성 (0) | 2016.12.02 |
docker 를 활용한 private test net 운영
[구성]
#{ipaddr} 에 geth-contract-dev docker 구성.
>sudo docker exec -it geth-contract-dev bash
> ./root/geth/geth-start.sh
[접속]
>geth attach rpc:http://{ipaddr:port}
eth 환경에서 smart contract 를 올려보자 truffle 셋팅, upload (0) | 2019.04.02 |
---|---|
Solidity 정리 (0) | 2019.01.30 |
블록체인 정리 (0) | 2018.11.02 |
블록체인 용어 정리 (0) | 2018.10.26 |