본문 바로가기
반응형

분류 전체보기341

[Spring] HiddenHttpMethodFilter web.xml을 살펴보던 와중 의문을 갖게 한 문제의 코드... httpMethodFilter org.springframework.web.filter.HiddenHttpMethodFilter httpMethodFilter dispatcher ( dispatcher는 org.springframework.web.servlet.DispatcherServlet를 등록한 서블릿의 이름이다. 이 글에서 중요한 사항이 아니라 생략했다. ) HiddenHttpMethodFilter가 뭘까? REST 방식을 사용하다 보면 GET, POST, PUT, PATCH, DELETE를 이용한다. 하지만 PUT, PATCH, DELETE 방식의 메소드를 지원하지 않는 브라우저가 있을 수 있다. 이럴 때 해결책으로 브라우저에서는 P.. 2021. 2. 4.
[Spring] web.xml 분석하기 , springTestProject my spring test project~~~~ : 파일의 title. 보통 프로젝트명을 추가해 사용 : 어떤 프로젝트를 위한 배포 서술자인지 기록 주석과 비슷한 기능을 한다고 생각하면 된다. fileName file:///${SMART_HOME}/conf/applicationcontext-*.xml 사용자가 직접 컨트롤하는 XML 파일 지정 org.springframework.web.context.ContextLoaderListener 스프링 설정 정보 읽기 dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/controller-*.xml 2 servlet.. 2021. 2. 3.
[Java] String, StringBuffer, StringBuilder 실무 코드를 살펴보다보니 String을 +하기보다는 StringBuilder나 StringBuffer를 통해 append하는 것이 많았다. String에서 +가 효율성이 떨어진다고 듣기는 했는데, 구체적인 개념을 정리하기 위해 글을 쓴다. String, StringBuffer, StringBuilder는 java.lang 패키지에 속한 클래스들이다. 별도로 import를 해주지 않아도 사용이 가능하다. String 문자열 implements Serializable, Comparable, CharSequence jdk 1.5 이후부터 +연산은 StringBuilder 사용해 성능 최적화 (단, 여러줄에 걸쳐 +할 경우 StringBuilder도 여러번 선언) public final class String .. 2021. 2. 2.
HTTP 상태 코드 상태 코드 : 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리중 (거의 사용하지 않는다) 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청 완료하려면 추가 행동 필요 4xx (Client Error): 클라이언트 오류. 잘못된 문법 등으로 서버가 요청을 수행할 수 x 5xx (Server Error): 서버 오류. 서버가 정상 요청을 처리 못함 2xx 200 OK 201 Created - 요청 성공해서 새로운 리소스가 생성됨 202 Accepted - 요청 접수 되었으나 처리는 x 204 No Content - 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터 x 3xx 30.. 2021. 2. 1.
HTTP 메소드와 API 설계 API URI 설계 가장 중요한 것은 리소스를 식별하는 것 리소스와 행위 분리. ( ex: 리소스: 회원, 행위: 조회, 등록, 삭제 ) ex: POST /orders/{orderId}/start-delivery (컨트롤 URI) HTTP 메소드 GET: 리소스 조회 POST: 요청 데이터 처리 (주로 등록에 사용) PUT: 리소스 덮어쓰기 (있으면 대체, 없으면 생성) PATCH: 리소스 부분 변경 DELETE: 리소스 삭제 HEAD, OPTIONS, CONNECT, TRACE, ... HTTP 메소드 속성 안전; Safe Method 멱등; Idempotent Methods 캐시 가능; Cachable Methods 안전 호출해도 리소스 변경 X ex: GET, HEAD, OPTIONS, TRACE .. 2021. 2. 1.
[Spring] Interceptor 인터셉터 인터셉터는 말 그대로 중간에서 가로채는 일을 한다. 컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로챈다. Filter와 차이점 JSP의 Filter와 유사한 동작을 한다. 둘 다 Controller로 들어가는 요청을 가로채 특정 작업을 하기 위한 용도로 사용되지만, 여러 차이점이 있다. Filter Interceptor 접근 범위 같은 웹 어플리케이션 스프링 내의 모든 객체 호출 시점 DispatcherServlet 실행 전 DispatcherServlet 실행 후 설정 위치 web.xml spring-servlet.xml 구현 방식 web.xml 설정 spring-servlet.xml 설정 및 메소드 구현 제공 J2EE 표준 스펙 Spring .. 2021. 1. 29.
Web Server와 WAS 차이부터 연동 방법까지 AJP에 관해서 알아보면서 삽질하다보니 웹서버, 와스까지 흘러들어왔다. 찾아보는 김에 개념을 정리해둔다. 서버의 흐름하면 보통 위 그림과 비슷한 형식으로 그려져있다. 사용자는 80번 포트를 통해 웹서버(Apache)에 요청을 보내고, 만약, 서블릿이 필요한 요청이라면 웹서버(Apache)가 WAS(tomcat)에 요청을 보낸다. 웹 서버와 WAS의 차이 Web Server 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 html 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램 정적 컨텐츠(html, css, javascript, image, ...)를 제공하는 서버 ex: Apache, NGINX, ... WAS; Web Application Server 인터넷 상에서 HTTP 프로토콜을 통해 .. 2021. 1. 28.
[java] this와 this() this : 인스턴스 자신을 가리키는 참조 변수 - 객체의 주소를 가리킨다 this() : 클래스 내부의 생성자를 호출 - 생성자에서만 호출 가능 - 제일 첫 문장에서 호출 가능 - 생성자 자기 자신 호출 불가 (재귀호출 불가) 예제 public class User { private Integer id; protected String account; public String password; public User(Integer id, String account, String password) { this.id = id; this.account = account; this.password = password; } public User(Integer id) { this(id, "a", "b"); } } 참조.. 2021. 1. 26.
[AWS RDS] db 환경 만들기 RDS 생성 구글 콘솔( aws.amazon.com/ko/ )에서 RDS를 들어가자. 데이터베이스 생성 버튼을 클릭한 뒤, 데이터베이스 생성 옵션은 아래 이미지를 따른다. (붉은색: 기입 값 필수 및 동일하게, 파란색: 기입 값 필수 및 설정 자유) MariaDB를 사용한 이유는 1. Oracle, MSSQL 등은 동일한 사양 대비 가격이 높다 2. Amazon Aurora로 교체하기 용이하다. Amazon Aurora는 MySQL과 PstgreSQL을 클라우드 기반에 맞게 재구성한 DB다. 클라우드 서비스에서 가장 적합한 데이터베이스이기 때문에 많은 회사가 사용한다. 여기서 선택하지 않는 이유는 프리티어 대상이 아니고 최소 비용이 월 10만원이라 MariaDB를 택했다. 모든 옵션을 설정하고 데이터베이.. 2021. 1. 25.
반응형