본문 바로가기

분류 전체보기256

[Spring & Design Pattern] Spring에서 발견한 디자인패턴_template method pattern Spring Boot로 개발을 하다보니 그 중심이 되는 DispatcherServlet이 궁금해 졌었습니다. 그래서 이전에 DispatcherServlet의 전체적인 프로세스를 간략하게 정리한 [Spring]DispatcherServlet Code로 분석하기 - reqeust & response process 포스팅을 진행 했었습니다. DisaptcherServlet을 분석하던 중 다양한 Design Pattern이 사용됬다는 것을 확인했고 이를 포스팅 하고 싶어졌습니다. 오늘은 DispatcherServlet에서 사용된 디자인 패턴 중 하나인 Template method Pattern에 대해서 알아보도록 하겠습니다. template method pattern 서로 다른 유사한 컴포넌트가 있을때, 공통 .. 2019. 9. 4.
[java & ethereum] web3j를 통해 ethereum과 통신해보기 [ethereum]Ethereum 설치 및 실행 [ethereum]Smart Contract(Lottery 시스템) 제작 [ethereum]ethereum과 통신해보기 [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - basic [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - event & log [ethereum & java]web3j를 통해 ethereum과 통신해보기 [ethereum & java]Smart Contract(Lottery 시스템)과 web3j를 통해 통신해보기 - basic Smart Contract(Lottery 시스템)과 web3j를 통해 통신해보기 - event & log 저번시간까지 우리는 POST 통신을 .. 2019. 9. 2.
[Spring]DispatcherServlet Code로 분석하기 - reqeust & response process 안녕하세요. 저는 요즘 회사에서 Java로 Ethereum Client를 만들고 있습니다. 프로젝트를 진행함에 있어 Spring MVC를 사용하였는데요. 서버로 들어올때 url에 따라 분기를 쳐주는 역할을 하는 DispatcherServlet, 원리는 들어보고 알고 있었지만 이게 코드로 어떻게 구현되어 있지? 라는 생각이 들었고, 한번 파헤쳐보기로 했습니다. 오늘은 Spring MVC의 중심이라고 할 수 있는 DispatcherServlet, 그 중에서도 request를 처리하는 방법에 대해서 코드를 따라가며 분석해 보도록 하겠습니다. DispatcherServlet ? spring 공식문서에서는 DispatcherServlet을 아래와 같이 정의하고 있습니다. Spring MVC, as many oth.. 2019. 8. 30.
[ethereum] Smart Contract(Lottery 시스템)과 통신해보기 - event & log [ethereum]Ethereum 설치 및 실행 [ethereum]Smart Contract(Lottery 시스템) 제작 [ethereum]ethereum과 통신해보기 [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - basic [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - event & log [ethereum & java]web3j를 통해 ethereum과 통신해보기 [ethereum & java]Smart Contract(Lottery 시스템)과 web3j를 통해 통신해보기 - basic Smart Contract(Lottery 시스템)과 web3j를 통해 통신해보기 - event & log client에서 ehtereum을 통.. 2019. 8. 28.
[Ethereum]Ethereum의 Transaction 처리 Life Cycle 분석 안녕하세요. 많은 분들이 web3를 이용하여 Ethereum과 통신하고 있습니다. web3는 well-made 프로젝트이기 때문에 우리가 그 안에서 어떻게 돌아가는지 까지 알 필요가 없게 잘 만들어져어있습니다. 하지만 그렇기 때문에 web3에 대해서 의존적일 수 밖에 없으며 커스터마이징 하는것도 힘듭니다. 그래서 이번에 어떻게 Ethereum의 smart-conract와 transaction을 주고 받는지, 그리고 그 내용을 분석해보았습니다. Transaction이 발생할 때 보통 본인의 private Key와 Nonce값으로 먼저 Sign을 하는데 이런 부분은 이번 포스트에서는 제외하겠습니다. 궁금하신 분은 아래를 보시면 좋은 참고가 될 것 같습니다. Transaction Flow 기본 Transact.. 2019. 8. 23.
[ethereum] Smart Contract(Lottery 시스템)과 통신해보기 - basic [ethereum]Ethereum 설치 및 실행 [ethereum]Smart Contract(Lottery 시스템) 제작 [ethereum]ethereum과 통신해보기 [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - basic [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - event & log [ethereum & java]web3j를 통해 ethereum과 통신해보기 [ethereum & java]Smart Contract(Lottery 시스템)과 web3j를 통해 통신해보기 - basic Smart Contract(Lottery 시스템)과 web3j를 통해 통신해보기 - event & log 안녕하세요. 이번주는 Solidity.. 2019. 8. 21.
[ethereum]ethereum과 통신해보기 [ethereum]Ethereum 설치 및 실행 [ethereum]Smart Contract(Lottery 시스템) 제작 [ethereum]ethereum과 통신해보기 [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - basic [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - event & log [ethereum & java]web3j를 통해 ethereum과 통신해보기 [ethereum & java]Smart Contract(Lottery 시스템)과 web3j를 통해 통신해보기 - basic Smart Contract(Lottery 시스템)과 web3j를 통해 통신해보기 - event & log 이번주에는 Java를 이용하여 eth.. 2019. 8. 12.
Smart Contract(Lottery 시스템) 제작 _ 쉽게 수정 예정 안녕하세요. 2주차 진행하도록 하겠습니다. 오늘 진행할 부분은 직접 Smart Contract를 제작해보고 컴파일, 배포해보는 부분입니다. 이부분을 직접 예제를 만들어 배포해 볼까라고 생각해봤었는데요. 결론적으로 이번 프로젝트와 취지가 맞지 않아 다른 레퍼런스를 추천드립니다. Smart Contract가 중심인 프로젝트는 다음 기회에 진행하도록 하겠습니다. ^^ [ethereum]Ethereum 설치 및 실행 [ethereum]Smart Contract(Lottery 시스템) 제작 [ethereum]ethereum과 통신해보기 [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - basic [ethereum]Smart Contract(Lottery 시스템)과 통신해보기 - .. 2019. 8. 8.
[REST API]REST를 사용할 때 주의해야할 점 REST를 만든사람 : 로이필딩, 박사학위 논문 (https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) REST API : REST 아키텍처를 따르는 시스템 구성요소 Client-Server stateless cache uniform interface layered system code-on-demand (optional) —> 대부분의 요소는 잘 지켜지고 있다. ( 브라우저 같은 곳에서 지원하기 때문 ) —> Uniform interface가 잘 지켜지는지는 되돌아볼 필요가 있다. Uniform interface 제약조건 identification of resources manipulation of resources thorough represen.. 2019. 8. 4.
[ethereum] Ethereum 설치(truffle / ganache-cli) 및 실행 개론 저는 원래 메인 개발언어가 Java입니다. 그리고 이번에 BlockChain을 개발할 기회가 생겼습니다. 그리고 여러 자료를 찾아봤습니다. 그런데 Ethereum과 통신하는 Client SDK의 Reference는 대부분이 javascript기반이었습니다. 이럴수가... Java로 개발하고 싶던 저는 계속 찾아보다가 Web3j라는 Java와 Ethereum의 통신을 해주는 프로젝트를 발견했고 사용하려고 했습니다. 여거서 또 문제가 발생했습니다. 이 프로젝트가 너무 Well-made 였기때문에 바로 사용하기는 너무 어려웠고 분석이 필요했습니다. 그래서 이 OpenSource Project를 사용하기 전에 공부를 겸해서 직접 만들어 봐야겠다 싶어서 만들어본 프로젝트가 지금의 Ethereum-With-J.. 2019. 7. 25.
자바(java) 보안(SECURE) 코딩 2. 크로스 사이트 스크립트 서론 크로스 사이트 스크립트 (Cross-site Scripting)는 script 코드를 내용 등에 추가하여 해당 웹페이지를 열었을 때 해당 코드가 실행되게 하여 공격하는 기법이다. 본문의 내용에 자바스크립트 코드 등을 넣어서 접속자의 정보를 유출하는 등의 방법으로 사용될 수 있다. 1. 공격자가 웹서버에 악성 스크립트가 포함된 내용을 저장함 2. 사용자가 트정 게시물을 여는 등의 웹서버에서 행위를 발생 3. 공격자가 해당 게시물에 심어놓은 코드가 실행되어 의도치 않은 작동를 하게 된다 안전한 코딩 기법 1. 사용자가 문자열에 스크립트를 삽입하여 실행하는 것을 막기 위해 , & 등을 replace 문자 변환 함수나 메서드를 사용하여 &rlt, &rgt, &ramp, "로 치환 2. HTML 태그를 허용.. 2019. 7. 1.
Jenkins를 Windows Docker에서 쓸 때 유의사항 ! 안녕하세요. 이번에 Jenkins를 Windows의 Docker에서 쓸 때 유의사항을 공유드립니다. 만약 당신이 현재 Windows에서, 그리고 Kitematic을 이용해서 Offitial Jenkins 이미지를 Container로 설치했다면 Plugin을 정상적으로 받을 수 없습니다. 왜냐하면 이미 그 Image는 deprecated(이제 사용하지않는) 되었기 때문입니다. 우 상단에 보이는 jenkins는 현재 정상사용이 불가능하다... ㅠㅠ 왜나하면 지금 해당하는 jenkins는 deprecated 되었기 때문입니다. 그러면 어떻게 받아야 하나? vm에 접속하여 직접 받아주서야 합니다. (Oracle vm virtualMachine 등) 아래의 명령어를 이용하여 받으면 정상동작합니다. docker p.. 2019. 6. 23.