태그 목록

java

JWT Refresh Token 사용하기

4 minute read

Springboot에서 JWT를 이용해서 토큰을 발급받는데 refresh token도 발급받아서 사용해보자.

네이티브 쿼리에서 DTO를 매핑하는 가장 쉬운 방법

1 minute read

복잡한 통계 쿼리를 사용할 때는 네이티브 쿼리를 사용하고는 한다. 그리고 그 결과를 DTO에 매핑하기 위해 JPA에서 제공하는 natvieQuery를 사용해도 되는 데 DTO매핑이 쉽지 않다. 그래서 QLRM을 사용하는 방법을 소개하겠다. QLRM을 사용하면 DTO 매핑이 매우 쉬...

Springboot3.x에서 JWT에 권한 적용하기

5 minute read

Springboot 3 버전을 기반으로 권한을 JWT 토큰에 저장하고 각 컨트롤러에서 사용할 수 있도록 처리하는 간단한 샘플 코드를 작성했다.

Springboot에서 JWT 간단 사용하기

4 minute read

기존에 Spring security JWT 연동에 기술했던 내용에서는 spring aouth2를 활용해서 jwt연동을 수행했다. 하지만 aouth2 설정, private key, public key 생성등 복잡한 과정이 많았다. 단순하게 REST API서버에서 해당 암호키를 가지고...

Java에서 Python 파일 실행

less than 1 minute read

Java에서 Python파일을 호출해서 실행해보도록 하자. 보통 processBuilder 등을 사용하는데 여기서는 Apace Commons Exec 를 사용하도록 한다. Gradle 설정 implementation 'org.apache.commons:commons-exec:1...

Spring에서 Pebble Template 사용

4 minute read

Spring에서 아마 지금까지 가장 많이 사용된 템플릿은 jstl 일것이다. jstl이 너무 올드하고 지겨운 감도 있어 여러 템플릿을 찾던 중에 pebble을 알게 되었다. 무엇보다도 성능이 좋고, 사용법이 간단한 것 같다. 가장 많이 사용되는 freemarker, handl...

Java8에서 람다(Lambda) 정리1

5 minute read

1. 람다 이전에는.. java8에서 람다사용을 정리해본다. 사실 람다를 모른다고 해서 자바8을 사용하는데 지장은 없다. 람다를 사용하지 않더라도 익명클래스를 이용해서 처리할 수 있기 때문이다. 그런데 그렇게되면 자바의 가장 강력한 특징은 스트림을 사용하지 못하게 된다. 즉 아...

Gradle 에서 Multi 프로젝트 만들기

3 minute read

gradle 로 멀티프로젝트를 구성해보자. 여기서 멀티프로젝트란 프로젝트를 구성시 web, app 등으로 용도가 다른 프로젝트를 생성할 경우를 말한다. 이때 바라보는 database가 같다면 아마도 상당수 많은 부분이 공통적으로 겹치게 될 것이다. 유지보수 차원에서 공통인 부분이 ...

Spring security JWT 연동

5 minute read

1. 기존 oauth2의 문제점 기존의 OAuth2의 단점은 api를 호출할때마다 accessToken이 유효한지 실제 oauth서버에 통해 검증하는 것이다. 이때 매번 oauth에서 해당 토큰의 만료여부등을 DB등에서 조회하고 새로 갱신시 업데이트 작업을 해주어야 한다. 이러한...

Java에서 JSON(GSON)사용

1 minute read

Java에서 간단하게 json을 생성하고 파싱하는 방법을 알아보자. 여러가지 라이브러리가 있는데 우리는 여기서 구글에서 만든 gson를 이용하겠다. gson은 비교적 가볍고, 메이븐저장소를 지원하고 전반적으로 성능이 좋아서이다. 먼저 메이븐으로 다운로드한다. <depend...

Spring에서 Redis 설정

1 minute read

Spring(boot)에서 Redis를 설정하는 것은 무척 간단하다. 레디스를 이용해서 간단하게 페이지 방문자수를 업데이트해주는 것을 만들어보자. 먼저 메이븐에서 먼저 관련 라이브러리를 추가해주자. <dependency> <groupId>org.sp...

Spring에서 JNDI설정(hikaricp)

less than 1 minute read

스프링에서 jndi를 통해 mysql과 연결하자. 1. 해당 라이브러리를 tomcat/lib에 넣어준다. mysql-connector-java-5.1.34.jar slf4j-api-1.6.6.jar HikariCP-2.6.0.jar 2. Tomcat의 Serve...

Spring Boot에서 배포환경 나누기

2 minute read

스프링부트에서 war로 만들고 각 서버에 톰켓으로 배포할 때 설정하는 방법을 알아보자. 몇가지 방법이 있지만, 가장 간단하고 일반적인 방법으로 설정을 해보자. 스프링부트에서는 application.yml를 통해 아래와 같이 profile를 설정하는 방법이 있다. 배포환경을 나누는 ...

Spring REST API 문서를 Swagger로 만들자

3 minute read

REST API를 개발할때 관련 문서를 만드는 것은 꽤 귀찮은 일이다. 파라미터가 변경되거나 주소가 변경되면 실제 문서와 소스와 싱크가 맞지 않으면 아무리 문서를 잘 만들어도 소용이 없다. 변경된 소스를 그대로 문서로 만들어 주는 것이 없을까? 그런 고민을 해결해주는 것이 바로 S...

익명클래스 사용방법

2 minute read

