전체 글 477

SK ICT Tech Summit 2017 - 오프닝 및 전시회

SK ICT Tech Summit 2017위치 : 워커힐호텔 워커힐 씨어터날짜 : 2017년 11월 23일 다양한 전시가 진행됨. CCTV 영상 분석을 통한 범죄 감지 시스템- 사람을 인식하여 부딪히는 척도 등을 통해 범죄여부 판단가능 영중문 11번가- 다국어 기반의 Global 11st, 영문base의 영중문 SK플래닛 자체API를 통해 실시간 커머스번역으로 효과적인 커머스 시장을 선도하고 있음.

세미나 2017.11.23
[셔터스톡] 사진이 거부되는 이유 모음

셔터스톡 사진이 거부되는 이유 최근 셔터스톡을 시작하고 나서 약 100건 가까운 사진을 올렸지만 반 정도가 거부되었다. 왜 거부되었을까? Approval Status에 들어가면 이유를 알 수있다. 셔터스톡 사진이 거부 사유 모음길거리 음식을 찍고 올렸는데 음식을 감싸고 있는 종이에 글자가 적혀 있다고 거부신발의 브랜드 로고가 보인다고 거부영문 설명 글에 Ra-men이 들어있다고 거부(noodle 이라고 해야하나 보다)포커스가 맞지 않다고 거부트레이드마크(브랜드 로고) 가 보인다고 거부 총평 : 깔끔하고 글자가 최대한 없으며, 브랜드 로고가 보이지 않는 사진을 원한다.즉, 음식사진, 동물사진, 자연사진 등이 등록되기 쉽다. 등록 완료된 사진모음사진보러가기 --> 셔터스톡 등록 완료된 사진 들

[셔터스톡] 셔터스톡 사진 등록하기

셔터스톡으로 돈을 벌려면 사진을 등록해야 한다. 셔터스톡 사진 등록하기 #1 셔터스톡 작가 회원가입 완료작가 회원가입하는 방법 보러가기 : [셔터스톡] 사진으로 소소한 수익 내기(작가 등록하는 방법) #2 이미지 업로드 클릭 #3 적절한 이미지 업로드 #4 이미지에 대한 적절한 설명과 키워드(해쉬태그) 입력 - 모두 영어로 작성 #5 검토용 제출 #6 제출완료 이제 제출이 완료되었다! 등록이 되기 기다려보자.(보통 2일~4일 정도 걸린다.) 등록이 완료되면 이제 앉아서 연금처럼 돈을 벌 수 있다! 그런데 등록이 잘 될때도 있지만 등록 거부가 되는 경우도 있다. 왜그럴까?등록 거부되는 이유 보러가기 ----> [셔터스톡] 사진이 거부되는 이유 모음

[셔터스톡] 사진으로 소소한 수익 내기(작가 등록하는 방법)

취미로 찍는 사진으로 돈을 벌 수 없을까? 답은 셔터스톡에 있다.셔터스톡 홈페이지 : 셔터스톡홈페이지(클릭)한글메뉴 지원, 등록은 영문만 가능사진, 벡터이미지, 동영상, 음악 판매 중사진 판매 수익 구조 즉, 수익이 500달러가 넘는 순간 수익률이 극적으로 변하게 된다. 꾸준히 계속해서 올리는 것이 중요!작가 신청 및 등록 방법등록 사이트 : 셔터스톡 작가 등록 사이트(클릭) #1 이름, 이메일주소 로 가입 #2 이메일 확인 #3 주소 입력 #4 신분증 업로드 - 컨텐츠를 파는 곳이므로 저작권에 민감하다 #5 가입완료 이로써 자신이 찍은 사진들을 가지고 용돈을 벌 수 있는 기회가 생겼다! 이제 사진을 업로드하고 기다리기만 하면 앉아서 수익이 올라가는 모습만 바라보고 있으면 된다. 셔터 스톡 사진을 등록하..

