-
HTTP 웹 구성요소들이 대화를 하기위해 만들어진 프로토콜(약속) 클라이언트 - 서버 상호운용성을 중요시 함 : 버젼업이 되더라도 하위호환성 있게 기존의 것은 그대로 유지 TCP/IP 기반 : 하지만 리소스 1개에 대한 트랜잭션 후 연결을 끊고, 다시 연결을 만들어 트랜잭션 진행(커넥션 생성 반복으로 오버헤드 발생하는 것을 대체하는 방법이 있긴 함 - keep alive), URL에 명시된 주소와 포트(80이라면 생략 - 웹 클라이언트 default)로 TCP/IP 프로토콜 메세지 작성 -> 연결 -> HTTP 통신 MIME 타입 : Multipurpose Internet Mail Extentions,...
-
[프로젝트 개발] 오픈 API 사용하기 - 네이버 Geocoder를 활용한 주소 검색 API API 적용할 곳 도로명 주소를 입력하고, 상세주소는 유저가 마커를 찍으면 좌표가 나오는데 좌표를 가지고 변환하는 형식으로 아니면 도로명 주소를 입력했을 때 상세주소 입력하도록 API 살펴보기 Maps API에 모듈 형태로 제공함 : 변환하는 역할의 모듈인 Geocoder를 사용함 geocoder api docs API 사용해서 데모만들기 & 데이터 보관 생각해보기 코드 좌표값을 받아 저장해두고 리뷰 글을 열 때 좌표에 맞는 위치 보여주기 하면 될 듯 : Coordinate...
-
서버 성능 및 안정성 향상을 위해 고려해볼 수 있는 아키텍쳐 리버스 프록시 서버 앞 단에 위치하여 요청을 몸빵 하는 역할 : 단순 몸빵만 하는 것이 아니라 효율적인 처리와 보안성을 높여줄 수 있음 캐시 가능 : 정적인 자원에 대해 캐시를 해뒀다가 이후 구성요소로 가지않고도 바로 응답해줄 수 있는 장점이 있음 서버 보안 : WS, WAS 보안(감추기 가능) Nginx의 경우 리버스 프록시 역할을 할 수 있음 (Nginx가 아니더라도 다른 웹서버에서도 지원) 로드밸런싱 처리를 분산하기위해 N대의 웹서버, 톰캣을...
-
[프로젝트 개발] spring-security 리팩토링 커스텀 필터를 스프링빈으로 등록하기 : 스프링빈 컨테이너 - circular dependency 발생과 해결 커스텀 필터에서 스프링빈을 사용해야하므로 필터를 스프링빈으로 등록해야할 필요성이 생김 : 빈으로 등록하고 Config에서 @Autowired를 받으려고 했으나 필터 생성과정에서 AuthenticationManager를 등록해줘야하는데, Config에서 Manager 빈을 가지고 있으므로 Config가 빈으로 생성되지 못하면 Manager 빈을 가져오지 못하는 문제가 발생함 커스텀 필터는 매니져가 필요하고 매니져는 Config가 생성되어야 가져올 수 있다보니 결국 어느 한 쪽도 온전히 생성되어 빈으로 등록되지 못한 상황이라 로그에는 circular dependency라며 찍히고...
-
[프로젝트 개발] spring-security OAuth, JWT, HttpOnly Cookie favicon.ico로 redirect 되는 현상 security가 적용되기때문에 ignore 설정해주면 됨 @Override public void configure(WebSecurity web) throws Exception { web.ignoring() .antMatchers("/h2-console/**") .antMatchers("/js/**") .antMatchers("/css/**") .antMatchers("/favicon.ico"); } 자원 요청에 대해서 모두 ignore 하도록 위의 방법은 모든 필터에 대한 설정, 필터마다 설정하기위해서는 필터를 생성할 때 RequestMatcher를 생성해서 설정해주면 됨(processPath와 skipPath 지정할 수 있음) 인증서버 프로바이더마다 다른 인증 확인 방법 - Template 분리 객체 사용 분산 효과 서비스 프로바이더의 인증 확인 방식에 변경이 생겼을...