전체 글 85

자바8 - 4. Stream - 1

Stream 멀티 스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있음. ex) 저 칼로리 요리 반환 후 칼로리 기준으로 요리 정렬 (기존 코드) // 400칼로리보다 작은 요리 선택 List lowCaloricDishes = new ArrayList(); for(Dish d: menu) { if(d.getCalories() < 400) { lowCaloricDishes.add(d); } } // 익명 클래스로 요리 정렬 (칼로리 순) Collections.sort(lowCaloricDishes, new Comparator() { public int compare(Dish d1, Dish d2) { return Integer.compare(d1.getCalories(), d2.getCa..

JAVA 2018.10.02

자바8 - 3. 람다

Lambda 메서드로 전달할 수 있는 익명 함수를 단순화한 것. 특징 익명 : 이름 없는 메서드 함수 : 메서드처럼 특정 클래스에 종속되지 않음. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함. 전달 : 람다 표현식을 인수로 전달하거나 변수로 저장 간결성 : 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요X ex) 기존 코드 Comparator byWeight = new Comparator() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()); } };ex) 개선한 람다 코드 Comparator byWeight = (Apple a1, Apple a2) -..

JAVA 2018.10.02

자바8 - 2. 동적 파라미터화

Behavior Parameterization 자주 바뀌는 요구사항에 효과적 대응 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미. ex) 어떤 기준으로 사과를 분류하는 메서드 (기존 방식) public static List filterApples (List inventory, String color, int weight, boolean flag) { List result = new ArrayList(); for(Apple apple : inventory) { if((flag && apple.getColor().equals(color)) || (!flag && apple.getWeight() > weight)) { result.add(apple); } } return result; } Lis..

JAVA 2018.10.02

node.js 한국 시간 구하기

서버 시간이 한국 시간과 다르면 new Date()를 찍어도 한국 시간과 다른 시간이 찍혀버린다. 검색 실력이 부족한건지 필요한 정보는 안알려주고 다른 정보만 잔뜩 알려준다. 해결책은 상당히 간단하다. 1. npm install moment // moment 설치 2. var moment = require('moment'); 3. require('moment-timezone'); 4. moment.tz.setDefault("Asia/Seoul"); 5. var date = moment().format('YYYY-MM-DD HH:mm:ss'); 6. console.log(date); var moment = require('moment'); require('moment-timezone'); moment.tz..

Node.js 2018.06.19

Docker 우분투 18.04 한글 패치 하기

Docker ubuntu 18.04를 세팅하면 기본적으로 한글이 설치되어있지 않다.(이 떄문에.. 파이선으로 크롤링 만들다 한글 안되서 엄청난 시간을 소비했다.....) 1. apt update2. apt install locales 설치 후 locale을 실행해 보면 LANG가 비어있다. 3. export LANGUAGE=ko_KR.UTF-84. export LANG=ko_KR.UTF-8 5. dpkg-reconfigure locales 많은 수의 locale이 나온다. 아마 298번이 ko_KR.UTF-8 일것이다.more을 열심히 엔터 치고298을 입력 후 엔터 치면 이런 글이 나올 것이고, 3을 입력하여 저장한다. 6. locale 명령어를 다시 쳐 보면처럼 ko_KR이 입력 된다. 한글 패치 끝

Linux 2018.05.24

Django 설치기...

Django 설치기 [환경]docker ubuntu 16.04docker ubuntu 18.04 [시행 착오]1. docker ubuntu 16.04- 파이썬 버전 3.6이 필요했으나, ubuntu 16.04에서 기본으로 제공하는 파이선 버전은 3.5임.- ppa를 활용하여 파이선 3.6을 받음.- 하지만... apt-get install을 했을 때 실패함.- 정확한 원인은 모름.- 약 40%에서 ppi -m~~~ 의 이유로 설치 실패 - 파이썬 버전 3.5로 그냥 진행함.- python3 -m myvenv venv 오류 발생- activate파일이 생성되지 않음.- python3 -m myvenv venv without-pip 로 해결하나 했으나...- django 설치를 위해 pip가 필수- virt..

카테고리 없음 2018.05.15

Solidity Tutorial

1. Payable 키워드 계약 계정 외부에서 이더를 송금 받을 수 있게 함. 즉, 계약이 A에게 송금을 받으려면 A가 호출하는 함수에 payable 키워드가 있어야함. function send() payable public { ~~ } 2. 메세지 프로퍼티 (Message Properties) msg 프로퍼티를 활용해 계약을 호출한 사람이 보낸 메시지 확인 msg 정보 정보 타입 설명 data byte 호출데이터 sender address 계약을 호출한 이더리움 주소 value uint 계약 주소로 보낸 Ether량 gas uint gas limit에서 함수를 호출하고 남은 가스 3. Transfer 함수 계약이 다른사람에게 이더를 전송. .transfer(); function buy() public ..

Blockchain 2018.04.21

티스토리 결산

11월부터 개발하며 막히는 부분을 포스팅하면서 12월 말에 티스토리 결산이라는 것에 대해 알게됐다. 얼마 남지 않은 기간에 12개의 포스터가 필요 했고, 조금만 더 채우면 결산이 가능하다는 것을 알게됐다. 기왕 개발하는거 중간 중간 막히거나, 공부하려고 찾아봤던 내용들을 정리하면서 12개의 포스터를 채웠고, 블로그를 만든지 3년만에 처음으로 결산을 받아보게 됐다. http://www.tistory.com/thankyou/2017/tistory/1712818 생각보다 깔끔하고 이쁘게 페이지가 나와주었고, 글 작성의 그래프 차트를 보니 아주 많이 미숙하다는걸 실감했다. 2018년에는 좀 더 양질의 글을 쓸 수 있게 노력해야겠다. 양질의 글을 쓸 수 있는 개발자가 될것이고, 취업에 꼭 성공하여 개발자로서의 길..

카테고리 없음 2018.01.05

Rest API vs SOAP

API (Application Programming Interface ; 응용 프로그래밍 인터페이스)응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스소스를 공개하지 않고 특정 권한으로 파일 업로드/다운로드를 할 수 있는 기능을 제공 Web API웹 애플리케이션 개발에서 다른 서비스 요청을 보내고 응답을 받기 위해 정의된 명세서 SOAP (Simple Object Access Protocol)HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜구조가 복잡하여 HTTP 상에서 전달이 무거움메시지 인코딩/디코딩 과정 등 웹서비스 개발의 난이도가 높음 구조HEADER : 반복, 보안 및 트랜잭션 ..

Server 2017.12.31