Yearly Archives: 2019

Angular2 정리(2) – Hello Angular 및 기본개념설명

앞서 환경이 구축되었다는 가정하에 Angular 프로젝트를 생성합니다. 터미널에서 ng명령어를 통해 Angular 프로젝트를 생성하고 아래와 같이 서버를 실행합니다. // ng new 프로젝트명(소문자와 '-'만 이용하여 생성) $ ng...

Angular2 정리(1) – 설치 및 개발환경 구축

Angular란? Node기반의 완전하고 독립적인 웹 프런트 프레임워크로서, 체계적이고 구조화된 개발 방법 및 환경을 제공합니다. 기존의 웹 개발은 백엔드 서버와 강 결합된 상태의 템플릿 엔진 기반의 개발 방법이 주류였습니다. 웹 개발 환경은 꾸준히 발전해 왔지만 이러한 백엔드 서버의 부가적인 요소로서의 웹 개발은 비효율 적이고, 백엔드 서버의 바운더리 안에서는 더 이상 발전하기 힘든 상황에 직면하였습니다.  Angular를 비롯한 여러 가지 프런트 프레임워크의 주요 목표 중 하나는 html, javascript, css를 통한 웹 개발 시 백엔드 개발 이상의 개발 생산성을 확보하는 것입니다. Angular를 사용하면 개발면에서 상당히 논리적이고 편리한 개발환경을 제공한다는 것을 알 수 있습니다.  뭐가 다른가? 웹 개발을 위한 전용 프레임워크로서, node 기반으로 서버가 실행되며 별도의 백엔드 서버의 부가 요소로서 개발환경을 구성하지 않습니다.(ex. Spring-Freemarker-tomcat) npm명령을 제공하여 쉽게 개발 환경을 구축할 수 있어 기존의 환경보다 놀라운 접근성을 제공합니다.  html, css, typescript 파일로 구성되는 컴포넌트 생성을 통해 기능에 따라 웹 화면을 완전히 독립적으로 실행되는 모듈로 만들 수 있습니다.  Typescript의 사용을 통해 여러 가지 이점을 가지고 개발할 수 있습니다. ( 컴파일을 통한 실행 전 오류 검출, 클래스, 인터페이스, 상속 등 객체지향 프로그래밍 지원, 타입 지정을 통해 데이터의 타입에 따른 오류 처리가 필요 없고, 타입 유추가 가능하여 컴파일 단 오류 검출이 가능.) 막강한 자동완성 기능을 제공하여 웹 개발 시 생산성을 향상할...

Java Optional 사용법

Java8에서 도입된 Optional에 대하여 살펴보겠습니다. Optional class의 목적은 null 참조 대신 Optional value로 표현되는 형식의 솔루션을 제공하는 것입니다. 즉 이전 버전까지의 Java의 고질적인 문제였던...

Python으로 Redis cache 일괄 삭제 프로그램 만들기

이번 실습에서는 Redis key 일부를 입력받아 연관된 캐시를 찾아 삭제해주는 프로그램을 작성해 보겠습니다. 개요 현업에서 Redis는 DB 캐시로 사용하는 경우가 많습니다. Redis를 사용하면 DB 부하를 많이...

Java Stream 실습 코드 정리

개발에서 자주 사용하는 Java stream 예제 코드 정리 // 배열 스트림 String strArr = new String{"one", "two", "three", "four", "five"}; Stream<String> stream = Arrays.stream(strArr); assertThat(stream.collect(Collectors.toList()), contains("one", "two",...

Spring Boot Oauth2 – ResourceServer : 비대칭키를 이용한 서명(asymmetric keys to do the signing process)

이번 시간에는 인증서버와 리소스 서버간에 토큰 인증시 서명 방식을 변경해 보겠습니다. 서명이란 서로간에 신뢰성있는 통신을 하기 위한 절차라고 생각하면 됩니다. 최신 소스는 아래...

학창시절 추억의 중국 무협영화 그리고 마영성의 풍운(風雲)에 대하여

남자라면 한 번쯤 학창 시절, 아니 학창 시절이 아니라도 일생에 한 번쯤은 무협에 푹 빠져 지냈던 시기가 있으리라 생각한다. 나는 80~90년대 홍콩 무협 영화를 어린 시절 비디오로 접했던 추억을 가지고 있는, 이제는 중년에 들어선 나이가 너무 적지도 많지도 않은 그런 나이 때의 사람이다. 천녀유혼 왕조현을 흠모했던. 이제는 아재가 돼버린 세대다. 그리고 이제 고인이 되어버린 장국영 형님도..ㅜㅜ 임청하 누님도 최애 배우중 하나였고, 무술 영화의 주인공으로서 많은 이름을 날렸던 이연걸의 팬이기도 했다. 연결형님은 이제 병마에 시달리시고...

