전체 글
-
JAVA8에 대해 알아보자(1)카테고리 없음 2023. 4. 18. 12:31
java8 자바8의 새롭게 바뀐 부분이 많지만 그 중 내가 자주 쓰는걸 정리 해보겠다. @FunctionalInterface 첫 번째로 @FunctionalInterface 인터페이스다. 람다를 쓰긴 위한 애노테이션이다. 만약 저 애노테이션이 붙은거라면 람다 표현식을 사용 할 수 있다. 하지만 명시적으로 지정 하지 않더라도 abstract 메소드가 한개라면 람바 표현식을 사용 할 수 있다. 만약 저 애노테이션을 사용한다면 abstract 메소드가 2개 이상 있을경우 컴파일 타임에 에러가 난다. 자바 기본 패키지에 있는 Function이라는 인터페이스다. @FunctionalInterface public interface Function { R apply(T t); //... } 한번 커스텀한 interf..
-
spring-boot-rest를 해보자!(2)카테고리 없음 2023. 4. 18. 12:31
Spring boot rest 를 이용하여 API 서버를 개발해보자! (2) 1편은 여기 검색을 할때 url에 메소드명이 마음에 들지 않는다. 또한 json 키도 마음에 들지 않는다. 그래서 바꾸고싶다. 그러기 위해선 아래와같이 추가해보자 @RestResource(path = "nameStartsWith", rel = "name") Page findByNameStartsWith(@Param("name") String name, Pageable pageable); 브라우저로 열어보자 http://localhost:8080/account/search { "_links": { "name": { //name으로 변경 "href": "http://localhost:8080/account/search/nameSta..
-
spring-boot-rest를 해보자!(1)카테고리 없음 2023. 4. 18. 12:31
Spring boot rest 를 이용하여 API 서버를 개발해보자! Boot에 대해 알아봤으니 다음은 spring-boot-rest 대해 알아보자. 모르는분은 링크참조 rest중 우리는 jpa를 살펴볼것이다. 프로젝트 생성후 처음 할일은 메이븐에 디펜던시를 추가 하는일이다. 아래와같이 추가를 해보자. org.springframework.boot spring-boot-starter-data-rest org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 org.projectlombok lombok 1.16.6 provided 살펴보면 spring-boot-starter-data-rest는 web, jackson과 관련된 라이브러리가..
-
Spring boot 빠르게 시작해보자카테고리 없음 2023. 4. 18. 12:31
Spring boot를 이용하여 API 서버를 개발해보자! start.spring.io 에서 설정해서 시작해도 된다. maven을 이용하여 시작해보자. 일단 메이븐 프로젝트를 생성한다. 그럼 pom.xml 파일이 있을 것이다. pom파일에 아래와 같이 추가한다. org.springframework.boot spring-boot-starter-parent 1.3.3.RELEASE 위의 아이는 버전관리 및 플러그인, 인코딩 자바 버전 등이 설정 되어있다. 참으로 좋은 녀석이다. 다음으론 아래와 같이 dependencies 들을 추가한다. org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-test t..
-
순열이란카테고리 없음 2023. 4. 18. 12:31
순열 서로 다른 n개에서 r개를 택하여 일렬로 배열하는 것을 n개에서 r개를 택하는 순열 nPr로 나타낸다. 문제) 1,2,3,4,5의 다섯개 숫자중에서 서로 다른 세 개의 숫자를 사용하여 만들 수 있는 세 자리의 자연수의 개수를 구하여라 5P3 = 5×4×3 = 60 특수한 경우 문제) m,a,t,h의 네 개 문자중 m,t 이웃하도록 배열 (mt), a, h를 한덩어리로 본다. 그럼 3! 또한 mt, tm 도 가능하기 때문에 2! 3!× 2! 문제) 1~5 5장 숫자카드중 세자리 짝수의 경우의수는? 조건을 보면 짝수 조건이다. 그럼 마지막의 올 수 있는 카드는 2 또는 4 밖에 올 수 없다. XX2 또는 XX4 그럼 첫번째 자리에 올 수있는 카드의 개수는 4 두번째는 3 그리고 마지막 자리엔 2개 4 ..
-
java Proxy 기능으로 AOP카테고리 없음 2023. 4. 18. 12:31
proxy 기능으로 AOP를 만들어 보자! java.lang.reflect 패키지에 InvocationHandler 인터페이스가 존재한다. 이 인터페이스를 이용해 AOP를 구현할 수 있다. 간단히 어떤수의 두배하는 메소드를 만들어보자 class TwiceImpl implements Twice { @Override public int twice(int x) { return x * 2; } } interface Twice { int twice(int x); } 이 코드를 사용하려면 이렇게 하면 된다. 위의 클래스의 인터페이스를 만든이유는 인터페이스가 있어야 java의 Proxy AOP를 만들수있다. Twice twice = new TwiceImpl(); System.out.println(twice.twice..
-
rest api 개념 및 설계카테고리 없음 2023. 4. 18. 12:31
REST REST는 웹의 창시자(HTTP) 중의 한 사람인 Roy Fielding의 2000년 논문에 의해서 소개되었다. 현재의 아키텍쳐가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있다고 판단했기 때문에, 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐를 소개했는데 그것이 바로 Representational State transfer (REST)이다. REST 의 기본 rest는 요소로는 크게 리소스, 메서드, 메세지 3가지 요소로 구성된다. 예를 들어 이름이 Wonwoo인 사용자를 생성한다. 라는 호출이 있을 때 사용자는 생성 되는 리소스, 생성한다라는 행위는 메서드 그리고 이름이 Wonwoo인 사용자는 메세지가 된다. 이를 표현해보면 HTTP POST, http://localhos..