Spring boot

    에러노트 UnsatisfiedDependencyException

    갑자기 잘 돌아가던 spring boot 플젝 빌드해보니 다음과 같은 에러가 떴다. UnsatisfiedDependencyException 에러였는데.. db연동과 관련된 에러같았다. Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'securityConfig' defined in file [C:\Users\sujeongKim\Desktop\iterview\backend\build\classes\java\main\com\dnd10\iterview\config\SecurityConfig.clas..

    [MVC1] 서블릿

    메모 alt + 1 project menu로 이동 ctrl + shift + 화면 크기 조절 esc로 빠져나옴 프로젝트 세팅 start.spring.io 사이트에서 아래와 같이 세팅한다. 파일을 Generate하고 프로젝트를 실행한다. Application 을 실행하고 톰켓 성공 메시지가 뜨면 localhost:8080에 접속한다. whitelabel error page가 뜨면 성공 File->Setting에서 롬복 플러그인을 설치하고 Annotation Processor 에서 annotation processing 을 enable시킨다. https://www.postman.com/ Postman API Platform | Sign Up for Free Postman is an API platform f..

    [MVC1] 웹 애플리케이션의 이해

    웹 서버, 웹 애플리케이션 서버 서버는 크게 두가지 1. 웹 서버 - HTTP 기반으로 정적 리소스를 주로 제공하는 서버 ex) NGINX, APACHE 2. 웹 애플리케이션 서버(WAS) - HTTP 기반으로 동작하며 웹서버 + 로직 수행 기능을 함 ex) 톰캣 둘의 기준은 모호한 편이나 주로 서블릿 컨테이너 기능을 제공하면 WAS 그렇지 않으면 웹 서버로 본다. WAS는 로직 수행에 더 초점이 맞춰져 있다. 보통 서버는 WAS + DB로 구성이 가능하나, 비싼 애플리케이션 로직이 정적 리소스 요청때문에 제대로 수행되지 못할 수 있다. 또, 서버 장애시 오류 화면조차 노출이 불가능하다. 따라서 보통 서버는 다음과 같이 구성된다. 클라이언트 -> Web Server -> WAS -> DB 오류화면 제공이..

    [HTTP] HTTP 헤더 - 캐시와 조건부 요청

    캐시 기본 동작 같은 리소스를 두 번 요청하면 데이터가 변경되지 않아도 계속 네트워크를 통해 데이터를 다운받아야한다. 인터넷 네트워크는 느리고 비싸기 때문에 비효율적이다. 데이터는 프록시 서버와 브라우저 내에 캐시 될 수 있다. 정해둔 기한 내에 같은 리소스를 요청하면 캐시된 데이터를 사용하게 된다. 네트워크를 사용하지 않아도 되어 로딩속도가 빨라진다. 검증 헤더와 조건부 요청 캐시의 유효 시간을 초과하면 서버에 다시 요청을 해야 한다. 이 때 서버의 데이터가 변경되었을 수도, 그대로일 수도 있다. 캐시와 서버의 데이터가 같다는 사실을 확인한다면 (서버의 데이터가 변경되지 않았다면) 데이터를 다시 보낼 필요가 없다. 어떻게 확인할 수 있을까? 데이터가 마지막으로 수정된 일시를 저장하는 Last-Modif..

    [HTTP] HTTP 일반 헤더

    HTTP 헤더 개요 • General 헤더: 메시지 전체에 적용되는 정보, 예) Connection: close • Request 헤더: 요청 정보, 예) User-Agent: Mozilla/5.0 (Macintosh; ..) • Response 헤더: 응답 정보, 예) Server: Apache • Entity 헤더: 엔티티 바디 정보, 예) Content-Type: text/html, Content-Length: 3423 현재는 RFC2616 -> RFC7230-7235로 개정되며 Entity 대신 Representation (표현)이라는 용어로 바뀜 표현 = 표현 메타데이터 + 표현 데이터 rest API 의 rest가 Representation에서 온 것 ! 표현 • Content-Type: 표현..

    [HTTP] HTTP 상태코드

    HTTP 상태코드 소개 • 1xx (Informational): 요청이 수신되어 처리중 • 2xx (Successful): 요청 정상 처리 • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 389처럼 클라이언트가 인식할 수 없는 상태코드를 보낸다면 클라이언트는 3xx, 즉 상위 상태코드로 해석해서 처리한다 1xx 요청 처리중 코드는 거의 사용되지 않는다. 2xx - 성공 200 OK - 요청 성공 - 매우 자주 사용됨 201 Created - 요청 성공해서 새 리소스 생성됨 - Locat..

    [HTTP] HTTP 메서드 활용

    클라이언트에서 서버로 데이터 전송 데이터 전달 방식 기준 1. 쿼리 파라미터 활용(조회) - GET 2. 메시지 바디 활용(가입, 추가, 변경) - POST, PUT, PATCH 데이터 전송 상황 1. 정적 데이터 조회 쿼리 파라미터 미사용, 단순 경로로 조회 ex) GET /static/star.jpg HTTP/1.1 2. 동적 데이터 조회 검색, 정렬, 필터 조회이므로 역시 GET 사용 필요한 파라미터를 쿼리로 전달 ex) GET /search?q=hello&hl=ko HTTP/1.1 3. HTML Form GET/POST만 지원, 이외의 메소드는 지원하지 않는다. html form 에 있는 데이터를 웹 브라우저가 GET/POST 메서드로 만들어 서버에 전달 단순 form일 때 Content-Type..

    [HTTP] HTTP 메서드

    HTTP API를 만들어보자 아래와 같은 기능이 필요할 때 API URI를 설계해보자. - 회원 목록 조회 - 회원 조회 - 회원 등록 - 회원 삭제 /read-memeber-list /create-member 등은 좋지 않은 설계이다. API는 리소스 식별이 기준이 되어야 한다. 회원이라는 개념 자체가 리소스이다. /members 와 같이 리소스만을 기준으로 설계하자. 조회/등록/삭제 등의 동작은 http 메서드를 통해 구분하자. HTTP 메서드 - GET, POST GET, POST가 http에서 가장 주요한 메서드이다. GET - 리소스 조회 시 사용 - 전달할 데이터는 쿼리파라미터를 통함 - 메시지 바디 사용은 권장하지 않음 POST - 데이터 처리를 요청 - 메시지 바디를 통해 서버로 데이터 전..