구글 게임 플레이 서비스 디버깅 방법

구글 게임 플레이 서비스 디버깅Google Play Game Service(이하 GPGS)를 디버깅하다보면 나오는 무시무시한 에러가 있다. failed to sign in. please check your network connection and try again 만약 이 글을 읽는 개발자가 GPGS의 Document에 따라서 잘 개발했다면(혹은 GPGS sample app을 다운받아서 디버깅할때) 마지막 남은 관문을 넘지 못해서 나오는 오류인 것이다. GPGS는 디버깅시에 signed apk를 사용하여 디버깅해야만 한다. GPGS 디버깅 방법GPGS와 사용자의 google 계정 연결 혹은 업적과 같은 기능의 테스트를 위해서는 일반적인 Android studio의 RUN으로는 불가능하다. 해당 내용은 G..

React 기초 핵심정리 - 데이터 다루기

React에서 추천하는 데이터를 다루는 방법 redux의 시작은 view를 다루는 곳에다가 데이터까지 다루는 코드가 있는 것이 싫어서이다. 뷰는 결국, 이벤트나 데이터의 변경에 의해서 변경이 일어남. 자연스럽게 데이터에 의해서 React기반의 View부분이 다시 렌더링 될 수 있는 어떠한 장치가 있으면 좋겠다. Flux는 architecture 컨셉을 제공하는 역할을 하고, 실제 다양한 구현체가 등장했는데 대표적인 구현체가 Redux이다.(http://redux.js.org/) Redux의 원리데이터와 뷰간 직접호출을 할수도 있음.(그러나 데이터와 뷰 간의 결합도가 높다) 그림. 데이터와 뷰간 결합도가 높음 데이터와 뷰 간에 직접적인 호출을 하지 않고 이벤트가 일어났음을 알려주는 로직을 사용할 수 있음...

React 기초 핵심정리 - 개발환경 구축

React-Redux를 통한 모델다루기 왜 Redux를 사용할까? Redux는 JavaScript 어플리케이션에서 data-state 와 UI-state 를 관리해주는 도구 React 개발 환경 CLI(Command Line Interface)로 빠르게 구성하기 1. 프로젝트 준비 front-end프로젝트는 framework를 쓰기 시작하면서 복잡하다. 특히 빌드해야 할 것들이 늘어나면서 환경구성과 프로젝트 디렉토리 구조를 정리하는 것이 어려움. boilerplate라고 기본환경을 제공하는 오픈소스가 꽤 있음. url : http://andrewhfarmer.com/starter-project/ 2. React 기반 기본 환경 만들기. React Create App을 쓰자. 깔고나면 매우 clean함. ..

React를 위한 ES6 핵심정리 2

React를 위한 추가적인 ES6 문법들React를 하기위한 ES6문법 : http://voidmainvoid.tistory.com/67 14. String enhancements123startsWith() endsWith() includes()cs 15. Array enhancements ‐ for/of1234567891011var arr = [1,2,3,undefined, null, ""]; Array.prototype.getIndex = function() {}; for ( let value of arr) { console.log(value); } //function까지 노출된다.for ( let value in arr) { console.log(arr[value]); }Colored by Colo..

React를 위한 ES6 핵심정리

React를 하기 전! ES6문법에 대해 알아야한다. ES6를 모르고 한다면 여러가지 ES6문법들이 React에 종속된 문법이라고 착각할 수도 있기 때문에 ES6문법에 대한 최소한의 이해는 필수적임. 주의점 아래 여러가지 기능들은 크롬이나 사파리에서 작동은 잘 되지만, but 제대로 지원이 되지 않을 수도 있으니 Babel(Babel.io)을 사용하여 변환하는 기능을 사용해야한다. ES2015 ES6 === ES2015 (ES2016, ES2017 ..) 개선된 Javascript 문법. ES6 Browser compatibility의 휼륭한 지원. ES6를 기반으로 한 JavaScript 생태계의 확산. 1. scope enhancements ‐ let ES6 에서는 let 키워드를 사용해서 변수를 사..

유용한 Java 기반 Html Parsing Library : jsoup

jsoup jsoup는 Java HTML Parser이다. HTML parser로서 아주 편리하며 강력한 기능들을 가지고 있다. 어떤 html dom객체에 접근한다고 가정한다면 마치 jqeury를 쓰듯이 간단하게 접근가능하다. 자세한 예제는 아래에서 보이고자 한다.사이트 url : https://jsoup.org/jsoup doc url : https://jsoup.org/apidocs/ Example12Document doc = Jsoup.connect("http://en.wikipedia.org/").get();Elements newsHeadlines = doc.select("#mp-itn b a");cs 위와 같이 Jsoup객체에 connect를 사용하여 컨넥션을 맺고, get()을 통해 html ..

[iBatis] Integer isNotNull 사용하기

Dynamic SQL dynamic SQL은 ibatis를 사용하는데 있어서 매우 유용하다 파라미터의 값 상태에 따라서 여러 종류의 sql문을 변경할 수 있는데 아래 코드는 대표적인 dynamic select statement이다. 1234567 select * from ACCOUNT where ACC_ID = #Id# order by ACC_LAST_NAMEColored by Color Scriptercs 위 example은 Id 변수의 값 상태에 따라서 아래와 같은 두가지 SQL로 나올 수 있다. Id가 0보다 클 경우(존재할 경우)1select * from ACCOUNT where ACC_ID = ?cs ID가 0이거나 작을경우1select * from ACCOUNTcs 그런데 왜 Id가 존재하는지..

서블릿의 이해

서블릿의 이해 1997년 SUN사는 웹 서비스를 위한 기본 인터페이스로 서블릿을 제안했다. 또한 서블릿을 배치, 서비스하는 서버 구조로 서블릿 컨테이너의 개념을 전파하기 시작. 사용자가 원하는 비즈니스 서블릿 컨테이너에 해당 서블릿 구현을 배치라는 특별한 절차를 거쳐 등록하면 서블릿컨테이너가 네트워크 통신, 생명주기 관리, 스레드 기반의 병렬처리를 대행하겠다는 약속서블릿이란 무엇인가서블릿 : javax.servlet.Servlet 인터페이스를 구현한 것

서블릿 컨테이너을 위한 웹 애플리케이션 서버와 HTTP프로토콜의 이해

서블릿 컨테이너에서의 WAS와 HTTP웹 애플리케이션 서버의 역할웹 프로그램 : HTTP프로토콜로 통신하는 네트워크 프로그램의 일종웹 애플리케이션 서버 : 클라이언트와 서버간의 소켓통신에 필요한 TCP/IP 연결 관리와 HTTP 프로토콜 해석 등의 네트워크 기반 작업을 추상화해 일종의 실행환경을 제공원래는 Java EE 명세를 만족시키는 Java 구현체를 의미하짐나, 최근에는 개념이 일반화되면서 자바 이외의 프로그래밍 언어로 작성한 서버도 웹 애플리케이션 서버라고 부름서블릿 컨테이너여러 경량 프레임 워크(ex. struts, Spring 등)는 Java EE 정의 중 웹 애플리케이션 기술(JSP, 서블릿, Javaserver Faces, JSTL 등) 위에서 동작한다. 이 때 웹 애플리케이션 기술에 대한..

automator로 멋진 맥북 배경화면 얻기 꿀팁

automator로 멋진 맥북 배경화면 얻기automator는 맥북에 기본으로 들어있는 Macro프로그램이다. 다양한 옵션을 통해서 사용자가 원하는 입출력을 만들 수 있고, 애플리케이션(응용프로그램)으로도 만들 수 있다.이 automator을 사용하여 멋진 배경화면을 만드는 프로그램을 1분만에 만들어 보자. 준비물맥북safari1 minutesautomator 애플리케이션 만들기 맥북을 켜서 Launchpad -> 기타에 들어가면 Automator라고 귀여운 봇이 있다 클릭. 응용 프로그램을 만들어야하므로 '응용 프로그램'을 선택 많은 좋은 배경화면 사이트들이 있지만 이번에는 Unsplash.com의 api를 사용하여배경화면을 설정하고자 한다. Unsplash.com API 포스트 보러가기 safari를..

유용한 무료 사진 사이트 Unsplash & Unsplash api

무료 고해상도 이미지 사이트 Unsplash.comunsplash.com 사이트는 무료 고해상도 이미지 사이트이다. ppt를 만들거나 멋진 배경화면을 찾을 때 많이 사용하는데, 사실 이미지를 제공하는 만큼이나 강력한 API들을 제공하기 때문에 좋다고 말 할 수 있다. Unsplash Developer Unsplash developer url : https://unsplash.com/developersUnsplash simple api url : https://source.unsplash.com/Unsplash api는 24만개 이상의 무료 고해상도 이미지를 제공하며, 4만명 이상의 사진작가들의 데이터를 보유하고 있다. api는 누구나 무료로 사용할 수 있다! 아래의 simple api들을 소개하고자 한다..

안드로이드 HandlerThread 스레드 사용법

Android HandlerThread android HandlerThread는 Thread class를 상속하고 내부에서 Looper.preapare()과 Looper.loop()를 실행하는 Looper 쓰레드이다. HandlerThread는 UI와 관련없지만 단일스레드에서 순차적인 작업이 필요할 때 사용한다. Example) 상기와 같이 인스타그램에 좋아요 버튼이 있다. 좋아요 버튼을 누르면 실시간으로 DB에 반영된다고 가정하자. 개발자는 UI를 블로킹하지 않도록 별도 쓰레드에서 DB에 반영하도록 할 것이다. 사용자가 좋아요를 마구마구 바꾸기도 한다. 만약 좋아요 상태가 바뀔 때 마다 스레드를 생성(new instance and start)하거나 스레드가 스레드(get instance and star..

android targetsdkversion & minsdkversion

targetSdkVersion? minSdkVersion? maxSdkVersion?안드로이드에서 애플리케이션을 개발할 때 가장 기본적으로 설정해야 하는 manifest의 설정 인 uses-sdk에 대해 적어보고자 한다. 각각의 요소들의 값이 어떤 역할을 하는지 모르고 무작정 올리거나 내리는 경우가 많다.각 요소의 값에 따라 구동이 되는 단말의 개수가 현저하게 달라지므로, 이 요소들에 대해 자세히 알아보자. 구문123cs 포함된 위치 : android:minSdkVersion애플리케이션이 필요한 최소 API레벨을 지정하는 정수. Android 시스템이 시스템의 api레벨이 이 특성에 지정된 값보다 더 낮은 경우 사용자가 애플리케이션을 설치하는 것을 방지한다.(필수값) Example) 구분 애플리케이션 m..

