전체 글 73

[모든 개발자를 위한 HTTP 웹 기본 지식] 8. HTTP 헤더2 - 캐시와 조건부 요청

캐시 기본 동작 캐시가 없을때 요청1 GET/star.jpg 첫번째 요청, 두번째 요청 동일 단점 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 캐시 적용 요청1 GET/star.jpg 응답 결과를 캐시에 저장 브라우저 캐시 (60초 유효) 요청 2 GET/star.jpg 캐시 유효 시간 검증 60초 유효 시 캐시에서 조회 네트워크를 탈 필요가 없음 이점 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 요청 3 GET/star.jpg - 캐시 시간 초과 다시 요청 캐시 데이터..

JSP_MVC #1

JSP 페이지에서 다른 JSP 페이지나 서블릿으로 요청을 전달하는 방법 pageContext.forward() / pageContext.forward()와 는 둘 다 JSP 페이지에서 다른 JSP 페이지나 서블릿으로 요청을 전달하는 방법입니다. 하지만 둘 사이에는 몇 가지 차이점이 있습니다. pageContext.forward()는 자바 코드에서 JSP 페이지 이동을 수행하는 방법입니다. 이 메소드는 현재 JSP 페이지의 실행을 중지하고 지정된 URL의 JSP 페이지나 서블릿으로 제어를 전달합니다. 예를 들어, 다음과 같이 pageContext.forward()를 사용하여 다른 JSP 페이지로 이동할 수 있습니다. 는 JSP 태그 라이브러리에서 제공하는 JSP 액션 태그 중 하나입니다. 이 태그를 사용하..

메모장 2023.04.05

[프로그래머스 / lv 0] 옹알이(1) (JAVA)

문제 풀이 방법 문자열을 대치하여 원하는 문자열로만 이루어져 있는지 확인한다. replaceFirst를 통해 네가지 발음이 포함되면 0으로 대체하여 네가지 발음으로만 포함되어있는지 확인하다. 1. replace public String replace(CharSequence target, CharSequence replacement) : target 부분을 replacement로 대치한 새로운 문자열을 리턴 CharSequence를 구현한 클래스를 매개로 받는다. (String, StringBuffer, StringBuilder) 2. replaceAll public String replaceAll(String regex, String replacement) : 패턴이 일치할 경우 모두 대치 3.rep..

코딩테스트 2023.04.03

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더1 - 일반헤더

HTTP 헤더 개요 header-field = field-name ":" OWS field-value OWS (OWS : 띄어쓰기 허용) field-name은 대소문자 구문 없음 헤더 용도 HTTP 전송에 필요한 모든 부가정보 e.g. 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표준 헤더가 너무 많음 필요 시 임의의 헤더 추가 가능 helloworld: hihi 헤더 분류 (분류 - RFC2616(과거)) General 헤더: 메시지 전체에 적용되는 정보 Request 헤더: 요청 정보 Response 헤더: 응답 정보 Entity 헤더: 엔티티 바디 정보 HTTP BODY message body - RFC2616(과거) 메시지 본문은 엔..

[모든 개발자를 위한 HTTP 웹 기본 지식] 6. HTTP 상태코드

HTTP 상태코드 소개 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리중 (거의 사용하지 않음) 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나타나면? 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리 미래에 새로운 상태코드가 추가되어도 클라이언트를 변경하지 않아도됨 e.g. 299 ??? -> ..

[백준 / 실버4] 3036 : 링 (JAVA)

문제 풀이 방법 반복문을 통해 첫번째 링과 다른 링들을 순서대로 비교하여 몇바퀴 도는지 알아낸다. 최대공약수를 구한 후 각각의 둘레값에 나눠서 기약 분수 형태로 출력한다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb =..

코딩테스트 2023.03.27

[백준 / 실버3] 1021 : 회전하는 큐 (JAVA)

문제 풀이 방법 LinkedList 활용하여 구현한다. 찾고자하는 원소의 위치를 바로 찾기 위해(indexOf) 뽑고자 하는 원소의 위치가 리스트의 중앙을 기준으로 왼쪽인지 오른쪽인지를 판단하여 이에 따라 연산한다. 중앙 기준 왼쪽 위치 첫번째 원소를 뽑고 마지막에 추가 중앙 기준 오른쪽 위치 마지막 원소를 뽑고 처음에 추가 코드 package boj1021; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.StringTokenizer; public class Main { public static void..

코딩테스트 2023.03.26

[모든 개발자를 위한 HTTP 웹 기본 지식] 5. HTTP 메서드 활용

클라이언트에서 서버로 데이터 전송 클라->서버 데이터 전달방식은 크게 2가지 쿼리 파라미터를 통한 데이터 전송(uri 끝에 추가) GET 주로 정렬 필터(검색어) 메세지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 클라->서버 데이터 전송 4가지 상황 정적 데이터 조회 이미지, 정적 텍스트 문서 조회는 GET 사용 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터(검색어) 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 조회는 GET 사용 쿼리 파라미터 사용해서 데이터를 전달 -> GET /search?q=hello&hl=ko 쿼리 ..

[모든 개발자를 위한 HTTP 웹 기본 지식] 4. HTTP 메서드

HTTP API를 만들어보자 요구사항 회원 정보 관리 API를 만들어라 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 API URI(Uniform Resurce Identifier) 설계 (x) 회원 목록 조회 / read-member-list 회원 조회 / read-member-by-id 회원 등록 / create-member 회원 수정 / update-member 회원 삭제 / delete-member 가장 중요한 것은 리소스 식별 API URI(Uniform Resorce Identifier) 고민 리소스의 의미는 뭘까? 회원을 수정하고 조회하는게 리소스가 아니다! 회원이라는 개념 자체가 바로 리소스다. 리소스를 어떻게 식별하는게 좋을까? 회원을 등록하고 수정하고 조회하는 것을 모두 배..