분류 전체보기(363)
-
Spring boot - Spring Security(스프링 시큐리티) 란? 완전 해결!
오늘 포스팅할 내용은 Spring Security이다. 사실 필자는 머리가 나빠서 그런지 모르겠지만, 아무리 구글링을 통해 스프링 시큐리티를 검색해도 이렇다할 명쾌한 해답을 얻지 못했다. 대부분 이론적인 설명들은 잘 해주시는 분들이 많지만 실사례로 묵은 채증을 내려주지는 못했다.레퍼런스 또한 마찬가지이다. 영어를 잘 못하는 나로써는 잘 안되는 머릿속 몇 안되는 영어단어를 떠올리고 혹은 정말 모르는 문장은 번역기를 돌려서 보니 오히려 혼란만 가중되었다. 그래서 맘먹고 몇일을 스프링 시큐리티를 파고 들어보니 어느정도 사용할 정도가 되어서 이렇게 포스팅하게 된다. 아마 포스팅은 3~4개 정도로 이어질 것같다. 이번 포스팅에서는 토큰 기반 인증 직전까지의 포스팅이 될 것같고, 다음 포스팅은 이어서 JWT 토큰을..
2019.04.17 -
Spring - ModelMapper란?
컨트롤러에서 요청을 엔티티객체로 받는 경우가 있다. 이럴경우 받은 엔티티 객체로 DB까지 로직들이 순차적으로 수행이 될것이다. 그런데 만약 엔티티를 조회하거나, 리스트를 조회하는 경우가 있다고 가정해보자. 그렇다면 요청을 받고 엔티티객체를 조회한 후에 컨트롤러에서 응답값으로 ResponseEntity body에 엔티티객체를 실어 보낼 수 있다. 하지만 여기에서 만약 엔티티객체에서 내가 보내기 싫은 데이터가 포함되어있다면? 그것이 만약 유저정보에 대한 것이고, 그 객체에 패스워드까지 존재한다면? 상상하기 싫은 상황일 것이다. 여기서 해결할 수 있는 방법은 몇가지 있다. 예를 들어 @JsonIgnore,@JsonProperty로 응답을 JSON으로 반환하기 할때 원하는 인스턴스 변수를 제외하고 보낼 수도 있..
2019.04.10 -
Apache Maven이란?(아파치 메이븐)
1. 메이븐이란?주로 java 진영에서 프로젝트 빌드, 관리에 사용되는 도구이다. 개발자들이 전체 개발과정을 한 눈에 알아볼 수 있다. 아파치 프로젝트이다.maven의 특징빌드 절차 간소화동일한 빌드 시스템 제공프로젝트 정보 제공구조 ant와의 차이점Ant가 비교적 자유도가 높다. 전처리, 컴파일, 패키징, 테스팅, 배포 가능Maven은 정해진 라이프사이클에 의하여 작업 수행하며, 전반적인 프로젝트 관리 기능까지 포함하고 있음. (Build Tool + Project Management)gradle과의 차이점XML 대신 groovy 스크립트를 사용하여 동적인 빌드 가능.maven은 멀티프로젝트에서 상속구조인데, gradle은 주입 방식이다. 멀티프로젝트에서 gradle이 더 적합하다.2. 플러그인메이븐은..
2019.04.04 -
IT 잡학다식 - PDF문서를 PPT로 변환
사실 회사 생활을 하면서 제일 많이 하게 되는 작업이 문서작업입니다. 소프트웨어 개발자인 저도 사실 개발만큼 많이 하게 되는 작업이 문서작업입니다. 그만큼 도큐먼트를 남기는 것이 중요한 것이죠. 저희 회사 이사님이 하신 말씀이 생각납니다. "호랑이는 죽어서 가죽을 남기고, 개발자는 죽어서 문서를 남긴다." 이말이 틀린 말은 아닌 듯합니다. 도큐먼트가 있어야 다른 개발자가 와도 쉽게 업무 파악이 가능하고, 확실히 문서 작업(분석,설계)이 있어서 개발에 있어 훨씬 확실한 길을 제공해주기 때문이죠. 문서를 주고 받다가 갑자기 PDF파일로 문서를 전달 받게 되는 일이 종종있습니다. 그럴 경우에 뭔가 쉽게 편집을 하고 싶기도 해서 PPT로 바꾸고 싶어서 찾아 봤더니 PDF->PPT 변환을 해주는 사이트가 있어서 ..
2019.04.04 -
Web - Http Header의 뜻
특정 프로토콜의 헤더의 내용은 특정 프로토콜의 기능을 제공하기 위해 담고 있는 최소한의 정보이다. 헤더에 그 프로토콜에 불필요한 내용을 담으면 네트워크로 전송되는 데이터의 크기가 커져서 빠른 전송이 불가능하기 때문에 프로토콜을 설계할 때부터 꼭 필요한 내용만 담아야 하고, 모든 기능이 표현되어야 한다. HTTP Header - 공통 헤더 Date : 현재시간 (Sat, 23 Mat 2019 GMT) Pragma : 캐시제어 (no-cache), HTTP/1.0에서 쓰던 것으로 HTTP/1.1에서는 Cache-Control이 쓰인다. Cache-Control : 캐시 제어 + no-store : 캐시를 저장하지 않겠다. + no-cache : 모든 캐시를 쓰기 전에 서버에 해당 캐시를 사용해도 되는지 확인..
2019.04.03 -
The Twelve-Factor App
최근 소프트웨어를 서비스 형태로 제공하는게 일반화 되면서, 웹앱 혹은 SaaS(Software As A Service)라고 부르게 되었다. Twelve-Factor app은 아래 특징을 가진 SaaS 앱을 만들기 위한 방법론이다. 설정 자동화를 위한 절차를 체계화하여 새로운 개발자가 프로젝트에 참여하는데 드는 시간과 비용을 최소화한다. OS에 따라 달라지는 부분을 명확히하고, 실행 환경 사이의 이식성을 극대화한다.(OS에 종속되지 않는 애플리케이션) 클라우드 플랫폼에 적합하고, 서버와 시스템의 관리가 필요없게 된다. 개발 환경과 운영 환경의 차이를 최소화하고 민첩성을 극대화하기 위해 지속적인 배포가 가능하다. 툴, 아키텍쳐, 개발방식을 크게 바꾸지 않고 확장(scale up)할 수 있다. Twelve-F..
2019.04.03