자바에서 익명클래스 (혹은 익명객체)를 사용하는 방법을 알아보자. 보통의 경우, 우리는 부모클래스를 상속받아 처리하려면 부모클래스를 상속받는 클래스를 별도로 만들어 처리한다. public class Person { void whoAmI() { System.out.prin...

Java annotaion 기본설명

2 minute read

스프링등을 사용하면 어노테이션을 참 많이 사용한다. @Controller, @Component .. 등등 어노테이션에 대해 간단히 알아보고 커스텀 어노테이션을 아주 간단히 만들어보도록 하자. 용어 및 설명은 이것이 자바다 (신용권의 Java programming) 정복, 한빛미디어...

Spring Security - MySQL 인증

7 minute read

본 문서는 스프링 시큐어리티에 관한 초급적인 부분을 설명한다. 스프링 시큐어리티를 처음 적용하는 부분에 초점을 맞추어었다. 또한 스프링부트가 아닌 스프링 레거시에 자바기반 설정으로 설명한다. (짧은 지식으로 개념이나 설명이 매끄럽지 못한 부분이 있으니, 그 부분은 책이나 블로그를 ...

Gradle Javascript, CSS Minify 하는 방법

2 minute read

Gradle에서 css, javascript를 Minify를 하기 위헤서는 해당 플러그인을 설치해야 한다. eriwen 이라는 개발자가 만든 플러그인이다. gradle-js-plugin gradle-css-plugin 그런데 사이트에서는 모든 css/js 파일을 하나...

Maven에서 js 파일 minify 하기

2 minute read

Maven에서 js파일을 압축하여 패키징하도록 해보자. 일단, 개발자들의 로컬에서는 압축되지 않은 상태로 사용하다고 패키징할때 압축하여 배포하는 방식으로 사용하면 편하다. 보통은 aa.js을 aa.min.js으로 압축하지만 만약 각각의 jsp나 html파일에 js경로가 적혀있다면 ...

Gradle에서 서버별 패키징 하기

less than 1 minute read

Gradle에서 패키징하는 방법을 알아본다. 본 문서는 <Maven에서 서버별 패키징하기>의 Gradle 버전용 문서이다. 따라서 디렉토리 설정은 같고 다만, Maven은 pom.xml에서 설정하지만 Gradle은 build.gradle에서 설정을 해주는 부분만 다르기...

Spring에서 Properties 사용

less than 1 minute read

Spring에서 Properties파일을 읽어들이는 부분을 처리할 수 있다. 먼저 application.xml에 다음과 같이 추가한다. //beans 선언에 util의 선언되어야 한다. <beans xmlns= ..... xmlns:util="http://www....

[Spring4.1]log4j를 logback으로 변경하기

1 minute read

그동안 Spring에서 오랫동안 사용해온 log4j를 새로운 logback으로 변경해보자. Maven을 기반으로 설명한다. 일단 기존의 등록된 log관련은 모두 지워준다. Spring 4.1과 mybatis 3.3.0, mybatis-spring-1.2.3 으로 구축한다 (Spr...

Spring과 Quartz 연동

2 minute read

Spring과 Quartz를 연동해서 개발해본다. Spring 3.2 와 Quartz 1.8을 연동한다. (Quartz 2.x 버전은 Spring 3.2 버전과 잘 안되므로 1.8로 한다) 1. pom.xml 에 추가 pom.xml에서 quartz와 연동하기 위해서 이클립스에서...

twitter4j를 통한 twitter 로그인 연동

1 minute read

트위터와 연동하는 자바모듈로 유명한 <twitter4j>가 있다. 스프링과 메이븐을 사용한다면 다음과 같이 pom.xml에 추가한다. <dependency> <groupId>org.twitter4j</groupId> <art...

Spring에서 다국어 적용하기

2 minute read

스프링에서 다국어처리는 의외로 간단하다, 특히 사용자가 언어를 자유롭게 설정하는 부분도 쉽게 가능하다. 아래와 같이 화면처리를 하고자 한다. 브라우저의 설정된 언어값을 읽어오거나, 아니면 디폴트 언어설정을 지정하거나, 링크를 통해 자유롭게 언어를 바꾸는 화면이다. 그런데...

Maven에서 서버별 패키징하기

1 minute read

Maven으로 개발시 환경별로 패키징해야 할 필요가 있다. 즉, DB가 로컬, 데모, 리얼서버별로 각각 다를 경우 DB접속정보는 각각 다르다. 이때 각각 다른 접속정보를 가지고 패키징이 되어야 한다. 또한 로그도 경로가 다르기때문에 각각 패키징해야 한다. 1. 각각의 패키징 폴더...

MyBatis에서 Batch처리(SqlSession과 foreach)

2 minute read

Spring과 MyBatis연동시 배치를 처리할 경우가 있다. 한꺼번에 인서트나 업데이트가 필요한 경우있다. 이 때 SqlSession을 반복적으로 처리하는 방법과 xml에서 foreach를 처리하는 방법이 있다. 먼저 DB는 Mariadb(MySql)을 기준으로 설명한다. te...

자바에서 스레드풀(Thread Pool)관리

1 minute read

자바에서 스레드를 필요한 작업마다 생성하는 것은 크게 자원낭비와 안정성에 문제가 있다. 스레드를 생성하고 제거하는 작업에는 자원이 소모된다. 스레드가 많다면 대부분의 대기중인 상태가 되고, 더더욱 메모리 사용량이 많아지고 JVM의 가비지콜렉터에 많은 부담을 주게된다. 또한 모든 ...

Maven 사용자를 위한 Gradle 의 간단 사용법

5 minute read

gradle이라는 것을 알았을 때 일단 한숨이 나왔다. 이제 겨우 maven에 적응되었는데 또 다른 툴이라니 오마이갓! 그런데 권남님의 블로그에서 <maven을 넘어 gradle로 가자> 라는 글을 읽고 공감되었다. 무엇보다도 새로운 툴이 나왔다면 개발자라면 응당 호기...

Spring에서 TDD를 이용하여 DB를 테스트해보자.

1 minute read

Spring에서 TDD를 적용해본다. 여기서는 db가 구축되어 있고, db조회, 입력, 처리부분을 TDD로 테스트할 경우를 예를 들겠다. (원래는 db도 DBUnit로 처리되어 있다면 아래처럼 할 필요는 없다. ) Spring에서 UI를 개발하기 전에 DB가 구축되어 있고, m...

Spring에서 스케줄러 사용하기

less than 1 minute read

별도의 배치 프로그램을 만들지 않고 스프링에서 특정 시간에 반복으로 처리할 수 있는 스케줄링 기능이 있다. http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html 위 사이트...

JQuery와 Spring간의 Cookie 연동

less than 1 minute read

JQuery에서 쿠키를 저장하고 Spring Controller에서 저장된 쿠키를 체크하는 기능이 필요할 때가 있다. 일단, JQuery에서 쿠키를 처리하는 플러그인을 받는다. jquery-cookie 에서 다운받거나 bower를 쓴다면 아래 처럼 실행한다. bower ins...

Spring에서 JSON과 연동방법

less than 1 minute read

Spring에서 JSON과 REST API로 연결하는 방법은 두 가지가 있다. 1. MappingJackson2HttpMessageConverter 을 이용하여 세팅하는 방법 먼저 pom.xml에서 관련된 라이브러리를 다운받는다. <!-- JSON 방식으로 통신 ( M...

Spring에서 AOP를 사용해보자.

2 minute read

한 어플리케이션의 여러부분에 걸쳐 있는 기능을 가리켜 횡단관심사(cross-cutting concerns)라 한다. 주로 로깅이나 세션처리등이 있다. 이런 로깅이나 세션처리작업은 각 모듈에서 반복적으로 사용되고 있으므로 스프링에서는 이러한 것을 AOP(Aspect-Oriented...

mybatis에서 selectKey 사용법

1 minute read

DB작업을 하다보면 먼저 사전에 어떤 키값을 가져와서 증가시켜서 입력하거나 혹은 입력후에 증가된 키값을 가져올 필요가 있다. 이럴때 mybatis에서 제공하는 selectKey를 이용하면 별도의 쿼리로직을 등록할 필요없이 해당 메소드에서 일괄처리할 수가 있다. 샘플로 아래와 같...

spring에서 component-scan을 사용하자.

less than 1 minute read

보통 스프링에서 클래스를 만들고 의존성 주입은 @Autowired를 통해 클래스생성을 처리하고 있다. 그런데 autowired를 하기 위해서는 applicationContext.xml에 해당 클래스를 bean으로 등록하는데 이것이 꽤 번거롭다. 예를 들어 아래와 같이 autowi...

Back to top ↑

book

[추천서적]일을 잘한다는 것

2 minute read

야마구치 슈, 구노스키 켄 (저) 많은 사람들이 ‘일을 잘한다’는 의미를 업무 기술이 있다는 말과 비슷하게 생각하지만, 사실은 전혀 다르다. 이 책은 바로 여기서부터 출발한다. 어떻게 해야 일을 잘하는 가에 대한 방법론을 제시하는 책이 아니다. 소위 일 잘하는 1...

[추천서적] 네이비씰 승리의 기술

6 minute read

조코 윌링크, 레이프 바빈 (저) 이 책은 전직 네이비씰의 실전 장교들이 쓴 책이다. 이 책의 저자들은 극한의 오너쉽에 대해 이야기하고 있다. 단순한 오너쉽이 아니고 정말 말 그대로 극한의 오너쉽을 발휘하는 리더쉽이다. 전장의 장소만큼 리더쉽이 극명하게 드러나는 곳은 없...

[추천서적] 함께 자라기 애자일로 가는길

5 minute read

함께 자라기 애자일로 가는 길 - 김창준 지움 / 인사이트 오랜만에 밑줄을 열심히 그어가면서 읽은 책이다. 김창준님은 애자일 컨설팅 대표이다. IT 업계 종사자라면 일독을 권한다. 너무나도 좋은 내용이 많아서 정리하기가 힘들었지만, 그중에서 개인적으로 임펙트 있었던 부분만 소개하...

[추천서적] 묵묵

2 minute read

묵묵 (고병권 저, 출판사: 돌배게) 불편한 책이다. 뭔가 힐링을 할 책을 찾던중 읽었는데, 읽는 내내 불편함을 느끼게 했다. 저자의 깊이에 놀랐지만, 무엇보다도 저자가 줄곳 말하는 부분이 얄팍한 도덕심을 갖춘 나로써는 불편함을 느끼게 했다. 저자는 노들장애인 야학에서 철학을 ...

[추천서적] 올바른 결정은 어떻게 하는가

2 minute read

필 로젠츠바이크 저 / 김상겸 역 / 엘도라도 출판 우리는 살면서 순간순간 마다 찰나의 결정을 내리거나, 중요한 시점에 중대한 결정을 내려야 할 때가 있다. 그 때 내린 결정의 결과에 따라서 우리의 삶이 달라지곤 한다. 그렇기 때문에 우리는 항상 후회하지 않을 결정을 넘어...

[추천서적] 처음부터 잘 쓰는 사람은 없습니다

4 minute read

2018년이 끝날 무렵 마지막으로 선택한 책은 처음부터 잘 쓰는 사람은 없습니다(위즈덤하우스 출판/ 이다혜 저) 였다. 유시민의 글쓰기 특강, 스티븐 킹의 유혹하는 글쓰기에 이어 글에 관해 읽은 3번 째 책이다. 이전에 읽은 책들도 훌륭하지만 이 책의 저자는 시네21의 기자이자 편...

[추천서적] 불안 - 알랭 드 보통

4 minute read

아마도 인간이 지구에 나타난 이상 항상 불안하지 않았을까? 불안은 한마디로 심리적인 요인이라는 것을 누구나 알지만 그 심리적 요인이 미치는 영향은 상당히 크다. 하지만 과거에 불안에 대한 생각보다 지금 우리가 살고 있는 이 시대의 불안이 우리의 가장 큰 관심사이다. 도대체 왜 지금...

[추천서적] 기적의 집중력

3 minute read

아마 오늘날 대부분의 사람들은 여러가지 업무나 공부를 하고 있을 것이다. 지금 시대가 한 가지만 몰두할 수 있는 시대가 아니기 때문이다. 업무와 공부에 다양성이 도입되어 이제 멀티플레이어가 되어야 하는 시대가 이미 시작된지 오래다. 그런데 이러한 여러가지 일을 벌이지만, 시간은 여...

[추천서적] 카프카 - 변신

1 minute read

카프카의 변신 이라는 책은 정확히 2번째 읽었다. 사실 고전은 읽기가 수월하지 않다. 첫장면부터 몰입이 잘 안되는 경우가 많지만, 카프카의 변신은 첫 장면부터 굉장히 흥미롭고 섬뜩하게 시작이 된다. 그레고르 잠자는 어느날 아침 불안한 꿈에서 깨어났을 때, 자신이 침대속에서 ...

[추천서적] 탁월한 사유의 시선

7 minute read

책을 반복해서 읽을 경우에는 보통의 두 가지 경우다. 첫번째는 다소 어려워서 다시 보기 위함이고 둘째는 너무 인상적이어서 다시 보고 싶은 경우다. 탁월한 사유의 시선(저자: 최진석)은 내게는 후자의 해당되는 경우였다. 이 책은 철학에 대한 책이다. 그런데 고전이나 어려운 근대...

[추천서적] 노동없는 미래

6 minute read

노동없는 미래라.. 과연 그런 미래가 올 것인가? 그리고 온다면 어떻게 될 것인가? 아니 그전에 과연 노동없는 미래가 가능하기나 한단 말인가? 우리같은 노동자들에게 노동없는 미래는 무엇을 의미할 것인가? 처음에 이 책을 골랐을 때는 앞으로 인공지능의 로봇의 세상이 열려서 인간...

[추천서적] 1만시간의 재발견

7 minute read

당신이 말콤 글래드웰의 아웃라이어를 읽어 보았다면 1만시간의 법칙을 알것이다. 어떤 분야이던지 그 분야의 전문가가 되려면 1만시간이 필요하다는 것이다. 즉 누구나 꾸준히만 노력해서 1만시간만 한다면 성공할 것이라는 것이다. 그에 대한 이 책의 주장은 다음과 같다. “꾸...

[추천서적] 숨쉬듯 가볍게

9 minute read

내가 좋아하는 팟캐스트인 지대넓얕 의 김도인님이 쓴 책이다. 동양철학을 전공한 분인데, 방송에서 목소리를 들으면 굉장히 차분하고 조리있는 말투가 매력적인데 특히 방송 중간 중간에 “꺼져”, “이런 미친”, “그만해 이 자식들아” 라는 거친말들을 젼혀 거부감없이 유쾌하면서 중독성...

책속의 지혜

1 minute read

큰 뜻을 품은 사람은 반드시 시기를 기다릴 줄 안다. 유가의 전통적인 원칙 중에는 이런 말이 있다. “일이 안 풀릴 때는 자신의 재능과 인격을 연마하고, 일이 잘 풀릴 때는 그뿐 아니라 천하를 선하게 한다.” 큰 성취를 이루기 원한다면 자신의 현재 상황과 지...

[추천서적] 자신있게 결정하라

4 minute read

제목이 마음에 안든다. 마치 전형적인 자기계발서같이 보인다. 원제가 너무 짧아서 이렇게 지은 것 같다. 이 책이 저자들은 히스형제이다. 스틱의 저자들이다. 이 책의 목적은 한마디로 우리가 결정을 해야할 상황에 가장 올바른 방향으로 결정을 내리도록 도와주는 책이다. 살면서 얼마...

[추천서적] 스타트업 경영수업

8 minute read

읽으면서 밑줄을 부지런히 그었던 책이었다. 밑줄 친 부분만 따로 정리했는데도 상당히 내용이 길었다. 그만큼 새겨야할 좋은 내용이 많은 책이었다. 저자가 아무래도 스타트업을 성공적으로 이끈 사람이라서 좀 더 집중해서 읽은 것이 아닌가라는 나의 얄팍함을 의심하기도 했지만, 그런 ...

[추천서적] 내안에서 나를 만드는 것들

4 minute read

국부론으로 너무나도 잘 알려진 애덤 스미스의 도덕감정론에 대해 일반인들에게 소개하는 책이다. 저자의 말에 의하면 도덕감정론이 일반인들이 읽기에 조금 난해하므로 조금 쉽게 풀이한 책이라고 한다. 이 책을 통해 어느정도 도덕감정론이 어떤 책인지 알 수 있게 되었다. 애덤 스미스는...

[추천서적] 블랙스완

2 minute read

블랙스완 : 나심 니콜라스 탈레브 지음 / 동녘사이언스 검은 백조는 극단값이다. 극단값은 과거의 경험으로는 그 존재 가능성을 확인할 수 없기 때문에 일반적인 기대 영역 바깥에 놓여 있는 관측값을 가리키는 통계학 용어이다. 극단값이라고 부르는 이유는 이것이 존재할 가능성이...

[추천서적] 리뷰의 기술

2 minute read

좋은 리뷰란 무엇인가를 고민하게 해준 책이다. (모리사키 슈지/제이펍) 일을 함에 있어서 가장 중요한 것이 바로 커뮤니케이션이다. 서로간의 정보와 의견이 정확하게 전달되어야만 비로서 우리가 하는 일에 완성도를 더 할 수 있다. 그 커뮤니케이션 중에 하나가 바로 리뷰가 아닐까한...

[추천서적] 혼자있는 시간의 힘

1 minute read

기대를 현실로 바꾸는 혼자있는 시간의 힘 (사이토 다카시/위즈덤하우스) 무리 지어 다니면서 성공한 사람은 없다. 뭔가를 배우거나 공부할 때는 먼저 홀로서기를 해야 한다. 솔직히 이 글귀 때문에 읽어본 책이다. 개인적으로 여러 사람과 우르르 몰려다니는 걸 좋아하지 않아...

[추천서적] 빅터프랭클의 죽음의 수용소에서

3 minute read

생각해보자. 당신이 아우슈비츠에 갇힌 남자이다. 당신의 아내와 아이는 가스실에서 죽었다. 당신은 영원할 것 같은 그 인간성 말살의 장소에서 매일 매순간 최악의 고통을 겪으면서 어떻게 삶의 의미를 찾고 버터나갈 수 있을까? 이 책의 저자 빅터프랭클이 겪은 내용이다. 1 인간은...

[추천서적] 바이럴루프

1 minute read

바이럴루프 : 한명의 소비자가 또 다른 소비자를 불러들여 스스로 네트워크를 확장해가는 소셜 네트워킹의 핫 트랜드 바이럴마케팅의 대한 미국사례가 잘 정리된 책이다. 페이스북, 트위터등이 없던 1950년 대부터 페이스북까지의 바이럴마케팅의 히스토리가 꽤 재미있게 쓰여져있다. 아무...

[추천서적] 백세코딩

2 minute read

마이크로소프트웨어에 [신현묵의 삐딱한 아키텍트의 생각]을 기고하시는 신현묵님께서 낸 책이다. 마소에서 이분을 글을 보면 마치 나를 아껴주는 인생의 선배가 술자리에서 이런 저런 조언을 해주는 기분이 들었다. 그래서 책이 나와서 바로 구매했다(사실 읽은 지는 몇 개월전이다) 살...

[추천서적] 똑바로 일하라

2 minute read

Ruby on Rails를 만든 사람의 책이라고 한다. 그러나 소프트웨어에 대한 이야기보다는 기업문화에 대한 좋은 충고가 많다. 공감되는 내용이 많다. 완벽한 계획은 불가능하다. 사업계획 말 자체가 어불성설이다. 사업추측이라면 모를까, 재무계획은 재무추측, 전략계획은 전...

[추천서적] 기브앤테이크

1 minute read

주는 사람이 성공한다? 과연 그런가? 책에서는 사람을 3종류로 분류한다. 기버: 베푸는 사람, 테이커: 받기만 하는 사람, 매처: 주고받는 사람. 우리는 흔히 듣는다. 베푸는 것이 받는 것이라고, 그런데 세상을 살다보면 베풀기만 하는 것이 웬지 손해이고, 남...

[추천서적] 오기, 전국시대 신화가 된 군신이야기

1 minute read

전국시대의 손자와 버금가는 전략가. ‘오기’ 그에 관한 책이다. 오기에 대한 내용은 전부터 알고 있었다. 뛰어난 전략가이자 명장이면서 출세를 위해선 마누라 목도 베고, 죽을 때도 결코 혼자 당하지 않은 남자… 그런데 이 책을 보면서 오기란 사람이 상당히 개혁적이면서 진보적인 ...

[추천서적] 유리감옥

less than 1 minute read

대부분의 개발자들은 자동화라는 말을 좋아한다. 개발자들이 가장 싫은 것이 아마도 반복적인 패턴의 단순업무를 노가다식으로 작업하는 것이다. 따라서 언젠가는 위험하고 단순하면서 반복적인 일은 컴퓨터등 로봇이 대신하게 될 것이라고 믿고 그런 세상이 빨리오기를 기다리고 있다. 그런데...

[추천서적] 부하직원이 말하지 않는 진실

1 minute read

과장급 이상한테 절대 추천하고 싶은 책이다. 읽는 내내 찔렸고, 가슴을 후볐지만, 그만큼 시원한 느낌도 들었다. 마치 아픔 뒤에 오는 후련함이라고 할까? 정말 어느 조직의 리더라면 반드시 필독서라고 권하고 싶다. 얼마나 많은 리더들이 착각을 하는지 생생하게 알려주고 있다. 책...

[추천서적] 위대한 기업의 선택

1 minute read

‘좋은 기업을 넘어 위대한 기업으로’라는 책을 쓴 짐 콜린스가 쓴 책이다. 전작을 무척 재미있게 봐서 주저없이 구매해서 보게 되었다. 참, 전작에 나온 그 위대한 기업들이 많이 사라졌다고 한다. 그에 관한 책 위대한 기업은 다 어디로 갔을까 라는 책도 추천하고 싶다. 늘 그렇...

[추천서적] 작은 조직이 어떻게 큰 조직을 이기는가

1 minute read

약자가 강자를 이길 수 있는 방법은 무엇이 있을까? 적어도 강자가 원하는 방식으로 싸워서는 안될 것이다. 상대가 권투 챔피언인데 권투로 도전하면 안되듯이 말이다. 이 책에는 그런 것에 대한 많은 조언이 있다. 핵심은 이렇다. 당신이 약자라면 약자의 전략을 세워서 싸워야 하고,...

[추천서적] 프로그래머로 산다는 것

1 minute read

개발자들에 대한 충고가 가득한 책이다. 이런 저런 좋은 조언을 해줄 수 있는 사람이 있다면 ‘근사한 복’중에 하나일 것이다. 없다면 이 책으로 그 ‘근사한 복’을 받아도 될 듯하다. 특히 테스트(TDD)에 대한 좋은 충고가 많다. 실수는 몰라서 저지르는 것이 아니라 알...

[추천서적] 해커와 화가

less than 1 minute read

마소에서인가 해당 책에 대한 언급이 있어서 구매해서 읽어보았다. 전반적으로 개발자에게 좋은 충고내용이 많았다. 특히, 막연히 스타트업에 대해 환상을 품고 있는 개발자들에게 따끔한 글이 많았다. 스타트업은 마술이 아니다. 그들이 부를 창출하는 일반적인 법칙을 바꾸는 것이...

[추천서적] 티핑포인트

less than 1 minute read

티핑포인트 : 모든 것이 갑자기 변화하는 극적인 순간. 예전에 읽은 책인데 말콤 글래드웰을 워낙 좋아하서 이번에 그의 책을 일괄구매하고 다시 읽기로 했다. 티핑포인트를 완성시키는 3가지 규칙 소수의 법칙 80대20의 법칙, 20%가 80%의 일을 ...

[추천서적] 다쓰고 죽어라.

1 minute read

제목이 참 노골적이다. 하지만 마음에 든다. 저자가 재무설계사라 그런지 꽤 현실적이고 솔직하게 다쓰고 죽어라를 설득하고 있다. 몇가지 마음에 드는 내용은 아래와 같다. 1. 지금 당장 사표를 써라. 저자가 말하는 사표는 고용주와 자신을 정신적으로 분리하고 나의 주인은 나 ...

[추천서적] 피플웨어

3 minute read

벌써 10여년이 넘은 책이다. 책의 저자중에 한명이 톰 디마르코는 <슬랙(Slack)>이라는 책을 사람이다. 책을 보면서 10년전에 미국에서의 문제가 지금 한국에서 문제와 많은 부분이 유사하다는 점이 놀랐다. 그래도 선진국인 ‘우리의 미쿡님들’은 뭔가 우리보다 쿨하...

[추천서적] 박제가, 욕망을 거세한 조선을 비웃다.

1 minute read

조선의 실학자 박제가에 대한 책. 그의 놀라운 통찰력에 감탄하고 그리고 깊은 아쉬움이 남는 책이다. 주변 국가와 사대교린을 한다고 하지만, 외국의 훌륭한 제도는 하나도 배워오지 못하는 자가 왜놈, 되놈하며 비웃으며 천하민국이 다 우리와 같은 수준인 줄 안다. 18세기...

[추천서적] 슬랙(Slack)

1 minute read

Slack : 여유, 느슨함, 완만함 이 책은 한마디로 일에 있어서 꽉 짜인 효율성보다는 적절한 여유(slack)가 오히려 창의성을 높이고 결국 질적으로 더 좋아진다는 내용이다. 사실 책을 읽으면서 좀 놀랐다. 우리나라 사람이 지은거라면 이해가 가는데 미국에서도 우리와 같이 ...

Back to top ↑

spring

Springboot Library 만들고 사용하기

2 minute read

스프링부트로 라이브러리를 만들어 보자. 그래서 다른 스프링부트에서 해당 라이브러리를 임포트해서 사용하도록 한다.

Spring에서 @Async 사용

2 minute read

Spring에서는 비동기 처리를 @Async 어노테이션을 통해 간단히 처리할 수 있다.

JPA에서 Collection 처리

4 minute read

JPA에서 @OneToMany <> @ManyToOne를 통해 양뱡향 처리하고 Collection으로 처리하는 방법을 알아본다. 아래와 같은 테이블 구조가 있다. 출판사(publisher)와 도서(book)은 일대다 <-> 다대일 관계로 앙뱡한 연관관게로...

Spring에서 Pebble Template 사용

4 minute read

Spring에서 아마 지금까지 가장 많이 사용된 템플릿은 jstl 일것이다. jstl이 너무 올드하고 지겨운 감도 있어 여러 템플릿을 찾던 중에 pebble을 알게 되었다. 무엇보다도 성능이 좋고, 사용법이 간단한 것 같다. 가장 많이 사용되는 freemarker, handl...

Spring security JWT 연동

5 minute read

1. 기존 oauth2의 문제점 기존의 OAuth2의 단점은 api를 호출할때마다 accessToken이 유효한지 실제 oauth서버에 통해 검증하는 것이다. 이때 매번 oauth에서 해당 토큰의 만료여부등을 DB등에서 조회하고 새로 갱신시 업데이트 작업을 해주어야 한다. 이러한...

Spring에서 Redis 설정

1 minute read

Spring(boot)에서 Redis를 설정하는 것은 무척 간단하다. 레디스를 이용해서 간단하게 페이지 방문자수를 업데이트해주는 것을 만들어보자. 먼저 메이븐에서 먼저 관련 라이브러리를 추가해주자. <dependency> <groupId>org.sp...

Spring에서 JNDI설정(hikaricp)

less than 1 minute read

스프링에서 jndi를 통해 mysql과 연결하자. 1. 해당 라이브러리를 tomcat/lib에 넣어준다. mysql-connector-java-5.1.34.jar slf4j-api-1.6.6.jar HikariCP-2.6.0.jar 2. Tomcat의 Serve...

Spring Boot에서 배포환경 나누기

2 minute read

스프링부트에서 war로 만들고 각 서버에 톰켓으로 배포할 때 설정하는 방법을 알아보자. 몇가지 방법이 있지만, 가장 간단하고 일반적인 방법으로 설정을 해보자. 스프링부트에서는 application.yml를 통해 아래와 같이 profile를 설정하는 방법이 있다. 배포환경을 나누는 ...

Spring Security - MySQL 인증

7 minute read

본 문서는 스프링 시큐어리티에 관한 초급적인 부분을 설명한다. 스프링 시큐어리티를 처음 적용하는 부분에 초점을 맞추어었다. 또한 스프링부트가 아닌 스프링 레거시에 자바기반 설정으로 설명한다. (짧은 지식으로 개념이나 설명이 매끄럽지 못한 부분이 있으니, 그 부분은 책이나 블로그를 ...

Spring에서 Properties 사용

less than 1 minute read

Spring에서 Properties파일을 읽어들이는 부분을 처리할 수 있다. 먼저 application.xml에 다음과 같이 추가한다. //beans 선언에 util의 선언되어야 한다. <beans xmlns= ..... xmlns:util="http://www....

Spring과 Quartz 연동

2 minute read

Spring과 Quartz를 연동해서 개발해본다. Spring 3.2 와 Quartz 1.8을 연동한다. (Quartz 2.x 버전은 Spring 3.2 버전과 잘 안되므로 1.8로 한다) 1. pom.xml 에 추가 pom.xml에서 quartz와 연동하기 위해서 이클립스에서...

Spring에서 다국어 적용하기

2 minute read

스프링에서 다국어처리는 의외로 간단하다, 특히 사용자가 언어를 자유롭게 설정하는 부분도 쉽게 가능하다. 아래와 같이 화면처리를 하고자 한다. 브라우저의 설정된 언어값을 읽어오거나, 아니면 디폴트 언어설정을 지정하거나, 링크를 통해 자유롭게 언어를 바꾸는 화면이다. 그런데...

Spring에서 TDD를 이용하여 DB를 테스트해보자.

1 minute read

Spring에서 TDD를 적용해본다. 여기서는 db가 구축되어 있고, db조회, 입력, 처리부분을 TDD로 테스트할 경우를 예를 들겠다. (원래는 db도 DBUnit로 처리되어 있다면 아래처럼 할 필요는 없다. ) Spring에서 UI를 개발하기 전에 DB가 구축되어 있고, m...

Spring에서 스케줄러 사용하기

less than 1 minute read

별도의 배치 프로그램을 만들지 않고 스프링에서 특정 시간에 반복으로 처리할 수 있는 스케줄링 기능이 있다. http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html 위 사이트...

JQuery와 Spring간의 Cookie 연동

less than 1 minute read

JQuery에서 쿠키를 저장하고 Spring Controller에서 저장된 쿠키를 체크하는 기능이 필요할 때가 있다. 일단, JQuery에서 쿠키를 처리하는 플러그인을 받는다. jquery-cookie 에서 다운받거나 bower를 쓴다면 아래 처럼 실행한다. bower ins...

Spring에서 JSON과 연동방법

less than 1 minute read

Spring에서 JSON과 REST API로 연결하는 방법은 두 가지가 있다. 1. MappingJackson2HttpMessageConverter 을 이용하여 세팅하는 방법 먼저 pom.xml에서 관련된 라이브러리를 다운받는다. <!-- JSON 방식으로 통신 ( M...

Spring에서 AOP를 사용해보자.

2 minute read

한 어플리케이션의 여러부분에 걸쳐 있는 기능을 가리켜 횡단관심사(cross-cutting concerns)라 한다. 주로 로깅이나 세션처리등이 있다. 이런 로깅이나 세션처리작업은 각 모듈에서 반복적으로 사용되고 있으므로 스프링에서는 이러한 것을 AOP(Aspect-Oriented...

spring에서 component-scan을 사용하자.

less than 1 minute read

보통 스프링에서 클래스를 만들고 의존성 주입은 @Autowired를 통해 클래스생성을 처리하고 있다. 그런데 autowired를 하기 위해서는 applicationContext.xml에 해당 클래스를 bean으로 등록하는데 이것이 꽤 번거롭다. 예를 들어 아래와 같이 autowi...

Back to top ↑

think

지상병담(紙上兵談)

3 minute read

지상병담(紙上兵談) : 종이위에 용병술 사마천의 사기에 염파인상여열전에 나오는 고사이다. 내용은 대략 이렇다. 중국 전국시대에 조나라에는 조사라는 명장이 있었다. 이 조사에게는 똘똘한 아들인 조괄이 있었다. 조괄은 어려서부터 병서에 통달해서 아버지와 병법에 관해 토론하면 아버지...

난감한 프로젝트에서 배우다

3 minute read

보통 IT업계에서 프로젝트를 수행시 꽤나 난감한 프로젝트를 수행하는 경우가 있다. 대부분 요구사항의 명확하지 않거나 자주 바뀌거나, 지나치게 복잡해지는 경우로 시작하는 경우가 많다. 대부분 추상적인 개념에서 구체적인 실행으로 옮겨가는 과정에서 혼선이 발생하고 시행착오가 발생한다. ...

[명강의] 오늘 미래를 만나다

3 minute read

오늘 미래를 만나다 는 2015년 신년특집으로 김정운 교수가 3부작에 걸쳐 강의한 내용이다. 예전에 굉장힌 인상적으로 본 기억이 나서 주말쯤 시간을 내어 다시 보게 되었다. 역시 명강의는 시간이 지나도 빛이 바래지 않았다(유트브에서 조회하면 바로 나온다) 중년의 나이를 보내다보니...

미우라 가즈요시

1 minute read

미우라 가즈요시 일본의 레전드 축구 선수, A매치 89경기에서 55골, 하지만 월드컵에는 한번도 못나간 비운의 선수. 현재 J리그 2부 요코하마FC 에서 공격수로 뛰고 있다. 그의 나이 50세(2017년)에 재계약에 성공했다고 한다. 생각해보라. 나이 오십이면 동네 조기축...

[영화] 달콤한 인생

3 minute read

혹시, 보지 못하신 분들은 스포일러가 있으니 돌아가세요. 예전에 본 영화인데 오랫만에 다시 보았다. 인상적인 대사와 장면이 느와르적인 분위기가 꽤 마음이 들었던 영화여서 다시 보게 되었다. 10년이 지난 영화이지만 정말 하나도 촌스럽지가 않다. 역시 좋은 영화나 음악은 시간이 지...

신입개발자와 일하는 법

3 minute read

자. 당신이 다니는 회사는 개발자들이 그토록 오고 싶어하는 유명한 회사라면 이글을 읽을 필요가 없다. 그런데, 소규모의 평범하기 그지없는 회사라면 그래서 웬만한 경력 개발자들은 결코 오지 않는 곳이라면 선택은 신입뿐이다. 그리고 그 신입들의 대부분은 무지하게 평범하다. 전공이 컴...

좋아하는 일을 하는 것이 중요한 것은 아니다.

2 minute read

“하고 싶은 일”보다는 “할 수 있는 일”에 기반을 두고 일을 선택하는 것이 좋습니다. T-TIMES(좋아하는 일을 하는 것이 중요한 것은 아니다.)에서 너무 좋은 기사를 봤다. [생각버리기 연습]의 저자 코이케 류노스케 스님이 아사히 신문에서 인터뷰에서 언급한 내용을 기...

다른 사람을 바꾸겠다는 오만한 착각.

1 minute read

살면서 대단한 착각중에 하나가 말로써 다른 사람을 바꾸겠다는 것이다. 특히, 나이가 들수록 경험이 쌓일수록 아는 것이 많아질수록 이러한 착각속에서 인생의 후배나 후임들에게 한소리를 늘어놓게 마련이다. 정보를 제공해서 그 사람에게 도움을 주는 것이 아닌 진심어린 충고로 그 사람을 ...

낙관주의와 두려움

2 minute read

세바시에서 의미있는 강연를 들었다. 세바시 568회 더 좋은 해답은 반드시 있다 | 신병철 스핑클 총괄대표 강연내용중에 재미있는 그림이 있다. http://systematicrelativestrength.com/2013/11/12/your-plan-vs-reality/ ...

설득할 수 있는가?

1 minute read

이코노미스트에 다음과 같은 기사를 읽었다. “당시 가맹된 호텔도 5곳뿐인데 상품만 내면 사람들이 살 거라는 순진한 생각에 준비가 미흡한 줄 몰랐다” 많은 스타트업이 이런 위기에 봉착하곤 한다. 아이디어 구상단계에서 생각하지 못한 현실적 문제가 발목을 잡는 경우다. 신 대표는...

리더쉽은 무엇일까

3 minute read

리더쉽은 윗사람만 가져야할 덕목은 아니라고 생각된다. 리더쉽은 모든 사람이 가져야할 덕목이라고 생각된다. 회사 사장에서 말단 직원까지 가져야하는 것이 바로 리더쉽이라고 본다.그래서 끊임없이 수양하고 배우면서 깨우치는 과정을 거쳐야 한다고 생각된다. 보통 리더쉽은 누군가를 이끌고 ...

추억의 영화 다이하드

1 minute read

내가 중학교때 이 포스터를 길거리에 본적이 있다. 물론 위에 포스터의 영어는 모두 한글로 되어 있었지만 암튼 이 사진은 맞다. 당시에는 액션영화는 람보와 코만도 등 근육질의 주인공의 영화가 대세인 시대였다. (최소한 비운의 근육질 배우 돌프 룬드그렌 정도도 되어야 했다) 이...

무엇이 더 중요한가

1 minute read

미국 최고의 건축가 프랭크 로이드 라이트가 만든 집이다. 폭포근처에 건물을 지은 것이 아니라. 폭포위에 집을 얹어 자연의 조화를 이룬 걸작으로 유명하다. 폴링워터하우스 [도서]기브앤테이크 (생각연구소: 에댐 그랜트 지음)에 다음의 내용이 있다. 프랭크 로이드 라이트는 ...

유목형인재와 농부형인재

1 minute read

조직내에서는 크게 사람을 두 부류로 분류하자면 유목인과 농부인가로 결정할 수 있을 것 같다. 유목인스타일은 항상 무언가 새로운 것을 찾는 것이다. 마치 더 좋은 목초지가 있을 것이라고 판단하고 끊임없이 이동하고 타민족과 부딪치며 얻을 것을 얻고 배운다 유목인스타일에서 한 곳에 안...

복지란 언제 하는 것일까

less than 1 minute read

스웨덴을 복지로 이끈 정치인 비그포르스 보통 갑자기 복지를 하면 그리스처럼 망한다는 주장을 많이 들었다. 그러나 복지는 인간의 추구해야햘 가치이지, 수단이 아니다. 복지를 향해 나아가는 과정에서 사회적인 대타협이 없고 일부만 특혜를 본다면 실패할 수밖에 없다. 이것은 복지자...

[영화] 진정한 승리를 가르쳐준 록키 발보아

1 minute read

록키발보아 (2006년 개봉). 록키의 6편째이자 마지막편이라 할 수 있다. 중/고등학교 때 록키1부터 시작하여 4편까지 본 기억이 난다. 그뒤로 5편이 나왔지만 이미 어느새 관심이 사라지기 시작했다. 그러다 우연이 실베스터 스텔론이 환갑에 나이에 록키영화를 찍는다고 해서 웃...

성공은 결코 같은 과정으로 반복되지 않는다.

4 minute read

2014년 6월 23일 브라질 월드컵. 대한민국과 알제리의 경기는 결국 2:4 라는 참사로 끝났다. 패배의 대한 여러이유가 있지만, 흔히 성공했던 사람들의 고전적인 잘못된 패턴이 바로 과거에 성공했던 방식을 고수하여 같은 성공을 얻으려고 하는데 있다. 난 홍명보감독과 국가대표를 ...

완벽한 준비가 먼저일까 빠른 출발이 먼저일까

2 minute read

흔히 프로그램을 개발할 때 가장 겪는 딜레마라 본다. 어떤 이들은 좀더 완벽하게 가다듬고 출시해야 한다는 사람도 있고, 어떤 이들은 먼저 출발하고 서서히 가다듬는 것이 좋다는 의견도 있다. 사내에서 회의를 정하면 전자로 기울여지는 경우가 많다. 대부분의 개발자, 기획자들은 좀더 ...

데브옵스(DevOps)에 대하여

3 minute read

최근에 DevOps(데브옵스)라는 개발방법론이 솔솔 들리고 있다. 데브옵스는 개발(Development) + 운영(Operation)을 합친 말로 개발와 운영의 상호작용을 원할하게 하는데 있다고 합니다. [마이크로소프트웨어]잡지 2013년 12월호에서 신현목님께서 기고한 글(데브...

Trello를 사용하자.

1 minute read

트렐로(Trello)는 협업도구이다. 스크럼에서 스프린트 백로그가 있다. 커다란 화이트보드에 업무진행을 포스트잇으로 붙여서 업무를 공유하고 진행사항을 파악하는 것인데, 이런 것이 온라인으로는 없을까 했는데 역시 있었다. 국내 N포털사에도 사용한다고 들었다. 사내에서 스크럼과 X...

Back to top ↑

linux

Linux에 쉘스크립트(sh) 서비스등록

less than 1 minute read

스프링 부트등을 실행가능한 jar로 만들고 서비스를 등록할 경우가 생긴다. 이때 jar를 실행한 스크립트를 만들고 사용하는 경우가 있는데 해당 스크립트를 서비스에 등록하도록 한다. 1. 실행 스크립트 작성(start.sh) test.jar를 실행시키는 스크립트 PID_FILE...

Vritual Box에서 CentOS minimal Install

1 minute read

Centos에서 CentOS-8.2.2004-x86_64-minimal.iso 를 다운받는다. 미니멀버전을 설치하는 이유는 vm에서 좀더 가볍게 사용하기 위함이다. 굳이 UI(X-Window)를 사용하지 않고 터미널작업만 한다면 미니멀 버전이 적격이다. 1. virtaul bo...

Ubuntu에서 file descriptors & vm.max_map_count 설정

less than 1 minute read

우분투 Desktop에서 단순히 /etc/security/limits.conf 만 수정해선 안된다. 아래 순서대로 진행해야 한다. 1. sudo vi /etc/systemd/system.conf : max file descriptors [4096] for elasticsearc...

카프카(Kafka)를 설치(Install)해보자

4 minute read

1 . 환경 카프카를 설치하는 환경은 Virtualbox를 통해 Centos7에 설치를 하겠다. 기본적으로 클러스트를 구성하기 위해서 3대로 설치가 진행된다. 카프카를 설치할 경우 주키퍼(Zookeeper)도 설치해야 하는데 보통 주키퍼3대, 카프카3대로 별도로 구성하는데 여기서...

Centos7 minimal 설치 후 작업

1 minute read

Centos7 minimal 버전을 설치하고 기본적으로 꼭 필요한 추가 작업을 진행해보자. 여기서는 보통 virtualbox를 통해 테스트용으로 선택했을 것이다. 따라서 이 문서에서는 이를 배경으로 설명하겠다. 일단 설치과정은 너무 쉽고 또 쉽게 찾을 수 있으므로 여기선 생략하겠다...

기술블로그는 관대해져야 한다

2 minute read

개발자라면 구글이나 스택오브플로우 없이는 개발이 안될 것이다. 어떤 문제가 발생했을 때 우리는 이미 그 문제를 겪어서 해결한 사람의 도움을 받는다. 그런데 개발관련 블로그들 중에서 복사를 막는 블로그들이 있다. 내용이 좋아서 해당 소스코드를 활용해보려고 하는데 복사를 막으면 어쩌란...

Ubuntu에서 Mongodb 설치하기

1 minute read

Ubuntu 14.04 에서 Mongodb를 설치해보자. Mongodb 홈페이지에서 tgz로 압축된것을 받고 자신의 홈디렉토리에 압축을 푼다. 프로필을 수정하자. sudo vi /etc/profile export MONGODB_HOME = /home/userhome/mongo...

라즈베리파이2(Raspberry Pi2)에서 OSMC를 이용해 영화를 보자

4 minute read

보통 집에서 다운받은 영화나 미드를 볼 때, 거실에서 TV등과 연결해서 보고 싶을 때가 있다. 그럴려면 PC로 다운받은 영화를 USB나 외장하드에 옮기고 다시 그것을 TV에 연결해서 보거나 아님, TV에서 노트북등으로 연결해서 봐야 한다. 여간 귀찮다. 그렇다고 관련된 기기를 사자...

Rails에서 Mariadb 연동

less than 1 minute read

Rails 에서 mariadb를 연동한다. 환경은 아래와 같다. 설치 버전 Ubuntu 14.04 ruby 2.2.3 rai...

Ubuntu에서 Ruby 설치하기

1 minute read

우분투(14.04)에서 루비(2.2.3)를 설치해보자. 루비를 설치하는 방법은 두 rvm과 rbenv로 설치하는 두 가지 방법이 있다. 나중에 레일즈도 설치해야 하므로 rbenv로 설치를 진행한다. rbenv가 rvm보다 사용법이 간단하다고 한다. 먼저, 사전에 git등은 설치...

하둡(Hadoop)의 HDFS에 대한 기본설명

2 minute read

하둡에서 HDFS에 대해 기본적인 기능을 알아보자. 아래내용은 도서 시작하세요! 하둡프로그래밍(위키북스/정재화지음)에서 HDFS만 발췌/요약정리한 내용이다. 하둡을 처음 공부하는 사람들에게 강력추천한다. 1. 하둡이란? 하둡은 대용량 데이터를 분산 처리할 수 있는 자바 기반의...

우분투(Ubuntu 14.04)에 하둡(Hadoop)을 가상모드로 설치하기

2 minute read

하둡(Hadoop)을 설치하려면 먼저 우분투에 자바가 설치되어 있어야 한다. 오라클 자바7 버전 이상을 설치하도록 한다(가급적 다운받아 설치하는게 좋다) 그리고 나서 설정이 등록되어야 한다. vi /etc/profile 열고 아래 경로를 추가하자. JAVA_HOME=/home...

Ubuntu에서 linux-server 의존성 에러발생시

less than 1 minute read

Ubuntu에서 의존성 에러시 sudo apt-get -f install로 해도 실패가 나는 경우가 있다. 바로 아래 같은 경우이다. $> sudo apt-get -f install 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중...

ubuntu에서 mariaDB와 mysql-workbench 설치

less than 1 minute read

우분투에서 mariadb를 수동으로 설치하는 방법과 동시에 apt-get으로 설치하는 방법이 있다. 그런데 수동설치(즉,압축해제)를사용했을경우 설치후에 실행이 잘 되지만, mysql-workbench를 설치하면 workbench가설치될때 같이설치되는 mysql관련모듈때문에 mar...

Redmine을 ubunt14.04에 설치하기

3 minute read

우분투에 레드마인(redmine)을 설치해보자. 설치환경은 아래와 같다. OS : Ubuntu 14.04 Server 64bit DB : ‘5.5.33a-MariaDB’ 레드마인은 아피치+MYSQL로 연동되어진다. 그러므로 두개가 설치되어야 한다. (mariaDB도 가...

Ubuntu에서 mariadb 설치하기

1 minute read

mariaDB 파일 설치 mariaDB는 홈페이지에서 각 OS에 맞게 다운로드 하는 설명이 자세히 나와 있다. 여기서는 파일을 다운로드 받아서 설치하는 방법을 설명한다. mariaDB를 버전에 맞게 다운받는다. 루트가 아닌 홈디렉토리에 압축을 해제한다. tar -zxvpf /p...

Back to top ↑

javascript

Gradle Javascript, CSS Minify 하는 방법

2 minute read

Gradle에서 css, javascript를 Minify를 하기 위헤서는 해당 플러그인을 설치해야 한다. eriwen 이라는 개발자가 만든 플러그인이다. gradle-js-plugin gradle-css-plugin 그런데 사이트에서는 모든 css/js 파일을 하나...

Javascript에서 Prototype은 무엇인가

2 minute read

자바스크립트에서 어렵고 이해가 가지 않는 부분이 바로 Prototype이다. 특히 자바개발자에게는 더더욱 헷갈리다. 본문에서는 자바개발자의 마인도로 이해하도록 하겠다. 자바스크립트에서는 자바와 같은 클래스가 존재하지 않는다. 클래스와 없다면 객체지향개발, 즉 상속등이 불가능하다는 ...

Javascript에서 this의 모든 것

1 minute read

자바스크립트에서 this에 대한 정리를 해본다. 1. 객체의 메소드 안에서의 this 객체의 메소드안에서 사용된 this는 해당 메소드를 호출한 객체에 바인딩된다. 아래 소스를 보자. var obj = { sayName: function () { cons...

Javascript에서 Facebook API 사용

1 minute read

페이스북 API를 사용하려면 먼저 Facebook Developer로 등록해야 하고 사용할 App을 등록해야 한다. 여기서 App를 등록하는 것은 생략한다. app를 등록하면 appId를 받는다. 그것을 가지고 작업을 해야 한다. 보통 index.html등에 웹사이트를 시작하므로...

Javascript에서 비공개맴버 처리

1 minute read

자바스크립트에서 객체와 생성자함수에는 자바와는 달리 public, private등의 별도의 문법이 없다. 그런데 클로저를 이용하면 이와 같은 private처리를 할 수 있다. 아래소스를 보면 객체와 생성자함수 모두 멤버에 접근하고 수정할 수가 있다. var person = { ...

자바스크립트에서 메모이제이션(Memoization) 패턴

1 minute read

자바스크립트에서 메모이제이션패턴에 대해 알아보자. 메모이제이션 패턴 : 함수내에 불필요한 작업을 피하기 위해 이전에 연산된 결과를 저장하고 사용하는 패턴 이 글은 더글라스 크락포드의 자바스크립트 핵심가이드 에서 메모제이션패턴의 소스와 내용을 그대로 참조했다. 피보나치 수열을 구현...

Javascript에서 사용자정의 생성자함수

2 minute read

자바스크립트에서 객체를 만드는 방법중에 객체 리터럴, new Object(), 그리고 생성자함수를 통해 만드는 방법이 있다. 가장 좋은 것은 객체 리터럴이고, 쓰지 말아야 하는 것은 new Object()를 통해 객체를 생성하는 것이다. 이유는 인자로 전달되는 값에 때라 생성자 ...

자바스크립트의 프로토타입(Prototype)은 무엇인가

1 minute read

자바스크립트에서 중요한 개념중에 하나가 바로 프로토타입이다. 프로토타입은 무엇인가? 더글락스의 크락포드의 자바스크립트의 핵심가이드(한빛미디어)에서 프로토타입을 설명을 부분이다. 모든 객체는 속성을 상속하는 프로토타입 객체에 연결되어 있습니다. 객체 리터럴로 생성되는 모든 ...

AngularJS 공부를 위한 세팅준비

1 minute read

Javascript framework인 AngularJS를 공부하기 위해 세팅부터 하자. 일단 그냥 html만들고, js만들어서 브라우저를 실행시켜도 되지만, 웹서버에서 구동하면서 공부하면 더 많은 장점을 얻을 수 있다. Tomcat등을 이용해서 활용할 수도 있지만, node.j...

JQuery와 Spring간의 Cookie 연동

less than 1 minute read

JQuery에서 쿠키를 저장하고 Spring Controller에서 저장된 쿠키를 체크하는 기능이 필요할 때가 있다. 일단, JQuery에서 쿠키를 처리하는 플러그인을 받는다. jquery-cookie 에서 다운받거나 bower를 쓴다면 아래 처럼 실행한다. bower ins...

구글 단축 URL API 사용방법 (Javascript)

1 minute read

구글에서 제공하는 단축URL API를 이용하여 자바스크립트에서 사용해보자. 먼저 구글에 개발자로 등록이 되어야 한다. 단축URL페이지로 이동한다. 1. 구글개발자에서 단축URL 등록페이지로 이동한다. https://developers.google.com/url-shortene...

Back to top ↑

elasticsearch

elasticsearch 7.6 수동설치 TLS 설정

less than 1 minute read

로컬 경로 : /home/ykkim/elastic/elasticsearch-7.6.0 1. tmp 폴더생성 mkdir tmp cd tmp mkdir cert 2. instance.yml 생성 instances: - name: "node-1" ip:...

Elasticsearch Lovins, Porter, Porter2 비교

2 minute read

Elasticsearch에서 stemming Algorithms 에 대해 비교분석해보자. 보통 Lovins Stemmer와 Porter Stemmer로 나누어지는데 장단점은 아래와 같다. 출처) https://pdfs.semanticscholar.org/1c0c/0fa35d4ff...

Elasticsearch Search APIs

2 minute read

Routing 엘라스틱에서 서치를 할때는 보통 여러개의 사드에서 검색이 이루어진다. 때문에 데이터가 많아지거나 샤드가 많을 수록 다소 지연될 수 있다. 이럴 때 Routing을 사용하면 특정 사드에 인덱싱이 되기 때문에 검색시 특정 샤드에서 검색만 되기 때문에 보다 빠르게 검색이...

Logstash에서 Kafka Input 사용

1 minute read

Kafka INPUT를 사용하기 위해서는 플러그인을 먼저 인스톨 해야 한다. ./bin/logstash-plugin install logstash-input-kafka 이제 conf 파일을 작성해보자. input { kafka { bootstrap_se...

Logstash에서 JDBC Input 사용

less than 1 minute read

Logstash에서 JDBC Input를 사용해보도록 하자. 먼저 해당 플러그인을 인스톨한다. /usr/share/logstash/bin/logstash-plugin install logstash-input-jdbc conf 파일을 만들어서 아래와 같이 설정하면 된다. in...

Elasticsearch에서 Reindex 살펴보기

3 minute read

Elasticsearch에서 reindex를 사용하기 위해서는 두가지 사항을 알고 있어야 한다. _source 는 enabled 상태인 index만 reindex가 가능하다. reindex는 복사가 아니다. 즉 reindex를 하려는 index의 mapping정보도 똑같...

Elasticsearch에서 Template 사용하기

1 minute read

엘라스틱서치에서 우리는 인덱스에 대한 매핑을 작성하고 데이터를 수집한다. 그런데 만약 로그성 데이터를 받을 경우 예를 들어서 일자별이나 월별로 인덱스가 생성되는 경우는 어떻게 할까? 미리 미리 매핑을 만들 수는 없을까? 이럴때 바로 Template를 이용하는 것이다. 예를 들어 ...

Logstash에서 xml 파일 파싱작업

1 minute read

logstash에서 xml파일을 읽고 처리하는 방법을 처리해본다. 1. xml 파일 읽고 처리 아래와 같은 일반적인 xml 구조로 테스트해본다. <?xml version="1.0" encoding="utf-8"?> <simpleData> <s...

Elasticsearch에서 분산모델2(Distributed Model)

2 minute read

이전에 마스터와 세컨드 노드를 간단히 추가해보았다. 그리고 노드가 추가되면 마스터가 가지고 있는 클러스트 상태정보는 추가되는 슬레이브 노드에게 전달된다. 그리고 이 클러스트 상태 (Cluster State)에는 샤드(Shard)정보를 가지고 있다. 그럼 샤드는 무엇인가? 1. 샤...

Elasticsearch에서 분산모델(Distributed Model)

3 minute read

1. 노드(node)란? 엘라스틱에서 분산처리모델에서 알아보도록 하자. 분산처리에 앞아서 가장 먼저 알아야 할 것이 바로 노드(node)이다. 노드란 무엇인가? 노드의 특징은 크게 3가지로 정의할 수 있다. 노드는 엘라스틱 서치의 인스턴스(instance)이다. 노드는...

Elasticsearch에서 매핑(mapping) 하기

3 minute read

Elastic에서 index를 생성할 때 가장 중요한 것인 바로 매핑이 아닌가 싶다. 매핑은 RDBMS에서는 스키마같은 것이다. 엘라스틱에서 처음 인덱스를 생성하면 자동으로 매핑이 만들어진다. 하지만 실제로 그렇게 사용하는 경우는 드물다. 키바나와 효과적으로 연동하기 위해서 효율...

Elasticsearch와 spring 연동

4 minute read

Spring에서 Elasticsearch와 연동해보자. Elasticsearch는 기본적으로 http통신의 RestAPI이기 때문에 스프링에서 제공하는 RestTemplete를 이용해도 된다. 여기서는 Elasticsearch에서 제공하는 라이브러리를 이용해보도록 해보자. 1. ...

Back to top ↑

mariadb

Mysql[Mariadb]에서 Trigger and Event 사용

1 minute read

1. Trigger 사용법 트리거는 특정 테이블에 레코드가 입력(수정)될 경우 연관된 작업을 처리하는 방법이다. 예를 들어서 책을 관리하는 테이블에서 책이 입력될때마다 판매테이블에 책가격에 마진을 포함해서 넣는 과정이 필요하다고 가정하자. CREATE TABLE `book` (...

Docker install Mariadb(MySQL)

less than 1 minute read

1. 도커 이미지 다운받기 docker pull mariadb (or mysql) 2. 컨테이너 실행 localhost의 3306포트 사용시 바로 mysql포트로 연결한다. docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 ...

MariaDB Galera, Maxscale 설치

3 minute read

Mariadb에서 Galera와 Maxscale를 설치해본다. 1. Galera 설치 Galera를 사용하려면 최소 3대의 장비가 필요하다. 테스트는 아래 장비로 구성한다. server name ip ...

Rails에서 Mariadb 연동

less than 1 minute read

Rails 에서 mariadb를 연동한다. 환경은 아래와 같다. 설치 버전 Ubuntu 14.04 ruby 2.2.3 rai...

MariaDB(MySQL)에서 UTF8MB4 설정

less than 1 minute read

MySQL(MariaDB)에서 이모티콘을 테이블에 저장하려면 기존의 utf8형식으로는 저장이 안된다. 그 이유는 이모티콘은 4바이트인데 mysql, mariadb에서는 utf8이 3바이트로 설계가 되었기 때문이다. 이 부분에 대한 자세한 설명은 <[MySQL/MariaDB]...

ubuntu에서 mariaDB와 mysql-workbench 설치

less than 1 minute read

우분투에서 mariadb를 수동으로 설치하는 방법과 동시에 apt-get으로 설치하는 방법이 있다. 그런데 수동설치(즉,압축해제)를사용했을경우 설치후에 실행이 잘 되지만, mysql-workbench를 설치하면 workbench가설치될때 같이설치되는 mysql관련모듈때문에 mar...

Ubuntu에서 mariadb 설치하기

1 minute read

mariaDB 파일 설치 mariaDB는 홈페이지에서 각 OS에 맞게 다운로드 하는 설명이 자세히 나와 있다. 여기서는 파일을 다운로드 받아서 설치하는 방법을 설명한다. mariaDB를 버전에 맞게 다운받는다. 루트가 아닌 홈디렉토리에 압축을 해제한다. tar -zxvpf /p...

Back to top ↑

ubuntu

Ubuntu에서 Mongodb 설치하기

1 minute read

Ubuntu 14.04 에서 Mongodb를 설치해보자. Mongodb 홈페이지에서 tgz로 압축된것을 받고 자신의 홈디렉토리에 압축을 푼다. 프로필을 수정하자. sudo vi /etc/profile export MONGODB_HOME = /home/userhome/mongo...

Ubuntu에서 Ruby 설치하기

1 minute read

우분투(14.04)에서 루비(2.2.3)를 설치해보자. 루비를 설치하는 방법은 두 rvm과 rbenv로 설치하는 두 가지 방법이 있다. 나중에 레일즈도 설치해야 하므로 rbenv로 설치를 진행한다. rbenv가 rvm보다 사용법이 간단하다고 한다. 먼저, 사전에 git등은 설치...

우분투(Ubuntu 14.04)에 하둡(Hadoop)을 가상모드로 설치하기

2 minute read

하둡(Hadoop)을 설치하려면 먼저 우분투에 자바가 설치되어 있어야 한다. 오라클 자바7 버전 이상을 설치하도록 한다(가급적 다운받아 설치하는게 좋다) 그리고 나서 설정이 등록되어야 한다. vi /etc/profile 열고 아래 경로를 추가하자. JAVA_HOME=/home...

Ubuntu에서 linux-server 의존성 에러발생시

less than 1 minute read

Ubuntu에서 의존성 에러시 sudo apt-get -f install로 해도 실패가 나는 경우가 있다. 바로 아래 같은 경우이다. $> sudo apt-get -f install 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중...

ubuntu에서 mariaDB와 mysql-workbench 설치

less than 1 minute read

우분투에서 mariadb를 수동으로 설치하는 방법과 동시에 apt-get으로 설치하는 방법이 있다. 그런데 수동설치(즉,압축해제)를사용했을경우 설치후에 실행이 잘 되지만, mysql-workbench를 설치하면 workbench가설치될때 같이설치되는 mysql관련모듈때문에 mar...

Redmine을 ubunt14.04에 설치하기

3 minute read

우분투에 레드마인(redmine)을 설치해보자. 설치환경은 아래와 같다. OS : Ubuntu 14.04 Server 64bit DB : ‘5.5.33a-MariaDB’ 레드마인은 아피치+MYSQL로 연동되어진다. 그러므로 두개가 설치되어야 한다. (mariaDB도 가...

Ubuntu에서 mariadb 설치하기

1 minute read

mariaDB 파일 설치 mariaDB는 홈페이지에서 각 OS에 맞게 다운로드 하는 설명이 자세히 나와 있다. 여기서는 파일을 다운로드 받아서 설치하는 방법을 설명한다. mariaDB를 버전에 맞게 다운받는다. 루트가 아닌 홈디렉토리에 압축을 해제한다. tar -zxvpf /p...

Back to top ↑

jpa

Hibernate.initialize()란

1 minute read

Hibernate.initialize()는 Hibernate에서 지연 로딩(Lazy Loading) 된 엔터티나 컬렉션을 명시적으로 초기화하는 메서드다. 지연 로딩 전략을 사용할 때, 관련 엔터티나 컬렉션은 데이터베이스에서 즉시 로드되지 않고, 실제로 접근할 때 데이터베이스 쿼리가...

@QueryProjection VS Projections.constructor 차이점

2 minute read

Projections.constructor와 @QueryProjection은 서로 다른 상황에서 사용되며, 각각의 장단점이 있다. 그러나 두 기능은 서로 독립적으로 작동할 수 있기 때문에, Projections.constructor를 사용할 때 꼭 @QueryProjection을 ...

네이티브 쿼리에서 DTO를 매핑하는 가장 쉬운 방법

1 minute read

복잡한 통계 쿼리를 사용할 때는 네이티브 쿼리를 사용하고는 한다. 그리고 그 결과를 DTO에 매핑하기 위해 JPA에서 제공하는 natvieQuery를 사용해도 되는 데 DTO매핑이 쉽지 않다. 그래서 QLRM을 사용하는 방법을 소개하겠다. QLRM을 사용하면 DTO 매핑이 매우 쉬...

JPA에서 Collection 처리

4 minute read

JPA에서 @OneToMany <> @ManyToOne를 통해 양뱡향 처리하고 Collection으로 처리하는 방법을 알아본다. 아래와 같은 테이블 구조가 있다. 출판사(publisher)와 도서(book)은 일대다 <-> 다대일 관계로 앙뱡한 연관관게로...

Back to top ↑

mysql

Mysql[Mariadb]에서 Trigger and Event 사용

1 minute read

1. Trigger 사용법 트리거는 특정 테이블에 레코드가 입력(수정)될 경우 연관된 작업을 처리하는 방법이다. 예를 들어서 책을 관리하는 테이블에서 책이 입력될때마다 판매테이블에 책가격에 마진을 포함해서 넣는 과정이 필요하다고 가정하자. CREATE TABLE `book` (...

Docker install Mariadb(MySQL)

less than 1 minute read

1. 도커 이미지 다운받기 docker pull mariadb (or mysql) 2. 컨테이너 실행 localhost의 3306포트 사용시 바로 mysql포트로 연결한다. docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 ...

MySQL에서 my.cnf 주요설명

1 minute read

MySQL에서 my.cnf에서 알아야 하는 중요한 세팅값을 정리해본다. 가장 많이 사용하고 중요한 옵션만 설명했다. 해당 설명은 전적으로 <Real MySQL(지은이: 이성욱, 출판사: 위키북스)> 를 참조했음 밝힌다(강력추천) 설정값 ...

MariaDB(MySQL)에서 UTF8MB4 설정

less than 1 minute read

MySQL(MariaDB)에서 이모티콘을 테이블에 저장하려면 기존의 utf8형식으로는 저장이 안된다. 그 이유는 이모티콘은 4바이트인데 mysql, mariadb에서는 utf8이 3바이트로 설계가 되었기 때문이다. 이 부분에 대한 자세한 설명은 <[MySQL/MariaDB]...

ubuntu에서 mariaDB와 mysql-workbench 설치

less than 1 minute read

우분투에서 mariadb를 수동으로 설치하는 방법과 동시에 apt-get으로 설치하는 방법이 있다. 그런데 수동설치(즉,압축해제)를사용했을경우 설치후에 실행이 잘 되지만, mysql-workbench를 설치하면 workbench가설치될때 같이설치되는 mysql관련모듈때문에 mar...

Back to top ↑

tool

젠킨스(Jenkins)에서 원격(Remote)으로 배포하기

1 minute read

Jenkins에서 원격으로 배포하는 방법을 알아보자. 젠킨스에서 원격으로 배포하기 위해서는 해당 플러그인을 받아야 하다. 가장 많이 사용하는 플러그인은 아래와 같다 Publish Over SSH Plugin SSH2Easy Plugin 우리는 여기서 Publish O...

Redmine과 Github연동

1 minute read

Redmine 에서 Github소스와 연동하면 등록된 일감과 연동된 코드를 보면서 업무를 관리할 수 있다. 먼저 Redmine에서 제공하는 github용 플러그인을 설치해야 한다. 물론 Redmine에 설치된 서버에 git이 설치되어 있어야 한다 Redmine에서는 등록된 git...

[Sublime Text2] GoSublime 에서 GOPATH관련 에러 발생시

less than 1 minute read

Sublime Text2에서 go언어를 빌드하는 패키지에 goSublime이 있다. goSublime : https://github.com/DisposaBoy/GoSublime 그런데 설치후에 환경설정을 제대로 하지 못하면 Sublime Text를 가동시 아래와 같은 에러가 나...

Jenkins와 Github를 연동하자.

1 minute read

자동화빌드툴로 Jenkins를 사용하고 있고, 소스관리는 Github에서 관리하고 있다면 두가지를 연동해서 사용하면 무척 편리하다. github에 push하는 순간 jenkins에서 pull하고 바로 빌드해주면서 서버에 인스톨할 수있기 때문이다. 이 작업을 하기 위해서는 jenk...

eclipse에서 emmet를 사용하자.

less than 1 minute read

Zen Coding이라고 html태그등을 특수한 문법을 통해 쉽게 아주 빠르게 작성할수있는 코딩법이다. <Emmet> 에서 Watch Demo를 보면 충분히 설명이 될 것이다. 홈페이지에서 다운로드를 클릭하면 각 에디터별로 설치하는 화면이 보인다. 이클립스 설치로 가자...

eclipse 사용자 정의 format 설정

less than 1 minute read

이클립스에서 개발하다보면 개발자들끼리 줄바꿈, 탭, 그리고 {} 위치등이 틀려서 보기 불편할때가 있다. 이럴때는 하나의 format으로 통일하는 것이 좋다. 기존에 crtl+shift+f 키를 누르면 기본 적용이 되지만 줄라인이 80자이면 줄바꿈이 되서 요새같은 와이드모니터에서는...

Back to top ↑

database

Mysql[Mariadb]에서 Trigger and Event 사용

1 minute read

1. Trigger 사용법 트리거는 특정 테이블에 레코드가 입력(수정)될 경우 연관된 작업을 처리하는 방법이다. 예를 들어서 책을 관리하는 테이블에서 책이 입력될때마다 판매테이블에 책가격에 마진을 포함해서 넣는 과정이 필요하다고 가정하자. CREATE TABLE `book` (...

MySQL에서 my.cnf 주요설명

1 minute read

MySQL에서 my.cnf에서 알아야 하는 중요한 세팅값을 정리해본다. 가장 많이 사용하고 중요한 옵션만 설명했다. 해당 설명은 전적으로 <Real MySQL(지은이: 이성욱, 출판사: 위키북스)> 를 참조했음 밝힌다(강력추천) 설정값 ...

MariaDB Galera, Maxscale 설치

3 minute read

Mariadb에서 Galera와 Maxscale를 설치해본다. 1. Galera 설치 Galera를 사용하려면 최소 3대의 장비가 필요하다. 테스트는 아래 장비로 구성한다. server name ip ...

MariaDB(MySQL)에서 UTF8MB4 설정

less than 1 minute read

MySQL(MariaDB)에서 이모티콘을 테이블에 저장하려면 기존의 utf8형식으로는 저장이 안된다. 그 이유는 이모티콘은 4바이트인데 mysql, mariadb에서는 utf8이 3바이트로 설계가 되었기 때문이다. 이 부분에 대한 자세한 설명은 <[MySQL/MariaDB]...

Back to top ↑

jwt

JWT(0.11.5 → 0.12.6) 업데이트

1 minute read

기존의 JWT 라이브러리 버전을 0.11.5 → 0.12.6 로 업그레이드 했더니 기존에 소스중에 deprecated 된 것이 있어 수정한다.

JWT Refresh Token 사용하기

4 minute read

Springboot에서 JWT를 이용해서 토큰을 발급받는데 refresh token도 발급받아서 사용해보자.

Springboot3.x에서 JWT에 권한 적용하기

5 minute read

Springboot 3 버전을 기반으로 권한을 JWT 토큰에 저장하고 각 컨트롤러에서 사용할 수 있도록 처리하는 간단한 샘플 코드를 작성했다.

Springboot에서 JWT 간단 사용하기

4 minute read

기존에 Spring security JWT 연동에 기술했던 내용에서는 spring aouth2를 활용해서 jwt연동을 수행했다. 하지만 aouth2 설정, private key, public key 생성등 복잡한 과정이 많았다. 단순하게 REST API서버에서 해당 암호키를 가지고...

Spring security JWT 연동

5 minute read

1. 기존 oauth2의 문제점 기존의 OAuth2의 단점은 api를 호출할때마다 accessToken이 유효한지 실제 oauth서버에 통해 검증하는 것이다. 이때 매번 oauth에서 해당 토큰의 만료여부등을 DB등에서 조회하고 새로 갱신시 업데이트 작업을 해주어야 한다. 이러한...

Back to top ↑

gradle

Gradle 에서 Multi 프로젝트 만들기

3 minute read

gradle 로 멀티프로젝트를 구성해보자. 여기서 멀티프로젝트란 프로젝트를 구성시 web, app 등으로 용도가 다른 프로젝트를 생성할 경우를 말한다. 이때 바라보는 database가 같다면 아마도 상당수 많은 부분이 공통적으로 겹치게 될 것이다. 유지보수 차원에서 공통인 부분이 ...

Gradle Javascript, CSS Minify 하는 방법

2 minute read

Gradle에서 css, javascript를 Minify를 하기 위헤서는 해당 플러그인을 설치해야 한다. eriwen 이라는 개발자가 만든 플러그인이다. gradle-js-plugin gradle-css-plugin 그런데 사이트에서는 모든 css/js 파일을 하나...

Gradle에서 서버별 패키징 하기

less than 1 minute read

Gradle에서 패키징하는 방법을 알아본다. 본 문서는 <Maven에서 서버별 패키징하기>의 Gradle 버전용 문서이다. 따라서 디렉토리 설정은 같고 다만, Maven은 pom.xml에서 설정하지만 Gradle은 build.gradle에서 설정을 해주는 부분만 다르기...

Maven 사용자를 위한 Gradle 의 간단 사용법

5 minute read

gradle이라는 것을 알았을 때 일단 한숨이 나왔다. 이제 겨우 maven에 적응되었는데 또 다른 툴이라니 오마이갓! 그런데 권남님의 블로그에서 <maven을 넘어 gradle로 가자> 라는 글을 읽고 공감되었다. 무엇보다도 새로운 툴이 나왔다면 개발자라면 응당 호기...

Back to top ↑

maven

Maven에서 js 파일 minify 하기

2 minute read

Maven에서 js파일을 압축하여 패키징하도록 해보자. 일단, 개발자들의 로컬에서는 압축되지 않은 상태로 사용하다고 패키징할때 압축하여 배포하는 방식으로 사용하면 편하다. 보통은 aa.js을 aa.min.js으로 압축하지만 만약 각각의 jsp나 html파일에 js경로가 적혀있다면 ...

Maven에서 서버별 패키징하기

1 minute read

Maven으로 개발시 환경별로 패키징해야 할 필요가 있다. 즉, DB가 로컬, 데모, 리얼서버별로 각각 다를 경우 DB접속정보는 각각 다르다. 이때 각각 다른 접속정보를 가지고 패키징이 되어야 한다. 또한 로그도 경로가 다르기때문에 각각 패키징해야 한다. 1. 각각의 패키징 폴더...

Maven 사용자를 위한 Gradle 의 간단 사용법

5 minute read

gradle이라는 것을 알았을 때 일단 한숨이 나왔다. 이제 겨우 maven에 적응되었는데 또 다른 툴이라니 오마이갓! 그런데 권남님의 블로그에서 <maven을 넘어 gradle로 가자> 라는 글을 읽고 공감되었다. 무엇보다도 새로운 툴이 나왔다면 개발자라면 응당 호기...

Back to top ↑

python

Django에 postgresql 설정

less than 1 minute read

1. settings.py 데이터베이스 설정 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': '디비명', 'USER': '계정명', ...

Java에서 Python 파일 실행

less than 1 minute read

Java에서 Python파일을 호출해서 실행해보도록 하자. 보통 processBuilder 등을 사용하는데 여기서는 Apace Commons Exec 를 사용하도록 한다. Gradle 설정 implementation 'org.apache.commons:commons-exec:1...

Django migrations 초기화

less than 1 minute read

장고에서 마이그레이션을 초기화하는 방법 해당 app의 migrations 폴더에서 __init__.py 만 남겨두고 나머지 파일들 삭제 DB에서 해당 테이블을 Drop 한다. DELETE FROM django_migrations WHERE app = ‘your_app...

Back to top ↑

docker

Docker로 PostgreSQL설치하고 연결하기

less than 1 minute read

이미지 받고 설치 docker pull postgres docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=1234 -d postgres 설치 및 가동확인 docker ps PosgreSQL 구동확인 docke...

Docker install Mariadb(MySQL)

less than 1 minute read

1. 도커 이미지 다운받기 docker pull mariadb (or mysql) 2. 컨테이너 실행 localhost의 3306포트 사용시 바로 mysql포트로 연결한다. docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 ...

Docker에서 /var/lib 변경

1 minute read

우분투나 데비안계열에서 도커 설치시 컨테이너 저장경로가 디폴트로 /var/lib 안에 설정된다. 여기 파티션크기가 적다면 용량문제에 접하게 되거나 root안에 있다면 os재설치시 문제가 생긴다. 따라서 docker 설치후에 위 저장경로를 변경하는 것을 설명한다. docker를 a...

Back to top ↑

aws

AWS에 EBS 볼륨 추가 후 작업(마운트)

1 minute read

EBS볼륨을 추가하면 마운트 작업을 해야만 사용할 수 있다. df -h 표시하면 콘솔에서 추가한 EBS 볼륨이 보이지 않는다. [ec2-user@ip-서버IP ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs...

Identity and Access Management(IAM)

1 minute read

Identity and Access Management(IAM) 이란? AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 ...

AWS IoT Greengrass와 라즈베리파이 설정

1 minute read

AWS IoT Greengrass에서 Raspberry Pi를 연결하는 세팅을 해본다. 사전에 라즈베리에 라즈베리안 os와 ssh기능이 활성화 되어야 하고 인터넷연결이 가능한 상태이어야 한다. 1. 유저/그룹생성 sudo adduser --system ggc_user sudo...

Back to top ↑

mybatis

MyBatis에서 Batch처리(SqlSession과 foreach)

2 minute read

Spring과 MyBatis연동시 배치를 처리할 경우가 있다. 한꺼번에 인서트나 업데이트가 필요한 경우있다. 이 때 SqlSession을 반복적으로 처리하는 방법과 xml에서 foreach를 처리하는 방법이 있다. 먼저 DB는 Mariadb(MySql)을 기준으로 설명한다. te...

mybatis에서 selectKey 사용법

1 minute read

DB작업을 하다보면 먼저 사전에 어떤 키값을 가져와서 증가시켜서 입력하거나 혹은 입력후에 증가된 키값을 가져올 필요가 있다. 이럴때 mybatis에서 제공하는 selectKey를 이용하면 별도의 쿼리로직을 등록할 필요없이 해당 메소드에서 일괄처리할 수가 있다. 샘플로 아래와 같...

Back to top ↑

mac

[Sublime Text2] GoSublime 에서 GOPATH관련 에러 발생시

less than 1 minute read

Sublime Text2에서 go언어를 빌드하는 패키지에 goSublime이 있다. goSublime : https://github.com/DisposaBoy/GoSublime 그런데 설치후에 환경설정을 제대로 하지 못하면 Sublime Text를 가동시 아래와 같은 에러가 나...

Mac에서 homebrew를 통한 mariadb 설치

1 minute read

맥에서 homebrew를 이용해서 mariadb를 설치해본다. 환경:OX Yosemite 먼저 <homebrew>를 설치해야 한다. homebrew는 우분투의 apt-get 같은 패키지인스톨 프로그램이라고 생각하면 된다. 위 사이트에서 설치를 진행한다. 설치가 완료된...

Back to top ↑

json

Java에서 JSON(GSON)사용

1 minute read

Java에서 간단하게 json을 생성하고 파싱하는 방법을 알아보자. 여러가지 라이브러리가 있는데 우리는 여기서 구글에서 만든 gson를 이용하겠다. gson은 비교적 가볍고, 메이븐저장소를 지원하고 전반적으로 성능이 좋아서이다. 먼저 메이븐으로 다운로드한다. <depend...

Spring에서 JSON과 연동방법

less than 1 minute read

Spring에서 JSON과 REST API로 연결하는 방법은 두 가지가 있다. 1. MappingJackson2HttpMessageConverter 을 이용하여 세팅하는 방법 먼저 pom.xml에서 관련된 라이브러리를 다운받는다. <!-- JSON 방식으로 통신 ( M...

Back to top ↑

git

SSH 인증 여러개 사용하기

1 minute read

Github나 Gitlab(or Bitbucket) 등 여러개의 GIT 서비스를 사용한다면 ssh를 각각 해두고 싶을 때가 있다. 개인프로젝트는 Github, 회사는 Gitlab등을 사용하는 경우가 그렇다. 이럴때는 ssh의 인증을 여러개 만들 수 있다. 여기서는 두개만 생성한다...

Redmine과 Github연동

1 minute read

Redmine 에서 Github소스와 연동하면 등록된 일감과 연동된 코드를 보면서 업무를 관리할 수 있다. 먼저 Redmine에서 제공하는 github용 플러그인을 설치해야 한다. 물론 Redmine에 설치된 서버에 git이 설치되어 있어야 한다 Redmine에서는 등록된 git...

Back to top ↑

ruby

Rails에서 Mariadb 연동

less than 1 minute read

Rails 에서 mariadb를 연동한다. 환경은 아래와 같다. 설치 버전 Ubuntu 14.04 ruby 2.2.3 rai...

Ubuntu에서 Ruby 설치하기

1 minute read

우분투(14.04)에서 루비(2.2.3)를 설치해보자. 루비를 설치하는 방법은 두 rvm과 rbenv로 설치하는 두 가지 방법이 있다. 나중에 레일즈도 설치해야 하므로 rbenv로 설치를 진행한다. rbenv가 rvm보다 사용법이 간단하다고 한다. 먼저, 사전에 git등은 설치...

Back to top ↑

django

Django에 postgresql 설정

less than 1 minute read

1. settings.py 데이터베이스 설정 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': '디비명', 'USER': '계정명', ...

Django migrations 초기화

less than 1 minute read

장고에서 마이그레이션을 초기화하는 방법 해당 app의 migrations 폴더에서 __init__.py 만 남겨두고 나머지 파일들 삭제 DB에서 해당 테이블을 Drop 한다. DELETE FROM django_migrations WHERE app = ‘your_app...

Back to top ↑

querydsl

@QueryProjection VS Projections.constructor 차이점

2 minute read

Projections.constructor와 @QueryProjection은 서로 다른 상황에서 사용되며, 각각의 장단점이 있다. 그러나 두 기능은 서로 독립적으로 작동할 수 있기 때문에, Projections.constructor를 사용할 때 꼭 @QueryProjection을 ...

Back to top ↑

thread

자바에서 스레드풀(Thread Pool)관리

1 minute read

자바에서 스레드를 필요한 작업마다 생성하는 것은 크게 자원낭비와 안정성에 문제가 있다. 스레드를 생성하고 제거하는 작업에는 자원이 소모된다. 스레드가 많다면 대부분의 대기중인 상태가 되고, 더더욱 메모리 사용량이 많아지고 JVM의 가비지콜렉터에 많은 부담을 주게된다. 또한 모든 ...

Back to top ↑

facebook

Javascript에서 Facebook API 사용

1 minute read

페이스북 API를 사용하려면 먼저 Facebook Developer로 등록해야 하고 사용할 App을 등록해야 한다. 여기서 App를 등록하는 것은 생략한다. app를 등록하면 appId를 받는다. 그것을 가지고 작업을 해야 한다. 보통 index.html등에 웹사이트를 시작하므로...

Back to top ↑

twitter

twitter4j를 통한 twitter 로그인 연동

1 minute read

트위터와 연동하는 자바모듈로 유명한 <twitter4j>가 있다. 스프링과 메이븐을 사용한다면 다음과 같이 pom.xml에 추가한다. <dependency> <groupId>org.twitter4j</groupId> <art...

Back to top ↑

quartz

Spring과 Quartz 연동

2 minute read

Spring과 Quartz를 연동해서 개발해본다. Spring 3.2 와 Quartz 1.8을 연동한다. (Quartz 2.x 버전은 Spring 3.2 버전과 잘 안되므로 1.8로 한다) 1. pom.xml 에 추가 pom.xml에서 quartz와 연동하기 위해서 이클립스에서...

Back to top ↑

log

[Spring4.1]log4j를 logback으로 변경하기

1 minute read

그동안 Spring에서 오랫동안 사용해온 log4j를 새로운 logback으로 변경해보자. Maven을 기반으로 설명한다. 일단 기존의 등록된 log관련은 모두 지워준다. Spring 4.1과 mybatis 3.3.0, mybatis-spring-1.2.3 으로 구축한다 (Spr...

Back to top ↑

mongodb

Ubuntu에서 Mongodb 설치하기

1 minute read

Ubuntu 14.04 에서 Mongodb를 설치해보자. Mongodb 홈페이지에서 tgz로 압축된것을 받고 자신의 홈디렉토리에 압축을 푼다. 프로필을 수정하자. sudo vi /etc/profile export MONGODB_HOME = /home/userhome/mongo...

Back to top ↑

swagger

Spring REST API 문서를 Swagger로 만들자

3 minute read

REST API를 개발할때 관련 문서를 만드는 것은 꽤 귀찮은 일이다. 파라미터가 변경되거나 주소가 변경되면 실제 문서와 소스와 싱크가 맞지 않으면 아무리 문서를 잘 만들어도 소용이 없다. 변경된 소스를 그대로 문서로 만들어 주는 것이 없을까? 그런 고민을 해결해주는 것이 바로 S...

Back to top ↑

redis

Spring에서 Redis 설정

1 minute read

Spring(boot)에서 Redis를 설정하는 것은 무척 간단하다. 레디스를 이용해서 간단하게 페이지 방문자수를 업데이트해주는 것을 만들어보자. 먼저 메이븐에서 먼저 관련 라이브러리를 추가해주자. <dependency> <groupId>org.sp...

Back to top ↑

jenkins

젠킨스(Jenkins)에서 원격(Remote)으로 배포하기

1 minute read

Jenkins에서 원격으로 배포하는 방법을 알아보자. 젠킨스에서 원격으로 배포하기 위해서는 해당 플러그인을 받아야 하다. 가장 많이 사용하는 플러그인은 아래와 같다 Publish Over SSH Plugin SSH2Easy Plugin 우리는 여기서 Publish O...

Back to top ↑

kafka

카프카(Kafka)를 설치(Install)해보자

4 minute read

1 . 환경 카프카를 설치하는 환경은 Virtualbox를 통해 Centos7에 설치를 하겠다. 기본적으로 클러스트를 구성하기 위해서 3대로 설치가 진행된다. 카프카를 설치할 경우 주키퍼(Zookeeper)도 설치해야 하는데 보통 주키퍼3대, 카프카3대로 별도로 구성하는데 여기서...

Back to top ↑

unbuntu

Ubuntu에서 file descriptors & vm.max_map_count 설정

less than 1 minute read

우분투 Desktop에서 단순히 /etc/security/limits.conf 만 수정해선 안된다. 아래 순서대로 진행해야 한다. 1. sudo vi /etc/systemd/system.conf : max file descriptors [4096] for elasticsearc...

Back to top ↑

postgresql

Docker로 PostgreSQL설치하고 연결하기

less than 1 minute read

이미지 받고 설치 docker pull postgres docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=1234 -d postgres 설치 및 가동확인 docker ps PosgreSQL 구동확인 docke...

Back to top ↑

transaction

Back to top ↑

async

Spring에서 @Async 사용

2 minute read

Spring에서는 비동기 처리를 @Async 어노테이션을 통해 간단히 처리할 수 있다.

Back to top ↑

xml

Back to top ↑