분류 전체보기264 [Java 8] Java 8에서의 새로운 특징 안녕하세요.이미 자바는 11버전을 향해 달리고 있지만 우리는 아직 낯선게 사실입니다. 우리뿐만 그런건 아닙니다. 아직 많은 오픈소스에서 호환되지 않기도 하지요. 언젠간 11버전에 대해서도 알아보겠지만 일단 요즘 대부분의 표준이 되고 있는 Java 8 버전에 대해서 이전 버전들과의 차이점에 대해 알아보도록 하겠습니다. Interface의 변화 Java 8 버전이전에는 interface는 public abstract methods만 허용했습니다. 하지만 Java 8 부터는 interface에서 static과 default 메서드를 사용할 수 있습니다. static method public interface Vehicle { void run(); static String producer() { return ".. 2019. 11. 19. [java 8] 예제로 보는 lambda식_비교하기 Lambda식 없이 정렬 하기 Java8이전의 Sort는 Comparator interface를 implement하여 구현하여 사용하곤 했습니다. 아래와 같이 말이지요. public class Human { private String name; private int age; // standard constructors, getters/setters, equals and hashcode } /* * Test Class [Client] */ @Test public void sortEntitiesByName() { List humans = Arrays.asList(new Human("A", 20), new Human("B", 21)); Collections.sort(humans, new Comparator().. 2019. 11. 18. [Java 8] 람다 표현식과 주의 사항 안녕하세요. 오느른 JAVA8에 관하여 실습해보도록 하겠습니다. 먼저 한가지 짚고 넘어가도록 하겠습니다. JAVA 8에서 이루고자 했던 것은 무엇일까요? 제가 일반적으로 많이들 말하는 부분이 간결한 코드와 멀티코어 프로세서를 쉽게 사용할 수 있도록 하는 것이라고 합니다. 그중 간결성에 대해서는 여타 많은 언어들이 나오면서 JAVA는 배우기 힘든 언어가 되었습니다. 이러한 단점을 극복하고자 Optional, Funtion, Lambda 등 다양한 방법이 JAVA8에 나왔습니다. 오늘부터는 이러한 기능과 방법을 알아보도록하겠습니다. lambda식 예제와 Function lambda식의 사용예제를 보도록 하겠습니다. @FunctionalInterface public interface Foo { String m.. 2019. 11. 13. 객체지향 설계의 5가지 원칙 S.O.L.I.D 안녕하세요. 오늘은 객체지향의 5가지 원칙, SOLID에 대해서 알아보도록하겠습니다. java의 특징은 많이 들어보셨을 것 같습니다. 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism) 이렇게 있죠. 이런 특징이 있는 JAVA는 객체지향(OOP) 프로그램의 특징을 가지고 있다고 합니다. 즉, 이런 특징을 이용하여 객체지향의 원칙을 구현할 수 있다는 것입니다. 오늘은 저와 객체지향을 목표로 하는 프로그램이 지켜야 할 5가지 원칙(Principle)에 대해서 알아보도록 하겠습니다. S - Single responsibility Principle 단일 책임 원칙(Single responsibility principle)이란 모든 메서드 또는 클래스는 단 하나의 책.. 2019. 11. 4. [REST API] REST API의 Security With JWT 안녕하세요. 오늘은 REST API에 대해서 아야기하는 마지막 시간입니다. 주제는 security입니다. security는 우리가 개발을 하면서 빼놓을 수 없는요소입니다. 하지만 귀찮아서, 기능 개발이 재밌어서, 시간이 없어서 등등 많은 이유로 많은 개발자들이 접근하지 않는분야기도 합니다.(예전의 저만 그렇게 생각했을 수도 있어요.. ㅎㅎ;) 오늘은 REST API에서의 security에 대해서 알아보도록 하겠습니다. 개요 REST API의 Security를 생각할 때 가장먼저 생각해야할 제약조건은 stateless입니다. stateless란 서버는 client의 로그인과 같은 application state를 기록하지 않는 다는 의미입니다. 우리가 일반적으로 알고 있는 basic, OAuth 등과 같은.. 2019. 11. 1. [REST API] REST 제약조건_캐싱(Caching) 캐시가 사용 가능해야 한다는 것은 REST의 6가지 제약조건 중 한 가지입니다. 캐싱이 어떤 것인지는 저의 예전 포스터를 참고 부탁드립니다. 캐시관련 http Method GET - 일반적으로 브라우저에서 cache가 사용 가능하게 처리합니다. POST - 일반적으로 cache가 사용 불가능합니다. 하지만 Expires와 Cache-Control header를 이용하여 caching을 구현하여 응답할 수 있습니다. PUT, DELETE - 해당 REQUEST는 Cache를 적용할 수 없습니다. cache관련 http 헤더 Expires 리소스의 cache 만료 시간을 절대값으로 나타낸 것입니다. 해당 헤더의 시간이 지나면 캐시가 아닌 원래 서버에 요청을 하여 리소스를 다시 얻어와야 합니다. Expires.. 2019. 10. 24. [REST API] REST API 총 정리 안녕하세요. 요즘 대학교 동기들과 스터디를 하고 있습니다. 1달에 1번씩 주제를 선정하여 ppt를 만들고 발표를 합니다. 이번에 제가 발표한 주제는 REST에 대해서였습니다. 정리한 내용을 여러분들께 공유드립니다. 제가 지금까지 작성한 REST API에 대한 글들을 총 정리를 한 것이기 때문에 더 자세한 내용은 이전 게시물을 통해 확인바랍니다. 아래는 pdf파일입니다. rest api는 cache와 security에 관한 게시물을 마지막 게시물로 할 예정입니다. 감사합니다. 2019. 10. 18. [Spring & Design Pattern] Spring에서 발견한 Design Pattern_strategy pattern 안녕하세요. 오늘은 디자인패턴 중 꽃이라고 불리는 strategy pattern에 대해서 알아보도록 하겠습니다. strategy Pattern OOP(객체 지향)의 주요 원칙중 하나로 Open-Closed Principle(개방폐쇄원칙)이 있습니다. 간략히 말하면 "소프트웨어의 구성요소들은 확장에는 열려있어야하고, 변경에는 닫혀있어야 한다." 라는 원칙입니다. 즉, 요구사항의 변경이 있을 때 기존 구성요소의 수정은 최소화 하되 확장에는 적극적이어야 한다는 말입니다. 확장에는 기존 구성요소의 변경이 없습니다. 결합도가 낮다는 의미이기도 합니다. strategy Pattern은 개방폐쇄원칙에 잘 맞아 떨어지는 패턴입니다. 위의 이미지는 strategy 패턴을 보여주는 diagram입니다. 보면 클라이언트는 .. 2019. 10. 16. [REST API] HATEOAS(Hypermedia as the Engine of Application State) 오늘의 주제는 HATEOAS입니다. HATEOAS는 Hypermeia as the Engine of Applicaation State의 약자로 REST에서 리소스의 3가지 요소(Data, Meta Data, HATEOAS)중 하나입니다. 개요 HATEOAS는 REST 어플리케이션이 다른 아키텍처와 다른 부분 하나입니다. 다른 아키텍처들에서 Hypermedia는 이미지, 동영상 등을 참조할 때 사용합니다. 하지만 REST는 본인의 모든 Resource의 요청을 HATEOAS를 통해 진행합니다. 예를 들어 게시판을 운영하고 있다고 합시다. 그리고 요청으로 모든 게시판의 리스트를 가져오겠다. 라고 한다면 아래와 같은 요청을 보낼 수 있을 것입니다. HTTP GET http://sabarada.tistory.c.. 2019. 10. 13. [REST API] SOAP와 REST API의 비교 웹개발을 하다보면 한번쯤은 마주치는 주제입니다. SOAP는 무엇이고, REST와는 어떤 차이가 있을까요? 오늘은 이 주제에 대해서 한번 알아보도록 하겠습니다. 개론 SOAP는 Simple Object Access Protocol의 약자이며 일반적으로 XML 형식을 사용하는 기 정의되어있는 형식을 사용하는 Protocol입니다. REST는 REpresentational State Transfer의 약자이며 표준을 정의하지 않는 아키텍처 스타일입니다. 일반적으로 JSON이 많이사용되지만, XML, YAML 등 protocol을 강제하지 않습니다. 2가지 모두 SOA(Service oriented Architecture)를 목적으로 합니다. 그렇다면 공통점과 차이점을 알아보도록 하겠습니다. 공통점 기본 프로토.. 2019. 10. 4. [REST API] HTTP Methods 분석 안녕하세요. 벌써 올해도 10월에 접어 들었습니다. 시간에 지남에 따라 스스로 많이 성장함도 느끼지만.... 아직 멀었구나라는 생각도 많이 듭니다. 모두들 화이팅하면 좋겠습니다. HTTP Methods 일반적으로 웹에서 REST API를 작성할 때 HTTP Methods를 이용하여 CRUD를 표현합니다. 자주 사용되는 HTTP Method는 아래와 같습니다. GET POST PUT DELETE PATCH 오늘은 위 5가지에 대해서 한번 알아보도록 하겠습니다. HTTP GET GET은 리소스를 가져올 때 사용합니다. GET을 사용했을 때는 서버에 어떠한 수정도 있으면 안됩니다. 서버에서 리소스에 대한 수정이 없기 때문에 GET Method는 safe methods라고 할 수 있습니다. 리소스에 영향이 없는.. 2019. 10. 2. [REST API] REST에서의 리소스 이름 짓기 REST API를 설계하다보면 이름을 짓는게 어렵습니다. uri path를 사용해야할지.. body를 사용해야할지, 그리고 body를 사용한다면 json을 사용하는게 적합할까요? 아니면 query를 이용하는게 적합할까요? 오늘은 제 나름대로의 리소스의 이름을 짓는 가이드에 대해서 제가 찾아본 나름대로의 내용을 정리하여 설명드리도록 하겠습니다. 리소스 이름 가이드 이전 포스트에서 우리는 REST에서는 기본 데이터 표현을 리소스라고 하고 이러한 요소에는 Data, metadata, link가 있다는 것을 알게 되었습니다. 리소스의 이름의 중요성은 로이필딩의 논문에서도 아래와 같이 언급되고 있습니다. The key abstraction of information in REST is a resource. Any.. 2019. 9. 30. 이전 1 ··· 17 18 19 20 21 22 다음