Spring Boot Oauth2 – ResourceServer

이번 장에서는 Spring Oauth2를 이용한 ResourceServer(api서버) 구축을 실습해보겠습니다. 이전 장에서 만든 AuthorizationServer와 연동하여 실습은 진행됩니다. 실습은 bearer 토큰 방식부터 진행합니다. 최신 소스는 아래 GitHub...

Redis – cluster

Redis single instance 구성에 이어 cluster를 구성하는 방법을 실습해 보겠습니다. Cluster란 각기 다른 서버를 하나로 묶어 하나의 시스템처럼 동작하게 함으로써 클라이언트에게 고가용성을 제공하는 것을 말합니다....

Windows10 OpenSSH 클라이언트 활성화, 개발자 모드 + Ubuntu Linux 활성화

Windows10 최신 버전부터 윈도우상에서 ssh명령어를 지원하거나, Ubuntu Linux를 사용할 수 있도록 기능을 제공하기 시작하였습니다. 기존 윈도우 환경에서는 개발자가 리눅스나 Mac 환경처럼 서버 개발을 하기가...

Spring Boot Oauth2 – AuthorizationServer : DB처리, JWT 토큰 방식 적용

앞 장에서는 테스트를 위해 메모리에 정보를 올려놓고 테스트하였으나, 이번에는 DB를 사용해 처리할 수 있도록 개선해 보겠습니다. 최신 소스는 아래 GitHub 주소를 참고해 주세요. https://github.com/codej99/SpringOauth2AuthorizationServer.git 클라이언트...

Spring Boot Oauth2 – AuthorizationServer

Spring 프레임웍에서 제공하는 Oauth2 프로젝트를 이용하여 Oauth Authorization Server를 구축해 보겠습니다. Oauth Authorization은 클라이언트가 서비스 제공자로부터 회원 리소스를 제공받기 위해 인증 및 권한 부여를...

Java Collections – List, Map, Set, Tree, Stack, Queue, Deque

Java에서 데이터의 목록을 저장하는 자료구조인 Collections에 대하여 알아봅니다. Collection에 속해있는 다양한 자료구조를 살펴보고 특징 및 사용법에 대하여 실습해 보겠습니다. List Collection 다수의 데이터(객체)를 순서대로 저장하는 자료구조.저장...

Redis – install

Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스 in-memory 데이터 구조 저장소입니다. string, hashes, lists, sets, sorted sets 데이터 구조를 지원하며. pub/sub를 통한...

Intellij에서 Github의 Spring Gradle Project import 하기

Intellij에서 Github의 Spring Project를 로컬로 Clone 하여 프로젝트를 구성하는 방법에 대해 알아보겠습니다. 참고로 Gradle로 구성된 SpringBoot 기준입니다. Github 프로젝트 주소 복사 Github로 이동하여 clone or...

Spring initializr로 Spring 프로젝트 생성하기

이번 실습에서는 Spring initializr를 이용하여 스프링 프로젝트를 생성해 보겠습니다. 스프링 프로젝트는 초기 생성시 설정이 간소화 되었다고 해도 초심자가 구성하기에는 어려움이 있는것이 사실입니다. 그런 사실을 인지해서인지...

Linux Command – touch, mkdir, rm, cp, mv, du, df

touch - 빈 파일 생성 $) touch hello.txt mkdir - 디렉터리 생성 $) mkdir hellodir rm - 파일 삭제 $) rm hello.txt rm - 확인 없이 파일 삭제 $) rm -f...

Linux Command – cd, dirname, basename, id, uname, cpuinfo, meminfo, locale, ps, kill, top

커서 이동 맨앞으로 : Ctrl+a, 맨뒤로 : Crtl+e pwd : 현재 디렉터리 확인 $ pwd /home/ubuntu cd : 디렉터리 이동 # 계정의 home 디렉터리로 이동 $)...

Java Collectors 알아보기

Stream 의 마지막 단계에서 사용되는 Java Collector에 대해 살펴보겠습니다. 1. Stream.collect() Stream.collect()는 데이터의 중간 처리 후 마지막에 원하는 형태로 변환해 주는 역할을 합니다. collector는 아래와...

SpringBoot2로 Rest api 만들기(10) – Social Login kakao

이번 장에서는 Rest api에 카카오 로그인 연동을 해보겠습니다. 카카오의 로그인은 Oauth2 방식을 따르고 있습니다. Oauth2에 대한 자세한 플로우는 다음 링크를 참고하시기 바랍니다. https://d2.naver.com/helloworld/24942Facebook...

Most Read