본문 바로가기

전체 글176

(모든 개발자를 위한 HTTP 웹 기본 지식) 7-(1)~(6) HTTP 일반헤더 - HTTP 헤더 개요 HTTP헤더 header-field = field-name ":" OWS field value OWS (OWS : 띄어쓰기 허용) field name은 대소문자 구분 없음 용도 HTTP 전송에 필요한 모든 부가정도 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등 많은 정보가 들어감 표준 헤더가 너무 많음 필요 시 임의의 헤더 추가 가능 헤더 분류 General헤더 : 메시지 전체에 적용되는 정보 ex . Connection : close Request헤더 : 요청 정보 ex. Response 헤더 : 응답 정보 ex. Server : Apache(요청을 받아서 처리하는 서버 정보) Entity헤더 : 엔티티 바디 정보 ex.. 2023. 4. 23.
(모든 개발자를 위한 HTTP 웹 기본 지식) 6-(1)~(5) HTTP 상태코드 - HTTP 상태코드 클라이언트가 보낸 요청의 처리 상태르르 응답에서 알려주는 기능 1XX(Informational) : 요청이 수신되어 처리중(거의 사용하지 않으므로 생략) 2XX(Successful) : 요청 정상 처리 성공 200 : ok : ex. GET 요청이 오면 결과를 정상적으로 처리해서 응답할 경우 201 : Created ex. POST요청으로 신규자원 생성 요청 -> 서버에서는 신규 리소스를 만들고 응답코드 201로 응답 202 : Acceapted 요청이 접수는 되었으나 처리는 완료X 배치 처리 같은 곳에서 사용. 204 : No Content 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 ex. 웹 문서 편집기에서 save 버튼 save버튼의 결과로 .. 2023. 4. 22.
(모든 개발자를 위한 HTTP 웹 기본 지식) 5-(1)~(2) HTTP메서드 활용 - 클라이언트에서 서버로 데이터 전송 데이터 전달 방식 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 상황 4가지 정적 데이터 조회 : 쿼리 파라미터 미사용 추가적인 데이터 전달 없음. 단순히 URI경로만 넣으면 그 이미지 리소스를 만들어서 클라이언트에게 내려주는 것. 이미지, 정적 텍스트 문서 조회는 GET으로 사용 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 동적 데이터 조회 쿼리 파라미터 사용 서버에서 해당 요청을 받아 쿼리 파라미터를 기반으로 정렬 필터해서 결과를 동적으로 생성 주로 검색, 게시판 목록에서 정렬 필터(검색어) 들이 .. 2023. 4. 20.
알고리즘 - 이분탐색(Binary Search)과 매개변수 탐색(Parameter Search) (Java, Python) 1. 이분탐색1) 개념 원하는 데이터를  찾기 위해 정렬되어 있는 배열에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다.이를 위해 반드시 데이터가 정렬되어 있어야 한다. 2) 알고리즘 단계1. 배열을 정렬한다. ( 기존에 배열이 정렬되어서 주어진다면 이 과정은 생략한다.)<p data-ke-size="s.. 2023. 4. 20.
(모든 개발자를 위한 HTTP 웹 기본 지식) 4-(1)~(5) HTTP메서드 - HTTP API를 만들어보자 실무에 투입됐다고 생각해보자. 요구사항을 가지고 회원 정보 관리 API를 만들어보자 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 API URI설계 회원 목록 조회 / read-member-list 회원 조회 / read-member-by-id 회원 등록 / create-member 회원 수정 / update-member 회원 삭제 / delete-member 위와 같이 설계하면 좋은 설계일까? 가장 중요한 것은 리소스 식별이다. 리소스의 의미는? 회원을 등록하고 수정하고 조회하는게 리소스가 아님 미네랄을 캐라 => 미네랄이 리소스 회원이라는 개념 자체가 리소스 리소스를 어떻게 식별하는 게 좋을까 회원을 등록하고 수정, 조회하는 건 모두 배제 회원이라는 리소스.. 2023. 4. 19.
(MyBatis) PersistenceException 1. 상황 MyBatis와 SQL을 활용해 게시판 코드를 짜던 중, selectOne 메서드를 실행하는 도중에 발생한 예외이다. 2. 에러 및 원인 1) 에러 메시지 Exception in thread "main" java.lang.ExceptionInInitializerError at com.ssafy.board.test.Test.main(Test.java:12) Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may exist in mapper/boardMapper.xml ### The error occurred while processing mapper_re.. 2023. 4. 19.
BindingException: Invalid bound statement (not found) 1. 상황 : MyBatis를 사용해 SQL에 있는 글 목록을 불러오거나 새 글을 등록하는 메서드를 실행해보던 중 발생한 오류. 처음엔 selectAll, selectOne 메서드까지 잘 실행되다가 insertBoard를 하자 session을 빌드하는 데에 문제가 생기기 시작했고 (아마 중간에 다른 것들을 조금씩 수정하다가 어디선가 문제가 생긴 것으로 추정) insertBoard만 지우고 select 함수들만 실행했을 땐 select 메서드들은 잘 실행됐었다. 그러다가 !!!!!!!!!!!!! 갑!자!기 select마저 실행이 안되면서 이 BindingException 오류가 발생했다 (또엥) 2. 원인 : 디버깅을 해가는 과정에서 Mapper.xml의 selectOne 구현 부분은 주석처리를 해놓고, .. 2023. 4. 19.
(모든 개발자를 위한 HTTP 웹 기본 지식) 3-(4) 비연결성, (5) HTTP메시지 - 비연결성 연결을 유지하는 모델 클라이언트1 -> 요청 -> 서버 -> 응답 이 때도 클라이언트 2, 클라이언트 3도 연결 유지됨 연결이 유지된 서버의 자원이 소모되는 것 단점 : 클라이언트 2,3이 놀고 있어도 계속 연결 유지해야함 연결 유지하지 않는 모델 클라이언트1이 요청 , 응답 받은 후 연결 끊어버리기 자원을 요청을 주고받을 때만 연결하고 끊어버려서 서버 연결에 필요한 자원 아낄 수 있음. 최소한의 자원으로 서버 유지 가능 비연결성 HTTP는 기본이 연결을 유지하지 않는 모델 일반적으로 초 단위의 이하의 빠른 속도로 응답 1시간동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음 서버 자원 매우 효율적으로 사용 가능 한계와 극복 TCP/IP 연결을 새로.. 2023. 4. 19.
(모든 개발자를 위한 HTTP 웹 기본 지식) 3-(1) 모든 것이 HTTP, (2) 클라이언트 서버 구조, (3) Stateful, Stateless - 모든 것이 HTTP(HyperText Transfer Protocol) HTTP 메시지에 모든 것을 전송 HTML, TEXT 이미지, 음성, 영상 파일 JSON, XML(API) 거의 모든 형태의 데이터 전송 가능 서버 간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP의 역사 HTTP/0.9 1991년에 시작 ... HTTP/1.1 1997년 : 가장 많이 사용, 우리에게 가장 중요한 버전 HTTP/2 2015년 성능개선 HTTP/3 진행중 : TCP 대신에 UDP 사용, 성능 개선 기반 프로토콜 TCP : HTTP/1.1 , HTTP/2 UDP : HTTP/3 현재 HTTP/1.1 주로 사용 HTTP/2, HTTP/3 도 점점 증가하고 있음 HTTP특징 클라이언트 서버 구조 무상태 프로토.. 2023. 4. 18.
(모든 개발자를 위한 HTTP 웹 기본 지식) 2-(1) URI, (2) 웹 브라우저 요청 흐름 - URI(Uniform Resource Identifier)URI ? URL ? URN?URI : 로케이터(locater), 이름(name) 또는 둘 다 추가로 분류될 수 있음.URI 안에 URL(Resource Locator), URN(Resource Name)이 포함 됨위치는 변할 수 있지만 이름은 변하지 않음urn:isbn:8960777331 : 어떤 책의 isbn URNURN 이름 만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음URI, URL 같은 의미로 이야기할 예URI 단어 뜻Uniform : 리소스 식별하는 통일된 방식Resource : 자원, URI로 식별할 수 있는 모든 것(제한 없음)Identifier : 다른 항목과 구분하는데에 필요한 정보URL 분석https://www.. 2023. 4. 17.