전체 글
-
REST API 설계 가이드etc 2021. 3. 19. 23:30
Richardson Maturity Model 잘 정리된 글 brunch.co.kr/@pubjinson/12 레벨 3은 Hypermedia Controls 를 추가한다. 요점은 다음에 무엇을 할 수 있는지와 그것을 하기 위해 다루어야 할 리소스의 URI 를 알려준다. 장점은 서버가 클라이언트에 문제를 일으키지 않고 URI schema 를 변경할 수 있다는 것이다. 상세보기에서 삭제할 수 있는 정보, 수정할 수 있는 정보 같은걸 넣어줄 수 있다. - 하나의 리소스에서 파생할수있는 추가작업도 확인 가능 - 개발자가 해야할 작업의 양이 늘어남 - 클라이언트 입장에서는 추가정보를 한번에 얻을수있다는 장점이 있음. 1. Counsumer first 2. Make best use of HTTP 3. Request ..
-
Level1) 비밀지도PS/programmers 2021. 3. 17. 15:21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 /* 1 ≦ n ≦ 16 arr1, arr2 는 길이 n 인 정수배열 정수 배열의 각 원소 x를 이진수로 변환했을 때의 길이는 n 이하이다. 즉, 0 ≦ x ≦ 2n - 1을 만족한다. */ public class Level1_비밀지도 { public static String[] solution(int n, int[] arr1, int[] arr2) ..
-
ModelMapperJava 2021. 3. 4. 17:20
ModelMapper 다른 코드에서 ModelMapper 라는것을 보았는데 뭔지 궁금해서 찾아보았다. 왜 DTO 를 따로 만들어서 사용하는가 ? Entity 클래스를 생성할때 자바빈 규약을 생각하면서 getter/setter 를 생성하는 경우가 있는데 이렇게 되면 해당 클래스의 인스턴스 값들이 언제 어디서 변해야하는지 구분할수가 없어, 차후 기능 변경시 복잡해진다. 절대로 테이블과 매핑되는 Entity 클래스를 Reqeust/ Response 클래스로 사용해서는 안된다. Entity 클래스가 변경되면 여러 클래스에 영향을 끼치게 되는 반면 Request, Response 용 DTO 는 View 를 위한 클래스라 자주 변경이 필요하다. View Layer 와 DB Layer 를 철저하게 역할 분리하는게 좋..
-
Forward, Redirectetc 2021. 3. 4. 15:59
Forward, Redirect forward 와 redirect 을 언제마다 사용하는지 헷갈려서 찾아보았다. 웹에서는 작업중인 페이지를 이동하기 위해서는 2가지 페이지 전환기능을 제공한다. Forward 방식 페이지의 이동만 존재한다. 실제로 웹 브라우저는 다른 페이지로 이동했음을 알 수 없다. 웹 브라우저에서는 최초 호출한 URL 표시되고, 이동한 페이지의 URL 정보는 확인할 수 없다. 현재 실행중인 페이지와 forward에 의해 호출될 페이지는 Request, Response 객체를 공유하고 있다. 요청 정보를 그대로 전달하기에 사용자가 최초로 요청한 요청정보는 다음 URL 에서도 유효하다. ex) 게시판의 글쓰기나 회원가입 응답 페이지에서 새로고침을 한다면, 요청정보가 그대로 살아있기에 요청이 ..
-
form novalidateetc 2021. 3. 1. 19:04
form novalidate form의 유효성 검사를 하지 않는다. input type="email" 일 경우에 이메일 형식이 맞지 않으면 경고창이 뜨는데 novalidate 지정시 경고창 없이 바로 form 데이터를 전송한다. 익스플로러10, 파이어폭스, 오페라, 크롬에서만 사용가능하다. thymleaf 코드를 보는데 novalidate 가 뭔지 몰라서 찾아보았다. java 의 Validation 을 사용하면 필요도 없고 경고 창도 안 뜨게 하기 위해서 사용하는 것 같다.
-
@AuthenticationPrincipalJava 2021. 3. 1. 19:00
Principal 로그인한 사용자의 정보를 파라미터로 받고 싶을때 Principal 아래와 같이 객체로 받아서 사용할 수 있다. Principal 객체는 java.security 패키지에 속해있는 인터페이스이며 getName() 을 통하여 name 정보를 참조할 수 있다. @GetMapping() public String index (Model model, Principal principal) { if (principal == null) { model.addAtrribute("msg", "Hello"); } else { model.addAtrribute("msg", "Hello" + principal.getName()); } return "index"; } @AuthenticationPrincipal 다..