Java reflection 사용시 에러 java.lang.ClassNotFoundException

Java reflection은 강력하고 Java를 더욱 효과적으로 쓸 수 있게 하는 무기이지만 아래와 같은 에러를 볼 때도 있다. java.lang.ClassNotFoundException: XXXXXX 아래 예제를 통해 어떻게 해결하는지 알아보자. Daemon.java1234567891011121314151617181920package com.reflection.example; import java.lang.reflect.Method; public class Daemon { public static void main(String[] args) throws Exception { try { Class c = Class.forName(args[0]); Method m[] = c.getDeclaredMetho..

마리아 DB 오류 org/mariadb/jdbc/Driver : Unsupported major.minor version 52.0

Spring이나 혹은 기타 JAVA 프레임워크에서 mariadb를 사용할 때가 있다. mariadb를 gradle이나 maven으로부터 dependency를 걸어서 사용하고 실행시키면 아래와 같은 메시지가 나올 때가 있다. org/mariadb/jdbc/Driver : Unsupported major.minor version 52.0 위 메시지가 나오는 이유는 mariaDB connector가 버젼에 따라서 JAVA version 지원정도의 차이가 있기 때문이다. 위 메시지는 아래와 같은 build.gradle에서 문제가 생긴것을 확인하였다. build.gradle123456789101112131415161718192021apply plugin: 'java'apply plugin: 'eclipse'app..

해외 IT 교육 사이트 소개 Team treehouse

https://teamtreehouse.com/Introduce team treehouseAbout team treehouse스크린샷. 트리하우스 홈페이지 Treehouse brings affordable technology education to people everywhere in order to help them achieve their dreams and change the world. Treehouse believes in the democratization of technical education. There are currently too many barriers, economical and psychological. 팀 트리하우스는 해외 IT 교육사이트이다. 인터넷기반으로 여러가지 IT테크..

개발이야기 2017.07.09
젠킨스 오류 pending - Waiting for next available executor

젠킨스, Jenkins젠킨스(Jenkins)는 소프트웨어 개발 시 지속적 통합(continuous integration) 서비스를 제공하는 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해 준다. MIT 라이선스를 따른다.(출처 - 위키피디아) 젠킨스 오류 pending - Waiting for next available executor 젠킨스를 실행시키려고 Build Now나 기타버튼을 누르게 되면 실제로 실행이 되지 않고 위와 같은 메시지가 뜨게 된다. 해당 메시지는 해당 젠킨스가 실행시킬수 있는 execute 갯수가 넘었을때 queue에 들어가서 기다리고 있을 때 보여주는..

DevOps/CI & CD 2017.07.06
구글 Machine Learning API 기술의 활용 - 조용균차장/강정구 대리

SPH 이번 Google I/O의 주제는 ‘인공지능 우선(AI first)’였습니다. Google은 TensorFlow를 오픈소스로 공개하고 Machine Learning API를 제공하여 인공지능 기술의 접근성을 크게 높였는데요. 로케이션 인텔리전스라는 맥락에서 머신러닝 기술이 갖는 의미는 무엇일까요? SPH R&D 팀 조용균 과장이 알아봤습니다. Context Awareness ServiceGoogle Awareness API : 위치, 날씨, 사용자 액티비티, 근처의 비콘 정보를 포함한 7가지 유형의 상황 정보를 사용해서 사용자의 현재 상황을 보다 잘 이해할 수 있으며, 이 정보를 이용해 사용자에게 최적화된 맞춤형 환경을 제공할 수 있다.Google Awareness API 설명 블로그 포스트Goo..

세미나/google io 2017.06.29
Google I/O 2017 개발자 요점정리 - 한용희 과장,SPH

SPH R&D 팀 한용희 과장이 직접 마운틴뷰에서 보고 느낀 Google I/O 2017 현장과 새로운 기술 및 발표 내용을 정리해드립니다! 참관기 행사장전 세계 85개국 7200명 개발자, 마케터, 디자이너, 언론인 등 참가키노트 시작전 mobile에서 게임을 함. mobile 접속 g.co/bubbles Google I/O이야기서비스지표유튜브 매일 10억시간이상 시청구글맵 매일 10억km이상 길찾기안드로이드 실 사용자 20억구글포토 매일 12억장 이상 사진 업로드구글드라이브 매주 30억건 이상 파일 업로드출처 : The Verge - Google announces over 2 billion monthly active devices on Android 2017 부터는 AI first(이전까지 구글은 m..

세미나/google io 2017.06.29
위치기반 비즈니스를 위한 Google Maps APIs - 서본양 매니저, Google

2017 Google I/O Extended Seoul for Maps 2017.6.29 (목) 14:00http://www.sphinfo.com/portfolio-item/google-io-2017/ 위치기반 비즈니스를 위한 Google Maps APIs 서본양 매니저, GoogleGoogle Cloud의 서본양 매니저가 Google Cloud 및 Google Maps 제품과 멀티플랫폼 비즈니스를 위한 Google Maps APIs 사례를 소개드립니다. 기업이 가지고 있는 데이터 자산(Data assets)을 Google api플랫폼에 올려서 어떻게 활용할수 있을것 인가 라고 고민해야함. 현재는 Google이 상기와 같이 총 16개의 Google Maps API 들을 제공하고 있음. 항상 엔드유저의 사..

세미나/google io 2017.06.29
Install Mysql for spring project(in Macbook)

Spring 프로젝트를 하면서 DB연결은 필수적이다. DB는 무었을 쓸까 고민하던 도중 Oracle을 사용하려고 했지만 Mac에서 local로 돌리기 적합하지 않다는 생각에 MySQL을 깔기로 결정하였다. MySQL(위키피디아)은 다음과 같은 특징을 가진다.오픈소스의 관계형 데이터베이스 관리 시스템(RDBMS)다중 스레드, 다중 사용자 형식의 구조 질의어 형식의 데이터베이스 관리 시스템GPL 라이선스다수의 프로그래밍 언어로 된 API 사용가능Install MySQLMySQL을 쉽고 빠르게 개발하기 위해서 나는 HomeBrew(공식 웹사이트)를 사용하기로 결심했다.HomeBrew는 MacOS 용 패키지 관리자로서 한번의 설치로 다양한패키지를 단 한줄로 설치 할 수 있다. HomeBrew 설치하기1/usr/..

Java의 축복 Lombok 소개 - gradle 적용시키기

Lombok Project는 Java프로젝트를 할때 필수적으로 깔고 시작해야할 툴 중 하나이다. Lombok없이는 Java프로젝트는 수많은 삽질과 노가다로 떡칠 되어있을 것이다. 왜 Lombok을 사용해야 하는지 아래 코드 예제들을 통해 알아보자. 1. 반복적인 코드제거Java는 훌륭한 언어이지만 코드를 반복적으로 써야하는 경우가 많다. Lombok은 이러한 반복적인 작업을 줄여준다. 만약 프로젝트가 Maven으로 이루어질 경우 아래와 같이 설정한다. (가장 최신 버젼의 추가방법은 이 웹페이지에서 확인가능하다) pom.xml12345678 org.projectlombok lombok 1.16.16 provided cs build.gradle(2.12이상의 gradle)1compileOnly "org.pr..

Spring boot application.properties 설명

스프링 프레임 워크는 자바앤터프라이즈 애플리케이션을 구동하기 위한 취적의 프레임 워크이다. 한국 정부에서는 애초에 전자정부의 프레임 워크를 이 스프링 프레임워크를 채용하여 사용하고 있으며 많은 대기업들이 거대한 서비스를 제공하기 위해서 스프링 프레임 워크를 사용하고 있다. 스프링 프레임 워크는 스프링 부트, JPA, 배치 등 여러가지 편리하고 유용한 서비스들을 만들수 있도록 도와준다. 그 중 스프링 부트(Spring boot)는 스프링 프레임워크를 빠르게 개발할 수 있도록 도와주는 유용한 기능이다. 이전에 스프링에서 사용하고, 써야 했던 xml파일들을 간단히 java파일에서 annotation으로 선언만 하면 자동으로 bean 등이 등록이 되어 이해하기도 쉽고 개발도 한결 쉬워진다. Spring-Boot..

Gradle build tool 4.0 가이드

About Gradle - Gradle DocWe would like to introduce Gradle to you, a build system that we think is a quantum leap for build technology in the Java (JVM) world. Gradle provides: Ant처럼 유연하고 관용적이며 확장성 있는 build tool타 빌드프로그램으로 수운 변경강력한 multi 프로젝트 빌드강력한 dependency managementMaven 혹은 Ivy repository 사용가능Groovy(그루비 위키피디아) build script Gradle command-line - Gradle Doc커맨드라인을 사용한 gradle사용법을 알아보자 Executing m..