분류 전체보기 85

HTTP API 설계 예시

HTTP API 설계 예시 • HTTP API - 컬렉션(Collection) - POST 기반 등록 - 예) 회원 관리 API 제공 • HTTP API - 스토어(Store) - PUT 기반 등록 - 예) 정적 컨텐츠 관리, 원격 파일 관리 • HTML FORM 사용 - 웹 페이지 회원 관리 - GET, POST만 지원 [회원 관리 시스템] API 설계 - POST 기반 등록 • 회원 목록 /members -> GET • 회원 등록 /members -> POST • 회원 조회 /members/{id} -> GET • 회원 수정 /members/{id} -> PATCH, PUT, POST • 회원 삭제 /members/{id} -> DELETE POST - 신규 자원 등록 특징 • 클라이언트는 등록될 리..

HTTP Methd 활용

HTTP 메서드 활용 • 클라이언트에서 서버로 데이터 전송 • HTTP API 설계 예시 클라이언트에서 서버로 데이터 전송 데이터 전달 방식 1) 쿼리 파라미터를 통한 데이터 전송 - GET • 주로 정렬 필터(검색어) 2) 메시지 바디를 통한 데이터 전송 - POST, PUT, PATCH • 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 상황 1) 정적 데이터 조회 - 이미지, 정적 텍스트 문서 - 조회는 GET 사용 - 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 2) 동적 데이터 조회 - 주로 검색, 게시판 목록에서 정렬 필터(검색어) - 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 - 조회는 GET 사용 - GET은 쿼리 ..

HTTP Method

API 설계 요구사항 회원 정보 관리 API • 회원 목록 조회 • 회원 조회 • 회원 등록 • 회원 수정 • 회원 삭제 API URI 설계 URI(Uniform Resource Identifier) • 회원 목록 조회 /read-member-list • 회원 조회 /read-member-by-id • 회원 등록 /create-member • 회원 수정 /update-member • 회원 삭제 /delete-member 좋지 못한 설계이다 . 리소스 식별이 되어야 한다 ! URI(Uniform Resource Identifier) 리소스의 의미 - 회원을 등록하고 수정하고 조회하는게 리소스가 아니다! 회원을 등록해라 -> 회원이 리소스 리소스를 어떻게 식별하는게 좋을까? - 회원을 등록하고 수정하고 조회..

HTTP의 기본

HTTP HyperText Transfer Protocol HTTP 메시지에 모든 것을 전송 • HTML, TEXT • IMAGE, 음성, 영상, 파일 • JSON, XML (API) • 거의 모든 형태의 데이터 전송 가능 - 현재에는 HyperText뿐만 아니라 거의 모든 형태의 데이터를 주고 받을 수 있다. • 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 • 지금은 HTTP 시대! HTTP 특징 • 클라이언트 서버 구조 • 무상태 프로토콜(스테이스리스), 비연결성 • HTTP 메시지 • 단순함, 확장 가능 1) 클라이언트 서버 구조 • Request Response 구조 • 클라이언트는 서버에 요청을 보내고, 응답을 대기 • 서버가 요청에 대한 결과를 만들어서 응답 - 클라이언트가 요청을 ..

URI & URL & URN

URI 단어 뜻 • Uniform: 리소스 식별하는 통일된 방식 • Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) • Identifier: 다른 항목과 구분하는데 필요한 정보 • URL: Uniform Resource Locator -- 자원의 위치 • URN: Uniform Resource Name -- 자원의 이름 URL == URI 를 같은 의미로 생각하면 됨 URN은 잘 사용하지 않음 URL 전체 문법 • scheme://[userinfo@]host[:port][/path][?query] • https://www.google.com:443/search?q=hello&hl=ko • 프로토콜(https) • 호스트명(www.google.com) • 포트 번호(443) • 패스..

ERROR - Parameter index out of range ...

Mybatis 사용하는 쿼리가 들어있는 xml의 오류 Parameter index out of range (4 > number of parameters, which is 3) 이런 에러 메시지가 발생한다. 1) 파라미터가 인덱스 보다 값을 더 많이 가지고 있는 경우 2) '#{name}' 처럼 xml에 ' ' or " " 로 묶은 경우 3) 나같은 경우에서 image 컬럼에 주석 처리에 문제가 있었음 xml의 주석은 -- , /* */ 이 아니라 로 사용해야함 !!!!!!!!!!!!!!!!!!!!! 에러가 Parameter index out of range .. 정도로 나옴 반나절 삭제... INSERT INTO LODGING ( idx , name , category , area , phone , ad..

Java/Spring 2021.07.07

ERROR - Ambiguous mapping found. Cannot map ~~

Ambiguous mapping found. Cannot map 'Controller의 이름' bean method Controller에서 @RequestMapping에 이름이 중복되서 나타나는 에러 중복된 @RequestMapping 이름을 변경해주면 해결 @RequestMapping(value = "root.do", method = RequestMethod.POST) @RequestMapping(value = "root.do", method = RequestMethod.POST) -- > @RequestMapping(value = "root.do", method = RequestMethod.POST) @RequestMapping(value = "root/detail.do")

Java/Spring 2021.07.05

java: cannot access javax.inject.Provider class file for javax.inject.Provider not found

오류 사항 : java: cannot access javax.inject.Provider class file for javax.inject.Provider not found JPAQueryFactory queryFactory = new JPAQueryFactory(em); JPAQueryFactory.class 파일에서 private final Provider entityManager; provider이 inject가 안되는 오류가 발생 나의 해결 방안 pom.xml에 javax.servlet javax.servlet-api provided com.google.inject guice 3.0 javax.inject javax.inject 1 출처 참고 coderoad.ru/40822568/NoClassDe..

Java/Spring 2021.05.03

Spring Security CSRF 적용

CSRF 란? 사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격 Spring Security CSRF Session 단위로 무작위 토큰(CSRF Token)을 발급 요청 파라미터에 token을 포함시켜 전송하여 정상 요청인지, 공격자로부터 의도된 요청인지 판단하는 기능 있음 타 사이트에서 본인의 사이트로 form 데이터를 사용하여 공격하려고 할 때, 그걸 방지하기 위해 csrf 토큰 값을 사용하는 것 CSRF 보호 기능 활성화 Spring Security에서는 @Enable..

Java/Spring 2021.04.22